📚 Módulo 2: Creando tus primeros comandos automáticos¶
Duración estimada: según tu ritmo y experiencia.
Objetivo: Dominar la creación de scripts básicos, utilizar variables para almacenar datos, redirigir salidas y usar pipes para conectar comandos, explorando su utilidad técnica. 🎯
Prerrequisitos:
Haber completado el Módulo 1,
acceso a un sistema Linux, macOS o WSL
con una terminal y un editor de texto (nano, vim o VS Code).
Nota: El tiempo varía según tu nivel y dedicación; experimenta con cada paso para entender cómo funcionan los conceptos.
📖 Contenidos del Módulo¶
2.1. Primeros scripts: Automatiza tu saludo 🌱¶
Teoría:
Un script es un archivo con comandos que Bash ejecuta juntos.
El shebang #!/bin/bash indica que Bash es el intérprete.
Técnicamente, esto permite ejecutar múltiples órdenes como un programa.
Práctica:
- Crea un archivo
saludo.sh:Abre el editor y escribe lo siguiente.nano saludo.sh - Añade un script simple y guarda (Ctrl+O, Enter, Ctrl+X):
El shebang asegura que Bash lo procese.
#!/bin/bash echo "¡Bienvenido a mi primer script!" - Dale permisos y ejecútalo:
chmod +x saludo.sh ./saludo.shchmod +xhabilita la ejecución;./lo corre. - Añade otro comando y prueba:
nano saludo.sh echo "¡Hora actual: $(date)" ./saludo.sh$(date)ejecutadatedentro del script. - Modifica para saludar con tu nombre:
nano saludo.sh echo "¡Hola, [tu nombre]! Hora: $(date)" ./saludo.sh
Dato curioso
Los scripts ahorran tiempo al agrupar comandos que usas a menudo. 😄
2.2. Variables: Almacena y reutiliza datos 🖌️¶
Teoría:
Las variables guardan datos (ej. texto, números) para usarlos en scripts.
En Bash, se definen con nombre=valor y se acceden con $nombre.
Técnicamente, esto optimiza la flexibilidad de los scripts.
Práctica:
- Crea un script
variables.sh:nano variables.sh - Define una variable y úsala:
Guarda y ejecuta con
#!/bin/bash nombre="Aprendiz" echo "¡Hola, $nombre!"chmod +x variables.shy./variables.sh. - Añade una variable con tu nombre:
Ejecuta de nuevo y verifica.
nano variables.sh nombre="TuNombre" echo "¡Hola, $nombre!" - Usa una variable con
date:Ejecuta y observa la salida.hora=$(date) echo "La hora es: $hora" - Combina variables en un mensaje:
nano variables.sh nombre="TuNombre" saludo="¡Bienvenido, $nombre!" echo "$saludo Hora: $(date)" ./variables.sh
Consejo
Usa nombres claros para variables (ej. mi_nombre); evita espacios cerca de =. 💡
2.3. Redirecciones: Guarda y controla salidas ⚙️¶
Teoría:
Las redirecciones envían la salida de un comando a un archivo o dispositivo.
> sobrescribe, >> añade, y 2> maneja errores.
Técnicamente, esto es esencial para registrar o depurar.
Práctica:
- Redirige un saludo a un archivo:
echo "Guardando mi script" > salida.txt cat salida.txt>crea o sobrescribe el archivo. - Añade más texto al archivo:
echo "Añadiendo más" >> salida.txt cat salida.txt>>agrega sin borrar. - Redirige un comando con error:
ls /ruta/falsa 2> errores.txt cat errores.txt2>captura errores; revisa el resultado. - Combina salidas en un script:
nano guarda.sh #!/bin/bash echo "Guardando datos" > resultado.txt date >> resultado.txt chmod +x guarda.sh ./guarda.sh cat resultado.txt - Limpia el archivo y verifica:
> resultado.txt cat resultado.txt
Advertencia
> sobrescribe archivos; usa >> si quieres conservar datos. 🛑
2.4. Pipes: Conecta comandos como un experto 📜¶
Teoría:
Los pipes (|) envían la salida de un comando como entrada a otro.
Ejemplo: ls | grep texto filtra resultados.
Técnicamente, esto potencia la combinación de herramientas.
Práctica:
- Lista archivos y filtra con
grep:Busca archivos con "mi" en el nombre.ls | grep "mi" - Cuenta líneas con
wc:ls | wc -l-lcuenta líneas; muestra el número de archivos. - Crea un script con pipe:
nano pipe.sh #!/bin/bash ls | grep "txt" > archivos_txt.txt chmod +x pipe.sh ./pipe.sh cat archivos_txt.txt - Combina con variable:
nano pipe.sh archivos=$(ls | grep "txt") echo "Archivos .txt: $archivos" > resultado.txt ./pipe.sh cat resultado.txt - Prueba un pipe complejo:
Cuenta directorios (
ls -l | grep "^d" | wc -l^dfiltra líneas que empiezan con "d").
Consejo
Usa pipes para encadenar comandos y ahorrar pasos. 💡
2.5. Permisos y ejecución: Seguridad básica 🚀¶
Teoría:
Los permisos definen quién puede ejecutar o editar un script.
chmod ajusta estos permisos (ej. +x para ejecución).
Técnicamente, esto protege y controla el acceso.
Práctica:
- Crea un script sin permisos:
Intenta ejecutarlo con
nano prueba.sh #!/bin/bash echo "Sin permisos aún"./prueba.sh(debería fallar). - Añade permisos y ejecuta:
chmod +x prueba.sh ./prueba.sh+xhabilita ejecución; verifica el resultado. - Revisa permisos con
ls:Busca la "x" en la salida (ej.ls -l prueba.sh-rwxr-xr-x). - Crea un script protegido:
nano secreto.sh #!/bin/bash echo "Este es secreto" chmod 700 secreto.sh ./secreto.sh700da permisos solo al propietario. - Verifica y ajusta permisos:
ls -l secreto.sh chmod 755 secreto.sh ls -l secreto.sh
Consejo
Usa chmod 755 para scripts compartidos; 700 para privados. 💡
🛠️ Ejercicios prácticos¶
- Script básico:
- Crea un script
presentacion.shque muestre tu nombre y la fecha.
- Crea un script
- Variables:
- Modifica el script para usar una variable con tu ciudad.
- Redirección:
- Redirige la salida del script a
mi_presentacion.txt.
- Redirige la salida del script a
- Pipe:
- Usa
ls | grep "sh"y cuenta los resultados conwc -l.
- Usa
- Desafío:
- Crea un script que guarde en un archivo la lista de archivos
.shusando pipes y variables.
- Crea un script que guarde en un archivo la lista de archivos
📝 Evaluación¶
Cuestionario corto (5 preguntas):
- ¿Qué hace el shebang
#!/bin/bash? - ¿Cómo defines una variable en Bash?
- ¿Cuál es la diferencia entre
>y>>? - ¿Qué hace el símbolo
|en un comando? - ¿Cómo cambias permisos para ejecutar un script?
Tarea práctica:
- Crea un script
automatiza.shque:- Guarde tu nombre en una variable.
- Muestre la fecha redirigida a
fecha.txt. - Liste archivos
.shusando un pipe.
- Entrega: Script,
fecha.txty una nota con los pasos.
Vídeo con la solución de la evaluación:
🎉 Recursos adicionales¶
- Documentación:
man bash,man chmod. - Enlaces:
- Guía de scripting (introducción avanzada).
- Tutorial de pipes (detalles técnicos).
Tip
Experimenta combinando echo con pipes para practicar. 💡
🚀 Siguientes pasos¶
¡Felicidades por completar el Módulo 2! En el Módulo 3, aprenderás a tomar decisiones con condicionales y bucles. ¡Sigue automatizando! ✍️