← Todos los recursos

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ón

HTML 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 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

  • ¿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 gratis

Crear una cuenta no te suscribe a correos promocionales.