# Manual de supervivencia para la `bash`
## Utilidades de eficiencia en el uso
- History
- Repetición de órdenes desde el histórico
- Búsqueda de órdenes pasadas Ctr-R
- Uso de alias
## Expansión de metacaracteres
- El metacaracteres `*`, `?`, `{}`
- El metacaracter `$`
## Variables en la shell
- Concepto
- Expansión de variables
- Variables de entorno locales y globales
- La orden `env`
- La orden `export`
- Variable especial `?`
- La orden `set`
## Modos de ejecutar una orden:
- Lista de órdenes separadas por ;
- Conjunción de órdenes &&
- Disyunción de órdenes ||
- Ejecución en segundo plano con &. Ordenes jobs, fg y bg
- Sustitución de órdenes con $(orden)
## Redirección de E/S
- Al sistema de archivos con `>`, `>>`, `<`
- Redirección _heredoc_
```bash!
$> cat << EOF | wc
hola
mundo
mundial
EOF
```
- Redirección de stdout `command 1> file`
- Redirección de stderr `command 2> file`
- Redirección combinada
- Redirección de `stderr` a `stdout` `orden 2>&1`
- Redirección de `stdout` a `stderr` `orden 1>&2`
## Fases de ejecución de una orden
## Navegación e inspección del sistema de archivos
- Orden `du`
- Orden `df`
- Orden `head`
- Orden `tail`
## Utilidades generales
- Order date y formateo de la salida
- Orden `find`
- Orden `echo`
- Orden `tree`
## El entorno en la shell
- Variables en la shell, expansión de variables y orden `env`
- Valores de retorno de la ejecución de una orden. Variable especial ?
- Redirección de E/S
## Tuberías y filtros
- El concepto de filtro
- Filtros típicos:
- sort
- tr
- wc
- cut
- Codificación en base64
- uniq
## Filtro `grep`
- Expresiones regulares: caracteres, conjuntos, $, ^, ., cuantificadores +, * y ?
- Filtro grep. Operativa clásica. Modificador -o
- Ejemplos: expresión regular para filtrar un DNI
## Shell scripts.
- Paso de parámetros: argumentos posicionales, orden shift, variables * y #
- El `hashbang`
- Iteración en listas con for
- Sentencias de control con if
- Orden test
- Comprobaciones sobre el sistema de archivos (archivo existe, directorio existe)
- Orden expr
- Bucle while
- Orden read
- Funciones
## Automatización con `makefile`