← Más ejemplos de código: Java, Python, C#, PHP, C, C++, Bash…
Bash es el intérprete de órdenes de casi todos los servidores Linux, de WSL en Windows y de los contenedores, y el pegamento con el que se automatiza todo lo demás: copias de seguridad, despliegues, registros, tareas programadas. Aquí tienes un curso desde cero con Bash 5.3, una guía de los fallos de seguridad que más se repiten en los scripts y de cómo evitarlos, las versiones que hay que conocer, sus rarezas, un test y ejemplos para tareas concretas. Todos los scripts se ejecutaron y se revisaron con ShellCheck antes de publicarse.
Curso · 8 leccionesAprende Bash desde cero, en españolDel primerecho a un script con opciones, registro y pruebas: variables y comillas, condiciones y bucles, funciones y arrays, redirecciones y tuberías, grep, sed y awk, y scripts que no se rompen. Con esquemas, retos y el aviso real de ShellCheck en cada error.Ir al curso →Seguridad: lo que no puede faltar
Un script de Bash suele correr con permisos de sobra, a menudo como root o desde cron, y procesa nombres de archivo y datos que no controla. Por eso un descuido tan pequeño como olvidar unas comillas puede borrar lo que no debía o ejecutar órdenes ajenas. Casi todos esos errores los detecta ShellCheck, que es gratuito. Cada lección del curso tiene su recuadro «Ojo con la seguridad», y estas dos páginas lo reúnen todo.
SeguridadLos fallos de seguridad típicos de los scripts de BashVariables sin comillas, eval, archivos temporales predecibles, nombres de archivo con guiones, rutas vacías enrm -rf, secretos a la vista y curl | bash: cada uno con cómo detectarlo y la forma segura.Ver los fallos → Versiones y parchesDel Bourne shell a Bash 5.3, y ShellshockQué trajo cada versión, por qué macOS sigue con Bash 3.2, qué es POSIX y qué cambió tras Shellshock.Ver las versiones →Practica y ponte a prueba
RarezasLo que Bash hace sin avisarVariables que se pierden en una tubería,set -e que no salta, [ frente a [[, $* frente a $@ y números que de pronto son octales.Ver las rarezas → Test · 24 preguntas¿Qué imprime este script?24 preguntas sobre el curso, con fragmentos de Bash: decide qué escriben. Con la nota, los aciertos por lección y la salida real de Bash 5.3 en cada respuesta.Hacer el test →Los ejemplos son scripts de un solo archivo que se ejecutan con bash script.sh (o con chmod +x script.sh y ./script.sh). Están probados con Bash 5.3 y las herramientas GNU de Linux; en macOS, que trae Bash 3.2 y herramientas BSD, algunas opciones cambian, y en Windows funcionan con WSL o Git Bash.
Archivos y texto
- Leer un archivo línea a líneawhile read sin perder espacios ni la última línea, campos separados y archivos enormes.
- Renombrar archivos en loteCambiar extensiones, quitar espacios, numerar y probar antes con un modo de ensayo.
- Buscar y reemplazar en archivosgrep para encontrar y sed -i para cambiar, con copia de seguridad y caracteres especiales.
- Procesar CSVcut, awk y un lector que respeta las comillas: sumar, filtrar y reordenar columnas.
Datos y registros
- Analizar registros (logs)Contar errores, las IP que más piden y las peticiones por hora de un access.log.
- Fechas y horasdate con formatos, sumar días, diferencias entre fechas, zonas horarias y marcas de tiempo.
- Leer y crear JSON con jqExtraer campos, filtrar arrays, convertir a CSV y construir JSON sin romper las comillas.
- Copias de seguridadtar con fecha, rotación de copias viejas, comprobar la copia y avisar si falla.
Scripts para el día a día
- Argumentos y opciones con getopts$1, $@ y shift, opciones cortas con getopts, –help y los códigos de salida.
- Tareas en paralelo& y wait, xargs -P, limitar los trabajos a la vez y recoger los errores.
- Programar tareas con croncrontab, el entorno mínimo de cron, registros, bloqueos con flock y errores típicos.
- Un menú interactivoread con validación, select, colores y confirmaciones antes de lo peligroso.
Todos los scripts se ejecutaron con Bash 5.3 en Ubuntu 26.04, en un contenedor limpio sin acceso a la red, y se revisaron con ShellCheck 0.11 antes de publicarse; las salidas y los avisos que aparecen están copiados de esa ejecución. ¿Buscas las órdenes sueltas? Están en Los comandos de Linux que de verdad se usan.
