Cuando trabajas con sistemas basados en Linux, es muy común analizar archivos de registro (logs) generados por servicios y procesos que se ejecutan en segundo plano.
Muchos de estos procesos son daemons o servicios, como por ejemplo:
- OpenSSH (sshd)
- NetworkManager
- Logical Volume Manager
- Cron
Estos servicios generan grandes cantidades de registros, y revisarlos manualmente puede ser complicado.
Aquí es donde entra en juego el comando tail (Unix command), una herramienta muy útil para leer las últimas líneas de un archivo.
En este tutorial aprenderás cómo usar el comando tail con ejemplos prácticos, para analizar archivos, monitorear logs y trabajar con datos desde la terminal.
¿Qué es el comando tail en Linux?
El comando tail es una utilidad de línea de comandos que permite leer el final de un archivo. Por defecto:
- muestra las últimas 10 líneas
- puede trabajar con uno o varios archivos
- es muy útil para monitorizar logs en tiempo real
Sintaxis del comando tail
La sintaxis general es la siguiente:
tail [OPCIONES] [ARCHIVO]
También puede utilizarse con varios archivos:
tail [OPCIONES] archivo1 archivo2 archivo3
1. ¿Cómo mostrar las últimas 10 líneas de un archivo?
El uso más básico del comando tail es mostrar las últimas 10 líneas de un archivo.
tail /var/log/secure
El resultado debería ofrecer las últimas 10 líneas del archivo escaneado.
Este tipo de consulta es muy común cuando se revisan archivos de registro del sistema.
2. ¿Cómo mostrar las últimas N líneas de un archivo?
Podemos especificar cuántas líneas queremos mostrar usando la opción -n.
Por ejemplo, para mostrar solo 3 líneas:
tail -n 3 /var/log/secure
El resultado debería de mostrar exclusivamente las últimas 3 líneas de archivo escaneado.
También se puede escribir de forma abreviada:
tail -3 archivo.txt
3. ¿Cómo mostrar contenido desde una línea específica?
El comando tail permite iniciar la lectura desde una línea determinada utilizando el símbolo +.
Por ejemplo:
tail -n +5 archivo.txt
Esto mostrará todo el contenido del archivo, desde la línea 5 hasta el final del archivo.
Esto es útil, cuando quieres ignorar las primeras líneas de un archivo grande.
4. ¿Cómo mostrar los últimos N caracteres de un archivo?
Además de líneas, tail también puede trabajar con caracteres utilizando la opción -c.
Ejemplo:
tail -c 7 archivo.txt
Si el archivo contiene:
Bienvenido a Cibered el mejor sitio web de tutoriales tecnológicos
El resultado de la búsqueda debería de ser:
lógicos
Ósea, se muestran los 7 últimos espacios / caracteres del archivo escaneado.
5. ¿Cómo ignorar los primeros N caracteres?
También puedes saltar los primeros caracteres del archivo utilizando + junto con -c.
Ejemplo:
tail -c +5 archivo.txt
Si el archivo contiene:
Cibered ofrece los mejores tutoriales de Linux
El resultado será:
ed ofrece los mejores tutoriales de Linux
Este comando, omite los primeros 5 caracteres y muestra el resto del contenido que existe dentro del archivo.
6. ¿Cómo mostrar el nombre del archivo como encabezado?
Cuando trabajas con varios archivos, puede ser útil mostrar el nombre del archivo antes de su contenido.
Esto se logra con la opción -v.
tail -n 3 -v archivopaises.txt
Resultado:
==> archivopaises.txt <==
Madrid
Barcelona
Valencia
7. ¿Cómo usar tail con múltiples archivos?
El comando tail puede trabajar con varios archivos al mismo tiempo.
Ejemplo:
tail -n 3 -v ciudades.txt paises.txt
Salida:
==> ciudades.txt <==
Madrid
Sevilla
Bilbao
==> paises.txt <==
España
Francia
Italia
Esto permite comparar rápidamente registros entre distintos archivos.
8. ¿Cómo ocultar el encabezado de archivos?
Cuando se usan varios archivos, tail muestra el nombre de cada archivo por defecto.
Si quieres ocultarlo, puedes utilizar la opción -q.
tail -q -n 3 archivo1.txt archivo2.txt
La salida mostrará exclusivamente el contenido, sin indicar los nombres de los archivos a los que pertenece cada parte.
9. ¿Cómo monitorizar un archivo en tiempo real?
Una de las funciones más útiles de tail es el modo seguimiento en tiempo real usando el -f.
tail -f /var/log/messages
Este comando:
- muestra las últimas líneas del archivo
- permanece activo actualizando al instante
- muestra las nuevas líneas a medida que se generan
Lo que es perfecto para escanear archivos de logs. Si deseas detener el comando, puedes usar el atajo de:
Ctrl + C
10. ¿Cómo usar tail con pipes?
El comando tail también puede combinarse con otros comandos mediante pipes (|).
Por ejemplo:
tail -n 7 ciudades.txt | sort -r
Este comando:
- obtiene las últimas 7 líneas
- además las ordena en orden inverso
Otro ejemplos más complejo e interesantes:
cat ciudades.txt | head -n 20 | tail -n 5 > lista.txt
¿Qué haría este comando?:
- cat muestra todo el archivo
- head selecciona las primeras 20 líneas
- tail obtiene las últimas 5 de esas 20
Por tanto, guarda el resultado en un archivo resultante, creando un archivo con las últimas 5 líneas de esas 20 denominado lista.txt
.
