Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin a Bash o
Aprenda Bash como si estuviera en primero Daniel Inostroza dinostro@alumnos.inf.utfsm.cl Charlas Tcnicas Departamento de Informtica e a
Daniel
Introduccin a Bash o
Qu es un Shell e
El shell es un intrprete de comandos. e Pero tambin es un lenguaje. e El conjunto de comandos es un script. Un script sirve como pegamento de diversos comandos sencillos, que en conjunto son considerablemente poderosos.
Daniel
Introduccin a Bash o
Te evita hacer tareas repetitivas. Es bueno conocerlo, algn dia resolver algn problema como u a u con los scripts en /etc/rc.d. Es fcil de aprender: a
Piensa qu quieres hacer. e
Daniel
Introduccin a Bash o
Te evita hacer tareas repetitivas. Es bueno conocerlo, algn dia resolver algn problema como u a u con los scripts en /etc/rc.d. Es fcil de aprender: a
Piensa qu quieres hacer. e Escr belo.
Daniel
Introduccin a Bash o
Te evita hacer tareas repetitivas. Es bueno conocerlo, algn dia resolver algn problema como u a u con los scripts en /etc/rc.d. Es fcil de aprender: a
Piensa qu quieres hacer. e Escr belo. Rev salo.
Daniel
Introduccin a Bash o
Te evita hacer tareas repetitivas. Es bueno conocerlo, algn dia resolver algn problema como u a u con los scripts en /etc/rc.d. Es fcil de aprender: a
Piensa qu quieres hacer. e Escr belo. Rev salo. Ahora ponlo todo en un archivo!!
Daniel
Introduccin a Bash o
Usualmente no tienes que debugear mucho, es como si vaciaras lo que har en el prompt de comandos, pero escrito as en un archivo. Es ideal para hacer algunos prototipos. Es muy *NIX.
Daniel
Introduccin a Bash o
Hacer matemticas intensas. a Requerir super portabilidad. Aplicaciones complejas. Requerir estructuras de datos elegantes. Crear aplicaciones propietarias (dif de ofuscar). cil
Daniel
Introduccin a Bash o
Daniel
Introduccin a Bash o
1 2
Crea un archivo miscript.sh con tu editor de textos favorito. Dale permisos de ejecucin. o
Daniel
Introduccin a Bash o
1 2 3
Crea un archivo miscript.sh con tu editor de textos favorito. Dale permisos de ejecucin. o Ejectalo. u
Daniel
Introduccin a Bash o
1 2 3 4
Crea un archivo miscript.sh con tu editor de textos favorito. Dale permisos de ejecucin. o Ejectalo. u Listo!!
Daniel
Introduccin a Bash o
1 2 3 4 5
Crea un archivo miscript.sh con tu editor de textos favorito. Dale permisos de ejecucin. o Ejectalo. u Listo!! En serio!!!
Daniel
Introduccin a Bash o
Ejemplo
Daniel
Introduccin a Bash o
Las variables no necesitan ser declaradas. Son dinmicas (no hay que alojar memoria). a Pueden contener tanto un string como el resultado de un comando.
Daniel
Introduccin a Bash o
Ejemplo
Ejemplo #!/bin/bash STR="Hello world" echo $STR FECHA=date +%Y%m%d echo $FECHA FECHA=$( date +%Y%m%d ) echo $FECHA
Daniel
Introduccin a Bash o
Resultado
Daniel
Introduccin a Bash o
Condicionales
Existen: if expresin then instruccin. o o if expresin then instruccin1 else instruccin2. o o o if expresin1 then instruccin1 elif expresin2 then o o o instruccin2 else instruccin3. o o
Daniel
Introduccin a Bash o
Ejemplo #!/bin/bash if [ "foo" = "foo" ]; then echo "Cierto, foo es igual a foo" fi
Daniel
Introduccin a Bash o
Ejemplo #!/bin/bash A=1 B=2 if [ "$A" = "$B" ]; then echo "A es igual a B" else echo "A no es igual a B" fi
Daniel
Introduccin a Bash o
Daniel
Introduccin a Bash o
Operadores aritmticos e
Daniel
Introduccin a Bash o
-lt: Less Than. Menor que (). -gt: Greater Than. Mayor que (). -le: Less or Equal. Menor o igual (=). -ge: Greater or Equal. Mayor o igual (=). -eq: Equal. Igual (==). -ne: Not Equal. No igual (!=).
Daniel
Introduccin a Bash o
s1 = s2: s1 coincide con s2. s1 != s2: s1 no coincide con s2. s1 s2: s1 es alfabticamente anterior a s2, con el locale e actual. s1 s2: s1 es alfabticamente posterior a s2, con el locale e actual. -n s1: s1 no es nulo. -z s1: s1 es nulo.
Daniel
Introduccin a Bash o
Ciclos
Daniel
Introduccin a Bash o
for 1/2
Daniel
Introduccin a Bash o
for 2/2
Daniel
Introduccin a Bash o
while
Ejemplo #!/bin/bash COUNTER=0 while [ $COUNTER -lt 10 ]; do echo "El contador es $COUNTER" let COUNTER=COUNTER+1 done
Daniel
Introduccin a Bash o
until
Ejemplo #!/bin/bash COUNTER=20 until [ $COUNTER -lt 10 ]; do echo Contador $COUNTER let COUNTER-=1 done
Daniel
Introduccin a Bash o
Funciones
Para hacer los programas ordenados. Para reusar cdigo. o Para ser recursivo.
Daniel
Introduccin a Bash o
Funciones
Ejemplo #!/bin/bash function quit { exit } function hello { echo "Hello world" } hello quit echo "Esto no lo alcanza a hacer"
Daniel Introduccin a Bash o
Daniel
Introduccin a Bash o
Daniel
Introduccin a Bash o
Introduccin o
Cada shell maneja sus propias variables. Estas variables se llaman Variables de Entorno. Un script en Bash hereda estas variables.
Daniel
Introduccin a Bash o
Ejemplo
Daniel
Introduccin a Bash o
prompt
Algunos caracteres especiales de la variable PS1 \t: La Hora actual en formato HH : MM : SS. \d: La fecha en formato Dia de la semana Mes Fecha, como por ejemplo Mon Apr 16. \n: Salto de l nea. \s: Nombre del shell. \w: El directorio actual. \W: El nombre base del directorio actual. \u: Nombre de usuario. \h: Nombre de mquina. a
Daniel Introduccin a Bash o
Variables ms comunes a
PPID: Nmero de identicacin del proceso padre de la u o interfaz de comandos. PWD: Directorio de trabajo actual. OLDPWD: Anterior directorio de trabajo. UID: Nmero identicativo del usuario. u BASH VERSION: Nmero d versin de Bash. u o RANDOM: Cada vez que se invoca se obtiene un nmero u entero aleatorio. HOSTNAME: Nombre de la mquina. a PATH: La ruta de bsqueda de comandos. u HOME: Directorio ra del usuario actual. z
Daniel Introduccin a Bash o
Expresiones Regulares
Comodines
* [] {}
Daniel
Introduccin a Bash o
Expresiones Regulares
grep
Uso: grep str1 archivo1 archivo2 archivo3 ... Busca en archivo1, archivo2, archivo3, etc. las l neas que contengan el string str 1.
Daniel
Introduccin a Bash o
Expresiones Regulares
grep 1/3
Ejemplo [dinostro@niplonia ~]$ grep carta documentos Nos devuelve las l neas que contengan carta en el archivo documentos
Daniel
Introduccin a Bash o
Expresiones Regulares
grep 2/3
Ejemplo [dinostro@niplonia ~]$ grep [Cc]arta documentos Nos devuelve las l neas que contengan carta o Carta en el archivo documentos
Daniel
Introduccin a Bash o
Expresiones Regulares
grep 3/3
Ejemplo [dinostro@niplonia ~]$ grep ^[Cc]arta documentos Nos devuelve las l neas que empiezan con carta o Carta en el archivo documentos
Daniel
Introduccin a Bash o
Expresiones Regulares
sed
Es un editor no interactivo. Se utiliza una serie de instrucciones de edicin. o Tambin se puede describir como un ltro. e
Daniel
Introduccin a Bash o
Expresiones Regulares
sed
Ejemplo [dinostro@niplonia ~]$ sed -e s#hola#chao#g casa Cambia todos los hola por chao en el archivo casa.
Daniel
Introduccin a Bash o
Expresiones Regulares
awk
awk busca un patrn, y por cada patrn de bsqueda que coincida, o o u se realiza una accin. o
Daniel
Introduccin a Bash o
Expresiones Regulares
awk
Ejemplo [dinostro@niplonia ~]$ awk /prueba/ {print} /tmp/lala Busca el patrn prueba y la accin que realiza cuando encuentra o o una l nea en /tmp/lala con la cadena prueba es print.
Daniel
Introduccin a Bash o
Preguntas
Daniel
Introduccin a Bash o