Sustituir palabras en un archivo desde consola

Nada de editores de texto, ni de html ni nada por el estilo. Si quieres sustituir palabras que aparecen recurrentemente en un fichero de texto o archivo y necesitas hacerlo rápido, puedes hacerlo con el comando sed.
Por ejemplo, para sustituir un color en una hoja de estilos CSS:

sed ’s/#FF0000/#0000FF/g’ main.css

Hacer backup de tus favoritos de Delicious desde la shell de Linux/Unix

En primer lugar deciros que Delicious es un servicio para compartir y guardar tus  favoritos  «online» , pero y si se nos pierde la cuenta….  o simplemente queremos tener una copia de nuestros favoritos de delicious en nuestro ordenador???? vale pues aqui os doy una solución para los Linuxeros que se quieran hacer backup de tus favoritos de Delicious desde la shell.

Continuar leyendo «Hacer backup de tus favoritos de Delicious desde la shell de Linux/Unix»

Script para consultar el diccionario desde la shell

Con este sencillo script de bash podrás consultar cualquier palabra en el Diccionario de Real Academia de la Lengua Española:

#!/bin/sh
if test -z $1
then
echo «Uso: `basename $0` palabra»
else
echo «Permalink: http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$1&TIPO_HTML=2»
links -dump «http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$1&TIPO_HTML=2»
fi

Continuar leyendo «Script para consultar el diccionario desde la shell»

Técnicas de Programación de la Shell de Linux para Administradores

Técnicas de Programación de la Shell de Linux para Administradores

Realizado por
PEDRO LOPEZ SOTO
Dirigido por
FRANCISCO R. VILLATORO MACHUCA y LAWRENCE MANDOW ANDALUZ

DEPARTAMENTO DE LENGUAJES Y CIENCIAS DE LA COMPUTACIÓN
UNIVERSIDAD DE MÁLAGA
MÁLAGA, NOVIEMBRE 2005

Índice de Contenidos
Capítulo 1. Introducción…………………………………………………………………………………………………………….1
1.1. Objetivos del Proyecto ……………………………………………………………………………………………………..1
1.2. Contenidos de la Memoria…………………………………………………………………………………………………3
Capítulo 2. Estudio Histórico y Práctico de la Evolución de las Shells ……………………………………………..5
2.1. UNIX. Un Comienzo………………………………………………………………………………………………………..5
2.2. Shell. Una Evolución………………………………………………………………………………………………………10
2.2.1 Shell Bourne. El Gran ‘Daddy’…………………………………………………………………………………..12
2.2.2 C Shell. El Valor de ser Diferente ……………………………………………………………………………..13
2.2.3 Shell Korn. El Retorno a las Tradiciones ……………………………………………………………………14
2.2.4 Shell POSIX. Adaptándose al Estándar………………………………………………………………………16
2.2.5 Shell Bash. En Busca de la Libertad…………………………………………………………………………..17
2.3. Conclusiones ………………………………………………………………………………………………………………..19
Capítulo 3. Comparativa Funcional de las Shells de Unix……………………………………………………………..21
3.1. Criterios Técnicos………………………………………………………………………………………………………….21
3.1.1 Histórico de Comandos ……………………………………………………………………………………………21
3.1.2 Edición de la Línea de Comandos ……………………………………………………………………………..24
3.1.3 Seguimiento Invisible de Enlaces Simbólicos ……………………………………………………………..25
3.1.4 Completado de Nombres de Ficheros, Comandos, Usuarios, Hosts y Variables ………………26
3.1.5 Facilidades para el uso del Prompt de Usuario…………………………………………………………….30
3.1.6 Evaluación de Expresiones Aritméticas y Lógicas……………………………………………………….33
3.1.7 Manejo de Variables………………………………………………………………………………………………..40
3.1.8 Sentencias de Control de Flujo de la Ejecución …………………………………………………………..47
3.1.9 Redirección de Entrada y Salida. Pipes ………………………………………………………………………50
3.1.10 Funciones………………………………………………………………………………………………………………54
3.1.11 Shells Libres …………………………………………………………………………………………………………..55
3.1.12 Diferencias Entre Shell Posix y Shell Korn…………………………………………………………………56
3.2. Conclusiones ………………………………………………………………………………………………………………..57
Capítulo 4. Técnicas Básicas de la Programación Shell…………………………………………………………………61
4.1. Comenzando a Crear un Script…………………………………………………………………………………………61
4.1.1 Ejecutar un Script ……………………………………………………………………………………………………63
4.1.2 Comentarios…………………………………………………………………………………………………………..66
4.1.3 Uso de Variables en un Script. Arrays. Variables Especiales ………………………………………..66
4.2. Comunicación con un Script ……………………………………………………………………………………………72
4.2.1 Argumentos de un Script ………………………………………………………………………………………….72
4.2.2 Sentencia read………………………………………………………………………………………………………73
4.2.3 Opciones y Argumentos con getopts……………………………………………………………………..74
4.3. Variables. Aritmética, Lógica y Cadenas …………………………………………………………………………..78
4.3.1 Aritmética y Lógica …………………………………………………………………………………………………78
4.3.2 Manejo de Cadenas………………………………………………………………………………………………….78
4.4. Condiciones………………………………………………………………………………………………………………….79
4.4.1 Cortocircuitos …………………………………………………………………………………………………………79
4.4.2 Condicional if……………………………………………………………………………………………………….81
4.4.3 Condicional case…………………………………………………………………………………………………..82
4.5. Bucles ………………………………………………………………………………………………………………………….84
4.5.1 while y until …………………………………………………………………………………………………….84
4.5.2 for………………………………………………………………………………………………………………………85
4.5.3 select………………………………………………………………………………………………………………..87
4.5.4 break y continue………………………………………………………………………………………………89
4.6. Funciones …………………………………………………………………………………………………………………….89
4.6.1 Definición de Funciones…………………………………………………………………………………………..89
4.6.2 Argumentos y Entorno de Funciones …………………………………………………………………………90
4.6.3 Finalización de Funciones ………………………………………………………………………………………..91
4.6.4 Librerías de Funciones …………………………………………………………………………………………….91
4.7. Flujo de Datos. Entrada y Salida ………………………………………………………………………………………92
4.8. Traps y Señales……………………………………………………………………………………………………………..93
Capítulo 5. Expresiones Regulares, sed y awk …………………………………………………………………………..97
5.1. Introducción …………………………………………………………………………………………………………………97
5.2. Expresiones regulares. grep …………………………………………………………………………………………..97
5.3. Comando sed ……………………………………………………………………………………………………………..100
5.3.1 sustituir ……………………………………………………………………………………………………………….101
5.3.2 Borrar………………………………………………………………………………………………………………….103
5.3.3 Imprimir………………………………………………………………………………………………………………104
5.3.4 Leer…………………………………………………………………………………………………………………….105
5.3.5 Escribir ……………………………………………………………………………………………………………….105
5.4. Comando awk ……………………………………………………………………………………………………………..106
5.4.1 Procesamiento de líneas en awk………………………………………………………………………………107
5.4.2 Campos definidos dentro de una línea………………………………………………………………………108
5.4.3 Operadores en los patrones……………………………………………………………………………………..109
5.4.4 Procesamiento pre-entrada y post-entrada…………………………………………………………………109
5.4.5 Impresión de valores con awk. Salida formateada……………………………………………………..110
5.4.6 Variables……………………………………………………………………………………………………………..111
5.4.7 Operadores y funciones ………………………………………………………………………………………….111
5.5. Programas sed y awk…………………………………………………………………………………………………..112
Capítulo 6. Aplicaciones para administración con la Shell Bash …………………………………………………..115
6.1. Análisis del Número de Argumentos de un Script: argumentos.sh ………………………………116
6.2. Bombardeo con Mails a un Servidor de Correo: mailbomb.sh……………………………………….116
6.3. Backups del Sistema en Cdrom: cdbackup.sh……………………………………………………………..117
6.4. Grabación en cd de una Imagen de Cdrom en formato .iso: grabacd.sh………………………….119
6.5. Representación de un Cursor en Pantalla: cursor.sh…………………………………………………….120
6.6. Ejemplo de uso del Script cursor.sh: usacursor.sh……………………………………………………..121
6.7. Escáner de red: escanea_ip.sh ………………………………………………………………………………..121
6.8. Escáner de red: escanea_ip_2.sh…………………………………………………………………………….122
6.9. Backup y Eliminación de Ficheros log: logrotate.sh…………………………………………………123
6.10. Conversión de Nombres de Ficheros a Caracteres Minúsculas: minusculas.sh………….125
6.11. Desglose de un Nombre Completo de directorio o Fichero en sus Componentes: path.sh126
6.12. Difusión de un Correo a Múltiples Usuarios: broadmail.sh ……………………………………..127
6.13. Desglose de un Fichero de Base de Datos en sus Componentes: cortafichero.sh …….128
6.14. Ejecución de un ftp a una Máquina Remota sin Intervención Manual : ftpremoto.sh ….130
6.15. Renombrado de Ficheros de Imágenes en Formato .jpg: renombra.sh ………………………..131
6.16. Gestión de Paquetes de Instalación en Formato .rpm: maneja_rpm.sh………………………..132
6.17. Petición de Usuario y Contraseña Para Scripts: login.sh …………………………………………..137
6.18. Eliminación de Segmentos de Memoria Compartida en el Sistema: rm_shmem.sh…………138
6.19. Selección de la Shell Para una Sesión Interactiva de Trabajo: selecciona_shell.sh..139
6.20. Agenda Personal: agenda.sh ………………………………………………………………………………….141
6.21. Creación de una Cuenta de Usuario: nuevousuario.sh……………………………………………143
6.22. Listado de los Usuarios de un Sistema: usuarios.sh………………………………………………..145
6.23. Ejemplo de Sentencia getopts: opciones.sh ……………………………………………………….146
6.24. Distribución de Ficheros en Múltiples Servidores: copia_array_remoto.sh …………..147
6.25. Kit Para Implantación de Aplicaciones en Servidores en Cluster: clustertoolkit.sh.148
6.26. Conversión de Ficheros en Formato .lj a Postscript y a Formato Pdf: lj-ps-pdf.sh…….150
6.27. Generación de un Informe de Totales: formatea.awk……………………………………………….151
Capítulo 7. Conclusiones ………………………………………………………………………………………………………..153
BIBLIOGRAFíA……………………………………………………………………………………………………………………….155
Apéndice A. Contenidos del CD adjunto ……………………………………………………………………………………….159

Descarga:

Técnicas de Programación de la Shell de Linux para Administradores