Contenido
1. ¿Qué es un Shell?
Un shell es un programa que permite al usuario comunicarse con el sistema operativo. Interpreta los comandos que escribimos y envía instrucciones al sistema para que las ejecute.
En sistemas GNU/Linux existen varios shells. Algunos de los más conocidos son:
- Bash (Bourne Again SHell): el más utilizado en Linux, objetivo de este curso.
- Zsh: muy usado en macOS y por usuarios que personalizan el terminal.
- Fish: ofrece funcionalidades más modernas (autocompletado avanzado, etc.).
- Dash: es un shell muy minimalista usado en muchos sistemas para scripts del sistema.
En nuestro caso trabajaremos con Bash porque es el estándar en Ubuntu y muy común en servidores Linux.
2. ¿Qué es Bash?
Bash es tanto un intérprete de comandos como un lenguaje de scripting. Esto significa que:
- Podemos usarlo interactivamente, escribiendo comandos en la terminal.
- Podemos guardar comandos en un archivo para ejecutarlos como un programa.
Gracias a esto, Bash es muy útil para:
- Automatizar tareas repetitivas.
- Administrar sistemas Linux.
- Crear herramientas personalizadas.
- Trabajar en entornos DevOps y ciberseguridad.
3. ¿Qué es un Script?
Un script es un archivo que contiene una secuencia de comandos. En lugar de escribirlos uno a uno en la terminal, los agrupamos para que se ejecuten automáticamente.
Un ejemplo básico de script sería:
echo "Hola, mundo!"
echo "Este es mi primer script."
Un script se ejecuta de principio a fin, permitiendo automatizar procesos como:
- Copias de seguridad.
- Instalación de software.
- Monitorización del sistema.
- Generación de informes.
- Gestión de archivos.
4. ¿Por qué aprender Bash?
Dominar Bash abre la puerta a muchas áreas técnicas, como:
- Administración de sistemas y servidores.
- DevOps y automatización CI/CD.
- Ciberseguridad (análisis, auditorías, automatización).
- Ciencia de datos (procesamiento rápido de archivos).
- Desarrollo backend y despliegues.
Además:
- Está disponible por defecto en la mayoría de sistemas Linux.
- Funciona en entornos gráficos y no gráficos.
- Requiere pocos recursos.
- Es sencillo de empezar, pero muy potente en niveles avanzados.
5. Rutas, Directorios y Comandos Básicos
Para trabajar con Bash necesitamos movernos entre carpetas y ejecutar comandos.
Algunos comandos básicos que ya deberías conocer o aprender ahora son:
pwd— muestra la ruta actual (“print working directory”)ls— lista los archivos en el directoriocd— cambia de directoriomkdir— crea una carpetatouch— crea un archivo vacíocat— muestra el contenido de un archivorm,cp,mv— borrar, copiar y mover archivosman comando— ver el manual de un comando
Estos comandos se usan tanto en modo interactivo como dentro de scripts.
6. Tipos de Rutas: Absolutas y Relativas
En Linux todo comienza en /, llamado root del sistema.
Existen dos tipos de rutas:
Ruta absoluta: empieza desde la raíz del sistema.
Ejemplos:
/home/usuario/documentos
/etc
/var/log
Ruta relativa: depende de la ruta en la que estés.
Ejemplos:
./miarchivo
../otra_carpeta
scripts/
Conocer esto es importante para escribir scripts reproducibles.
7. Primer Script: Hola Mundo
Vamos a crear un script sencillo para entender el proceso.
- Crea un archivo:
nano hola.sh
- Escribe dentro:
#!/bin/bash
echo "Hola mundo desde Bash"
- Guarda y sal del editor.
- Dale permisos de ejecución:
chmod +x hola.sh
- Ejecútalo:
./hola.sh
Si aparece el texto en pantalla, lo has hecho bien.
8. ¿Qué es el Shebang?
La primera línea del script se llama shebang, y sirve para indicar qué intérprete debe ejecutar el archivo.
Ejemplos:
#!/bin/bash→ interpreta el script con Bash#!/usr/bin/python3→ interpreta con Python 3#!/bin/sh→ shell compatible POSIX
Si no pones shebang, el sistema usará el intérprete por defecto, lo que puede causar comportamientos inesperados.
9. Errores habituales del Principiante
Es normal ver errores como:
permission denied→ falta ejecutarchmod +x script.shcommand not found→ se ejecuta con un shell distinto o está mal escritono such file or directory→ falta ruta, archivo o extensión
También es común olvidar que Linux diferencia mayúsculas y minúsculas:
hola.sh ≠ Hola.sh ≠ HOLA.SH
Ejercicios propuestos
Ejercicio 1: Abrir la terminal y ejecutar los comandos:
pwdlscdhacia diferentes carpetas- Crear y borrar archivos con
touchyrm
Ejercicio 2: Crear un script llamado presentacion.sh que muestre:
- Tu nombre
- El día actual
- Tu directorio de trabajo
Ejemplo de salida esperada:
Mi nombre es Juan Pérez
Hoy es 2026-01-10
Estoy trabajando en /home/juan
Ejercicio 3: Crear un script que liste los archivos del directorio /etc y guarde el resultado en etc-listado.txt.
Soluciones
✅ Ejercicio 1 — Solución
Enunciado:
Abrir la terminal y ejecutar los comandos:
pwdlscdhacia diferentes carpetas- Crear y borrar archivos con
touchyrm
📌 Solución / Resultado esperado:
- Mostrar la ruta actual:
pwd
Ejemplo de salida:
/home/alumno
- Listar archivos del directorio actual:
ls
Salida posible:
Documentos Descargas Imágenes
- Cambiar de directorio:
cd Documentos
pwd
Ejemplo:
/home/alumno/Documentos
Luego volver al home:
cd ~
pwd
- Crear y borrar archivos:
Crear un archivo vacío:
touch prueba.txt
Verificar:
ls
Debería aparecer prueba.txt.
Borrar el archivo:
rm prueba.txt
✅ Ejercicio 2 — Solución
Enunciado:
Crear un script presentacion.sh que muestre:
- Tu nombre
- El día actual
- Tu directorio de trabajo
Ejemplo de salida esperada:
Mi nombre es Juan Pérez
Hoy es 2026-01-10
Estoy trabajando en /home/juan
💡 Solución propuesta (presentacion.sh):
#!/bin/bash
echo "Mi nombre es Juan Pérez"
echo "Hoy es $(date +%Y-%m-%d)"
echo "Estoy trabajando en $(pwd)"
📌 Instrucciones de ejecución:
Dar permisos:
chmod +x presentacion.sh
Ejecutar:
./presentacion.sh
Salida aproximada:
Mi nombre es Juan Pérez
Hoy es 2026-01-10
Estoy trabajando en /home/juan
Evidentemente, cada alumno pondrá su nombre.
✅ Ejercicio 3 — Solución
Enunciado:
Crear un script que liste los archivos del directorio /etc y guarde el resultado en etc-listado.txt.
💡 Solución propuesta (listar_etc.sh):
#!/bin/bash
ls /etc > etc-listado.txt
📌 Explicación:
ls /etc→ lista el contenido del directorio/etc>→ redirecciona la salida estándar a un archivo
📌 Instrucciones:
- Crear script:
nano listar_etc.sh
- Pegar el contenido, guardar y salir.
- Dar permisos:
chmod +x listar_etc.sh
- Ejecutar:
./listar_etc.sh
- Verificar el resultado:
cat etc-listado.txt
Ejemplo de contenido:
adduser.conf aliases alternatives apache2 apt bash.bashrc ...






![11. [Reto] Bash Incremental: Aprender Shell a Golpes de Ejemplos 021c8028-9a76-4b0a-90e1-d0617edc9d94](https://laaventuradeaprender.com/wp-content/uploads/2026/01/021c8028-9a76-4b0a-90e1-d0617edc9d94.webp)

