Domina el Comando head en Linux: Tu Atajo para Archivos y Salidas Inmensas

Published:

Imagina esta escena: tienes un archivo de registro (log) de 2 GB que sospechas contiene un error, o la salida de un comando como ps -aux que despliega cientos de líneas. Abrirlo completo sería lento y abrumador. Aquí es donde entra en acción head, una de las utilidades más simples pero indispensables en la terminal de Linux.

head te permite ver solo el inicio de un archivo o del flujo de datos, ofreciendo una vista previa instantánea sin cargar el contenido completo en memoria. Es la herramienta perfecta para echar un primer vistazo, diagnosticar problemas rápidamente o filtrar la salida de otros comandos.

✨ Lo Básico: Sintaxis y Primeros Pasos

La sintaxis general es sencilla:

head [OPCIONES] [ARCHIVO]

Si no especificas un archivo, head leerá desde la entrada estándar (stdin), lo que lo hace ideal para usar con tuberías (|).

Ejemplo Práctico Inmediato:
Para ver las primeras 10 líneas de tu archivo de log del sistema (/var/log/syslog), simplemente escribe:

head /var/log/syslog

🛠️ Guía con Ejemplos Reales: De lo Simple a lo Avanzado

Vamos a usar dos archivos de ejemplo, servidor.log y usuarios.csv, para demostrar el poder de head.

1. Personaliza el número de líneas (-n)
Por defecto, head muestra 10 líneas. Para ver solo las 5 primeras (útil para ver las entradas más recientes de un log):

head -n 5 servidor.log
# Forma abreviada equivalente:
head -5 servidor.log

2. Trabaja con bytes en lugar de líneas (-c)
Perfecto para echar un vistazo a los encabezados de archivos binarios o ver una cantidad exacta de datos. Para ver los primeros 100 bytes de una imagen:

head -c 100 imagen.jpg | file -

3. Combina múltiples archivos
¿Necesitas comparar el inicio de varios archivos a la vez?

head -n 3 servidor.log usuarios.csv

Notarás que head muestra un encabezado con el nombre de cada archivo antes de sus líneas.

4. Silencia los encabezados (-q)
Para unir la salida de varios archivos limpiamente (ideal para luego procesarla con otra herramienta):

head -q -n 3 servidor.log usuarios.csv

5. El Superpoder: Usar head con Tuberías (|)
Aquí es donde head brilla. Puedes filtrar la salida de cualquier comando.

  • Top 5 procesos consumiendo CPU:

    ps aux --sort=-%cpu | head -n 6  # La línea 1 es el encabezado
  • Últimos 10 usuarios logueados (combinado con last):

    last | head -n 10
  • Primeras 5 líneas de la lista de paquetes instalados:

    apt list --installed 2>/dev/null | head -n 5

💡 Comparación Rápida: head vs tail vs cat

Comando Propósito Principal Caso de Uso Típico
head Ver el inicio de un archivo o flujo. «¿Qué ha ocurrido más recientemente en el log?»
tail Ver el final de un archivo o flujo. (Su opuesto natural). «¿Cuáles son los últimos errores registrados?»
cat Volcar/concatenar el contenido completo. «Necesito ver o procesar todo el archivo.»

🔧 Combinaciones Poderosas para el Día a Día

  1. Análisis de Logs Express: Encuentra rápidamente las últimas entradas de error de un servicio.

    journalctl -u nginx.service | head -20
  2. Monitoreo de Procesos Específicos: Verifica si un proceso de un usuario está en ejecución.

    ps aux | grep -v "root" | head -10  # Procesos de usuarios no privilegiados
  3. Validación de Datos: Comprueba la estructura de un archivo CSV o JSON grande antes de importarlo.

    head -n 1 datos_exportados.csv  # Muestra solo la línea de encabezados

✅ Conclusión: Una Herramienta Minimalista e Imprescindible

head es el epítome de la filosofía Unix: hacer una cosa, y hacerla bien. Su simplicidad es su mayor virtud. No intenta ser un editor complejo, sino una llave de paso que controla el flujo de información en tu terminal.

Domina head (y su compañero tail) y ganarás un control mucho más fino sobre los datos en tu sistema Linux, ahorrando tiempo y evitando saturar tu pantalla con información innecesaria. La próxima vez que te enfrentes a un archivo enorme o una salida interminable, recuerda: un simple head -n 20 puede ser la respuesta.

- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles