Uso de los comandos tail y head en Linux

Si quieres introducirte en la línea de comandos en GNU Linux, los comandos tail y head serán imprescindibles en tu cuaderno de bitácora, cuando navegues en los mares de la terminal. Además, pertenecen al temario del certificado LPIC 1, así que si los estás estudiando esta breve entrada te podrá servir de repaso.

Ambos comandos se suelen utilizar para ver la información contenida en ficheros, sobre todo en los de registro de actividad, para ver así, las primeras o últimas líneas de dichos registros; ya sean de servidores web, de correo, de proxy, etc, todos ellos ubicados generalmente en /var.

Uso del comando head

Se utiliza para mostrar información, si lo usamos sin parámetros, de las 10 primeras líneas de un archivo en la salida estándar.  También se puede utilizar para mostrar información de varios ficheros a la vez.

No tiene un gran número de parámetros, el más importante es «-n«, donde indicamos el número de líneas que queremos que nos muestre.

Por ejemplo:

$ head -n 20 /var/log/messages

De esta manera, en vez de mostrar 10 líneas, nos mostrará 20. El mismo resultado lo podemos encontrar, de la siguiente manera, utilizando el guión «»

$ head -20 /var/log/messages

El otro parámetro es «-c» , que imprime los primeros bytes indicados:

$ head -c 100 /var/log/messages

Con el resultado:

[root@servcentos ~]# head -c 100 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

Uso del comando tail

Quizás el comando tail es uno de los que más utilizo en mi día a día de SysAdmin. Es genial para consultar registros de actividad. En su uso básico nos muestra las 10 últimas líneas de un archivo. Tiene un poco más de miga que el comando head, del que hemos hablado antes.

Su uso más habitual, por lo menos desde mi punto de vista, es junto con el parámetro «-f» , que genera información a medida que crece el archivo.

$ tail -f /var/log/apache/access.log

También le podemos indicar que nos muestre en pantalla un número dado de líneas:

$ tail -n 20 /var/log/messages

En este caso nos mostrará las 20 últimas líneas del fichero.

También le podemos decir que muestre la información a partir de una línea en concreto, de esta manera:

$ tail -n +20 /etc/passwd

De esta forma, utilizando el símbolo «+«, mostrará la información a partir de esa línea

Si así lo deseamos podemos indicar que queremos que nos muestre un número dado de bytes, utilizando el parámetro «-c«, como sigue:

$ tail -c 30 /etc/passwd

Con un resultado similar:

[root@servcentos ~]# tail -c 30 /etc/passwd
David:/home/david:/bin/bash

Estas son los usos habituales de esos dos comandos, para saber más:

Man page for head
Man page for tail

Quizás también te pueda interesar la entrada, donde os hablé de los comandos más importantes para GNU/Linux:

Los 42 comandos más importantes en GNU/Linux

Y esto es todo, espero que esta entrada os pueda ser de utilidad en algún momento.