EL shell es un lenguaje de programación que permite al administrador automatizar y programar tareas.
Incorpora sentencias de control de flujo, sentencias de asignación, funciones, etc.
Se ejecuta linea a linea.
El shell de Linux es Bash (Bourne-again shell).
Conceptos básicos
Bang line
Nota:
#!/bin/bash
Ejecutar
Nota:
Otorgar permisos de ejecución con chmod.
Tenemos 4 opciones:
sh nombre_script.sh
bash nombre_script.sh
./nombre_script.sh
copiar a /usr/bin y ejecutar
Variables
Nota:
Se utilizan para guardar información.
No pueden tener el nombre de ninguna palabra reservada.
Dos formas de utilizarla:
-Al asignar: nombre_var=5
-Al utilizarla: $nombre_var
Paso parámetros
Nota:
En ocasiones el script recibe parámetros de la linea de comandos.
$0 -> Nombre del script.
$1 -> Primer parámetro.
$2 -> Segundo parámetro.
---
$n -> n parámetro.
$# -> numero de parámetros
Entrada/Salida Datos
E/S por consola
Nota:
Salida datos: echo
Entrada datos: read
Redirección E/S
Nota:
Entrada estandar: Teclado.
Salida estandar: Monitor.
Error estándar: Monitor.
Carácter > indica la redirección de salida
Carácter < indica la redirección de entrada
Filtrado de textos
Nota:
grep: muestra las lineas que cumplan una determinada condición.
head: muestras las n primeras lineas.
tail: muestra las n últimas lineas.
cut: muestra una determinada columna.
sort: ordena la salida.(-n: ordenar valores numéricos y -r ordenación inversa)
(less /etc/passwd | cut -d ":" -f1)
Operaciones aritmeticológicas
expr
Nota:
Operaciones aritméticas simples.
Test
Nota:
Evalua tres tipos de elementos:
archivos/directorios
cadenas
números
Estructuras de control
IF
Nota:
Nos permite que en caso de cumplirse una determinada condición se ejecute un determinado código.
Case
Nota:
Cuando queremos realizar muchas condiciones sobre un mismo valor
for
Nota:
Se utiliza para ejecutar un código un determinado número de veces.
While
Nota:
Permite ejecutar un código hasta que no se cumpla una determinada condición de salida
Funciones
Nota:
Una función es un bloque de código que permite su reutilización de una forma fácil y sencilla.
Se recomienda que el nombre de la función sea lo más descriptivo posible.
Sintaxis:
nombre_funcion()