De la terminal a la automatización: Domina el scripting en Unix

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 -l muestra 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 ./scripts o ../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 (presiona q para 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.

Etiquetas: unix bash terminal scripting línea de comandos

Publicado el 7-9 22:07