Fundamentos de la línea de comandos

Teoría: Lectura de archivos

Hasta ahora hemos aprendido cómo está organizado el sistema de archivos en sistemas compatibles con POSIX, como Linux. Hoy vamos a empezar a leer archivos desde la terminal, algo que haremos todo el tiempo al trabajar con sistemas operativos tipo Unix.


Leer archivos con cat

El comando más básico para leer archivos en la terminal es cat, que viene de la palabra concatenate (concatenar). Aunque suena complejo, su uso más común es simplemente mostrar el contenido de un archivo.

Veámoslo en acción:

cat .bash_logout

Este comando muestra todo el contenido del archivo .bash_logout, que se ejecuta cuando cerramos una sesión en la terminal.

Este archivo podría tener un contenido como este:

# ~/.bash_logout: ejecutado por bash(1) al salir de una sesión

if [ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

¿Cuándo usar cat?

Cuando el archivo es pequeño y queremos ver todo de una sola vez. No es recomendable para archivos largos.

▶️ Ver demostración:

asciicast


Leer parte del archivo: head y tail

Cuando un archivo es grande, a veces solo necesitamos ver una parte: el comienzo o el final. Para eso, usamos:

🐱head: muestra las primeras 10 líneas (por defecto)

🐈 tail: muestra las últimas 10 líneas (por defecto)

Podemos decirle cuántas líneas queremos ver usando el parámetro -n.

Ejemplo con head:

head -n 2 .bashrc

Este comando mostrará las primeras 2 líneas del archivo .bashrc, que contiene configuraciones que se cargan al abrir una terminal.

Ejemplo con tail:

tail -n 2 .bashrc

Este otro comando muestra las últimas 2 líneas del mismo archivo.

▶️ Ver demostración:
asciicast


Archivos grandes y en crecimiento: logs con tail -f

Los logs (archivos de registro) son archivos especiales donde el sistema guarda información sobre lo que está pasando, como errores o actividades del sistema.

En sistemas Linux, los logs viven en el directorio:

/var/log

Uno de los archivos más importantes ahí es syslog.

En WSL (Windows Subsystem for Linux), este archivo no viene activo por defecto. Para habilitarlo:

sudo add-apt-repository ppa:adiscon/v8-stable
sudo apt-get install rsyslog
sudo service rsyslog start

Leer logs en tiempo real

Para ver lo que ocurre en el momento en que pasa, usamos tail con la opción -f (de follow, "seguir"):

sudo tail -f /var/log/syslog

Este comando es especial porque no termina: se queda esperando nuevas líneas en el archivo y las muestra en cuanto llegan. Sirve mucho para depurar problemas o monitorear procesos.

Para salir de este modo, presionamos Ctrl + C.


Usar un paginador: less

Cuando un archivo es realmente largo, es difícil leerlo completo en pantalla. Aquí entran los paginadores, que permiten navegar por el contenido.

El más común es less.

sudo less /var/log/syslog

Este comando abre el archivo como si estuviéramos leyendo un libro. Podemos movernos hacia adelante y hacia atrás, buscar texto, y salir cuando queramos.

ComandoDescripción
qSalir
fPágina adelante
bPágina atrás
/Buscar texto
nSiguiente ocurrencia
NOcurrencia anterior

¿Te suena familiar? Es el mismo comportamiento del comando man, que muestra manuales. man usa internamente less para mostrar su contenido.

less es muy eficiente con archivos grandes porque no los carga por completo: solo presenta lo que cabe en pantalla y va trayendo el resto a medida que navegamos.


Resumen

  • Usamos cat para mostrar archivos pequeños rápidamente.
  • Si solo necesitamos ver una parte del archivo, usamos head (inicio) o tail (final).
  • Los archivos de logs como /var/log/syslog contienen eventos que ocurren en el sistema y son muy útiles para diagnóstico.
  • Podemos observar logs en tiempo real con el comando tail -f archivo.
  • El comando less permite leer archivos largos de forma cómoda, navegando y buscando texto.
  • less es usado también al consultar manuales (man), y está optimizado para trabajar con archivos muy grandes.

Con estos comandos ya podemos empezar a explorar cómo fluye la información dentro de Linux, leer configuraciones, ver registros del sistema y trabajar con archivos de texto como verdaderos administradores.