Descripción
Este curso está diseñado para enseñar los fundamentos de la programación en Bash (Bourne Again SHell) en sistemas Unix/Linux. Los estudiantes aprenderán a automatizar tareas, manipular archivos, procesar texto y crear herramientas eficientes desde la línea de comandos. No se requiere experiencia previa en programación, aunque es útil tener conocimientos básicos de uso de terminal. Al finalizar, los participantes serán capaces de escribir scripts robustos, depurar errores y aplicar buenas prácticas en entornos reales.
Duración sugerida: 10 horas (teoría + práctica).
Requisitos: Acceso a un sistema Unix/Linux (nativo, WSL o máquina virtual) y editor de texto.
Lista de tópicos a tratar
-
Introducción a la terminal y el shell
-
¿Qué es Bash? Diferencias entre shell, terminal y consola
-
Tipos de shells (sh, bash, zsh, etc.)
-
Comandos básicos del sistema (ls, cd, pwd, mkdir, rm, cp, mv)
-
-
Primeros scripts
-
Shebang (
#!/bin/bash) y permisos de ejecución -
Ejecutar un script (rutas relativas/absolutas)
-
Comentarios y legibilidad
-
-
Variables y expansión
-
Variables de usuario y de entorno
-
Reglas de nombrado y asignación
-
Expansión de variables (
$var,${var}) -
Variables especiales (
$0,$#,$@,$?, etc.)
-
-
Entrada y salida
-
echo,printf -
Lectura interactiva con
read -
Redirección de entrada/salida (
>,>>,<,|) -
Descriptores de archivo (
stdin,stdout,stderr)
-
-
Estructuras condicionales
-
Comando
testy[ ]vs[[ ]] -
Operadores de comparación (numéricos, cadenas, archivos)
-
if,then,else,elif -
casepara múltiples opciones
-
-
Bucles
-
for(con lista, rango, estilo C) -
whileyuntil -
Control de bucles (
break,continue)
-
-
Arrays y listas
-
Arrays indexados y asociativos (Bash 4+)
-
Manipulación: añadir, eliminar, recorrer elementos
-
Expansión de arrays (
${arr[@]},${!arr[@]})
-
-
Funciones
-
Definición y llamada
-
Variables locales (
local) -
Paso de argumentos y valores de retorno (código de salida)
-
Ámbito y reutilización
-
-
Manejo de cadenas y archivos
-
Longitud, subcadenas, reemplazo
-
Expresiones regulares básicas (
=~) -
Lectura línea por línea (
while IFS= read -r line) -
Operaciones con archivos (verificar existencia, permisos, tipo)
-
-
Procesamiento de texto
-
grep,sed,awk(fundamentos) -
cut,sort,uniq,tr -
Composición de comandos con pipes
-
-
Depuración y manejo de errores
-
Modo verbose (
set -x), modo de salida en error (set -e) -
Trampas (
trap) para señales y limpieza -
Validación de argumentos y ayuda (
--help)
-
-
Automatización y tareas programadas
-
Creación de scripts para copias de seguridad, monitoreo, etc.
-
cronycrontab(ejecución periódica) -
Registro de logs (
logger, redirección a archivo)
-
-
Buenas prácticas y seguridad
-
Uso de comillas dobles vs simples
-
Evitar
evaly riesgos de inyección -
Scripts portables (compatibilidad con POSIX)
-
Documentación y manejo de versiones
-
-
Proyecto final
-
Desarrollo de un script integrador (ej. gestor de archivos, monitor de sistema, automatización de reportes)
-
Revisión y retroalimentación
-




Valoraciones
No hay valoraciones aún.