Este artículo te guiará desde los fundamentos de la línea de comandos de Unix hasta la creación de scripts en Bash, proporcionándote las habilidades esenciales para automatizar tareas y gestionar sistemas de manera eficiente.
1. Primeros pasos con la terminal Unix
La terminal es tu puerta de entrada a la potencia de Unix. Al abrirla, verás un prompt como usuario@equipo:~$, indicando que el intérprete Bash está listo para recibir órdenes.
1.1 Comandos fundamentales
clear: Limpia la pantalla de la terminal.echo: Imprime texto en la salida estándar. Ejemplo:echo "Hola Unix".pwd: Muestra la ruta absoluta del directorio actual.cd: Cambia de directorio. Por ejemplo,cd Documentos.ls: Lista el contenido del directorio.ls -lmuestra información detallada.
1.2 Navegación por el sistema de archivos
Unix organiza los archivos en una estructura jerárquica en forma de árbol. Es crucial entender dos tipos de rutas:
- Ruta absoluta: Comienza desde la raíz
/, por ejemplo,/home/usuario/Documentos. - Ruta relativa: Se basa en el directorio actual, usando
.para el actual y..para el superior, como./scriptso../proyectos.
Usa cd ~ para ir a tu directorio personal y cd - para volver al anterior. La tecla Tab autocompleta rutas y comandos, acelerando tu flujo de trabajo.
2. Manipulación de archivos: Habilidades clave
Dominar la gestión de archivos es esencial para cualquier usuario de Unix.
2.1 Creación y visualización
mkdir: Crea un nuevo directorio. Ejemplo:mkdir laboratorio.touch: Crea un archivo vacío o actualiza su marca de tiempo. Ejemplo:touch notas.txt.cat: Muestra el contenido completo de un archivo.less: Permite navegar por archivos grandes página por página (presionaqpara salir).head/tail: Muestran las primeras o últimas líneas. Ejemplo:head -n 10 datos.csv.
2.2 Operaciones avanzadas
cp: Copia archivos o directorios. Ejemplo:cp origen.txt destino/.mv: Mueve o renombra elementos. Ejemplo:mv viejo.txt nuevo.txt.rm: Elimina archivos. ¡Ten cuidado! Esta acción es irreversible. Ejemplo:rm temp.log.
⚡ Una buena práctica es mover archivos a una papelera (~/.Trash) antes de eliminarlos definitivamente.
3. Programación en Bash: De comandos a scripts
Bash no es solo un intérprete; es un lenguaje de scripting completo para automatizar procesos.
3.1 Tu primer script
Crea un archivo llamado aritmetica.sh con el siguiente contenido:
#!/usr/bin/env bash
# Archivo: aritmetica.sh
expr 10 + 3
expr 10 - 3
expr 10 \* 3
expr 10 / 3
Ejecútalo con bash aritmetica.sh. La salida será:
13
7
30
3
3.2 Variables y argumentos
Las variables almacenan datos y se accede a ellas con el símbolo $:
#!/usr/bin/env bash
# Archivo: argumentos.sh
echo "Argumentos recibidos: $@"
echo "Primero: $1, Segundo: $2."
echo "Cantidad de argumentos: $#"
Al ejecutar bash argumentos.sh rojo azul verde, obtendrás:
Argumentos recibidos: rojo azul verde
Primero: rojo, Segundo: azul.
Cantidad de argumentos: 3
3.3 Estructuras condicionales
Usa if-elif-else para tomar decisiones:
#!/usr/bin/env bash
# Archivo: condicional.sh
if [[ $1 -eq 5 ]]; then
echo "Excelente, ingresaste 5"
elif [[ $1 -gt 5 ]]; then
echo "El número $1 es mayor que 5"
else
echo "El número $1 es menor que 5"
fi
3.4 Bucles
Bucle for: Itera sobre una secuencia.
for i in {1..3}; do
echo "Valor de i: $i"
done
Bucle while: Se ejecuta mientras se cumpla una condición.
contador=3
while [[ $contador -gt 0 ]]; do
echo "Contador: $contador"
contador=$((contador - 1))
done
3.5 Funciones
Agrupa código en funciones para reutilizarlo:
#!/usr/bin/env bash
# Archivo: sumar.sh
function sumar {
local total=0
for num in $@; do
total=$((total + num))
done
echo $total
}
4. Consejos para scripts profesionales
4.1 Hacer ejecutables
Usa chmod para dar permisos de ejecución:
chmod u+x mi_script.sh
./mi_script.sh
4.2 Incluir ayuda
Añade una opción -h o --help para mejorar la usabilidad:
#!/usr/bin/env bash
# Archivo: herramienta.sh
if [[ $1 == "-h" || $1 == "--help" ]]; then
echo "Uso: herramienta.sh [opciones]"
echo " -h, --help Muestra esta ayuda"
exit 0
fi
4.3 Manejo de errores
Verifica condiciones previas para evitar fallos:
if [[ ! -f "$1" ]]; then
echo "Error: El archivo $1 no existe."
exit 1
fi
5. Recursos para seguir aprendiendo
El proyecto "The Unix Workbench" ofrece materiales complementarios como:
- Fundamentos de comandos: Capítulo sobre línea de comandos.
- Programación Bash: Guía detallada de scripting.
- Control de versiones: Introducción a Git y GitHub.
Puedes clonar el repositorio para acceder a todos los ejemplos:
git clone https://gitcode.com/gh_mirrors/th/the-unix-workbench
Practicar con estos conceptos te permitirá automatizar tareas repetitivas y gestionar sistemas Unix con mayor fluidez.