Bash · RECURSO GRATUITO
Bash: tu primer laboratorio de terminal
Crea una carpeta de trabajo, encuentra archivos con espacios y combina herramientas para obtener un resultado que puedes comprobar.
25–40 minutos orientativos. Puedes parar y repetir a tu ritmo.
Descargar guía sin conexiónHTML independiente, imprimible como PDF. Sin registro.
Qué necesitas: Bash y utilidades habituales: Git Bash en Windows, o Bash en macOS/Linux. Un editor de texto. Estos comandos no están escritos para PowerShell.
Tu resultado: Un pequeño inventario con nombres que contienen espacios y un informe de búsquedas, conservando todos los originales.
1. Comprueba dónde estás y prepara datos ficticios
pwd muestra la carpeta actual. Crea una carpeta nueva fuera de documentos importantes; si ya existe, elige otro nombre antes de continuar. No necesitas privilegios de administrador. Los comandos escriben únicamente archivos de este laboratorio.
pwd
mkdir labs-bash-inicio
cd labs-bash-inicio
mkdir entrada salida
printf 'Git\nBash\nDocker\n' > 'entrada/mi lista.txt'
printf 'Pendiente: practicar comillas\nHecho: abrir terminal\n' > entrada/tareas.txt
ls entradaComprueba: entrada contiene «mi lista.txt» y «tareas.txt». Las comillas hacen que el primer nombre sea un único argumento aunque tenga un espacio.
2. Lee, busca y comprende los códigos de salida
cat lee un archivo; grep selecciona líneas que coinciden con un patrón. Un grep sin coincidencias devuelve 1: no siempre significa una avería. Consulta $? justo después del comando que quieres comprobar, porque la siguiente orden lo reemplaza.
cat 'entrada/mi lista.txt'
grep -n 'Pendiente' entrada/tareas.txt
grep 'NoExiste' entrada/tareas.txt
printf 'Código anterior: %s\n' "$?"Comprueba: La búsqueda de Pendiente muestra la línea 1. La de NoExiste no muestra texto y printf indica código 1. Un problema al abrir el archivo suele producir otro código de salida, no una coincidencia vacía.
3. Combina herramientas y guarda un resultado
La tubería entrega la salida de una herramienta a otra. Aquí buscamos tareas pendientes y contamos líneas. La redirección > crea o reemplaza el informe: no la apuntes a un archivo que quieras conservar. El número puede aparecer con espacios de relleno.
grep 'Pendiente' entrada/tareas.txt | wc -l
grep 'Pendiente' entrada/tareas.txt > salida/pendientes.txt
cat salida/pendientes.txtComprueba: El contador es 1 y el informe contiene la tarea pendiente. entrada/tareas.txt no se modifica.
4. Recorre archivos respetando espacios
Un glob como entrada/* expande los nombres de los archivos. Cada uso de una variable que representa una ruta va entre comillas. No uses «for archivo in $(ls entrada)»: dividiría nombres con espacios. El patrón de esta práctica tiene coincidencias porque acabamos de crearlas.
for archivo in entrada/*; do
printf 'Archivo: %s\n' "$archivo"
wc -l < "$archivo"
doneComprueba: Se procesan dos archivos, con 3 y 2 líneas respectivamente. «mi lista.txt» no se divide en dos nombres.
5. Copia y verifica sin tocar el origen
cp crea una copia. cmp compara el contenido, sin imprimir nada cuando ambos archivos coinciden. El destino se crea dentro de salida; si repites el comando, reemplaza esa copia.
cp 'entrada/mi lista.txt' 'salida/copia de mi lista.txt'
cmp 'entrada/mi lista.txt' 'salida/copia de mi lista.txt'
printf 'Comparación: %s\n' "$?"
cat 'entrada/mi lista.txt'Comprueba: La comparación devuelve 0 y el archivo original sigue mostrando tres líneas.
Tu turno
Añade una segunda tarea que empiece por Pendiente y regenera el informe. Predice el nuevo número de líneas antes de ejecutar. Después comprueba que copiar la lista no ha cambiado el archivo original.
Ver solución y explicación
printf 'Pendiente: repetir el laboratorio\n' >> entrada/tareas.txt
grep 'Pendiente' entrada/tareas.txt > salida/pendientes.txt
wc -l < salida/pendientes.txt
cmp 'entrada/mi lista.txt' 'salida/copia de mi lista.txt'
printf 'Comparación: %s\n' "$?">> añade al final; > reemplaza el informe anterior. El informe tiene dos líneas y cmp devuelve 0. Los comandos son pequeños: su utilidad aparece al combinarlos y entender entradas, salidas y errores.
Explícalo con tus palabras
- ¿Qué ocurriría si quitaras las comillas a una variable con espacios?
- ¿Qué diferencia hay entre > y >>?
- ¿Por qué hay que consultar $? inmediatamente?
Repite con datos distintos antes de marcarlo como practicado. Esta es una autoevaluación, no una certificación.
Guarda tu siguiente paso
Todo el recurso es gratuito y puedes descargarlo sin cuenta. Si te registras, podrás guardar esta práctica y retomarla desde Mi cuenta.
Entrar y guardar Crear cuenta gratisCrear una cuenta no te suscribe a correos promocionales.