LABS · JULIÁN LÓPEZ JIMÉNEZ · 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.

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 entrada

Comprueba: 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.txt

Comprueba: 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"
done

Comprueba: 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

Repite con datos distintos antes de marcarlo como practicado. Esta es una autoevaluación, no una certificación.

Si quieres continuar

En De Cero a Bash continuarás con argumentos, condiciones, bucles y scripts que simulan antes de copiar archivos. Puedes repetir este laboratorio sin comprar ni registrarte.

Consultar el curso y su temario

Fuente: Recurso original de Labs. Puedes guardar este HTML, abrirlo sin conexión o imprimirlo como PDF desde tu navegador. No guarda tus respuestas ni el progreso de tu cuenta.