Bash, entorno y automatización
🎯 Objetivo del módulo Entender cómo funciona el entorno de la shell, usar variables, alias, el PATH, y empezar a automatizar tareas con scripts.
📌 Idea clave No es ejecutar comandos. Es hacer que Linux trabaje para ti.
1. Conceptos fundamentales #
Shell #
Programa que interpreta comandos (Bash, Zsh…).
Entorno #
Conjunto de variables que afectan al comportamiento del sistema y programas.
Automatización #
Ejecutar tareas sin intervención humana.
2. Contenidos del módulo #
- Variables de entorno
envexportPATH- Alias
- Scripts bash
xargs
3. Variables en Bash #
Crear una variable #
1nombre="Ángel"
⚠️ Sin espacios.
Usar una variable #
1echo $nombre
Variables importantes del sistema #
1echo $HOME 2echo $USER 3echo $PATH
| Variable | Significado |
|---|---|
HOME | directorio personal |
USER | usuario |
PATH | rutas de ejecutables |
4. env #
Categoría #
Entorno
Descripción #
Muestra todas las variables de entorno.
Ejemplo #
1env
📌 Muy usado para debugging.
5. export #
Categoría #
Entorno
Descripción #
Hace que una variable esté disponible para procesos hijos.
Ejemplo #
1export JAVA_HOME=/usr/lib/jvm/java-17
📌 Sin export, solo existe en la shell actual.
6. PATH #
Categoría #
Entorno / ejecución
Descripción #
Lista de rutas donde el sistema busca ejecutables.
Ver el PATH #
1echo $PATH
Salida típica:
/usr/local/bin:/usr/bin:/bin
Añadir al PATH (temporal) #
1export PATH="$PATH:$HOME/scripts"
📌 Permite ejecutar scripts sin poner la ruta.
7. Alias #
Categoría #
Productividad
Descripción #
Atajos para comandos largos.
Crear alias #
1alias ll="ls -la"
Usar #
1ll
Eliminar #
1unalias ll
Permanentes #
Añadirlos a:
1~/.bashrc
8. Scripts Bash #
Categoría #
Automatización
¿Qué es? #
Un archivo con comandos ejecutables.
Script básico #
1#!/bin/bash 2echo "Hola mundo"
Guardar como #
1hola.sh
Dar permisos #
1chmod +x hola.sh
Ejecutar #
1./hola.sh
Variables en scripts #
1#!/bin/bash 2echo "Hola $USER"
Argumentos #
1#!/bin/bash 2echo "Primer argumento: $1"
Ejecutar:
1./script.sh archivo.txt
9. xargs #
Categoría #
Procesamiento avanzado
Descripción #
Convierte la salida en argumentos de otro comando.
Ejemplo simple #
1echo "archivo1 archivo2" | xargs rm
Ejemplo real #
1find . -name "*.tmp" -print0 | xargs -0 rm
📌 -print0 y -0 conservan correctamente nombres con espacios, comillas o saltos de línea. Revisa primero los resultados de find antes de borrar.
10. Casos reales MUY comunes #
Automatizar backup #
1tar -czvf backup.tar.gz /home
Alias productivos #
1alias gs="git status" 2alias dc="docker compose"
Scripts de despliegue #
1./deploy.sh
11. Errores comunes #
- ❌ Espacios en variables
- ❌ Olvidar permisos de ejecución
- ❌ Romper el PATH
- ❌ Usar
xargssin probar
12. Buenas prácticas #
- ✔ Usa alias para productividad
- ✔ Usa scripts para repetir tareas
- ✔ Documenta tus scripts
- ✔ Prueba antes de automatizar
Resumen del tema
Conceptos clave #
- Estructura de un Script Bash: encabezado Shebang (
#!/bin/bash), permisos de ejecución (chmod +x script.sh) e invocación (./script.sh). - Parámetros Posicionales:
$0(nombre del script),$1,$2... (argumentos recibidos),$#(cantidad de argumentos),$@(todos los argumentos). - Uso de
xargs: toma elementos de la entrada estándar y los convierte en argumentos para otro comando. Para nombres de archivo seguros se combinafind ... -print0conxargs -0. - Automatización DevOps: creación de scripts para backups, compilación, despliegues y pruebas continuas.
Qué debes recordar #
Agrega siempre la cabecera #!/bin/bash al inicio de tus scripts y otorga permisos de ejecución con chmod +x antes de ejecutarlos.