El comando head en sistemas operativos bassados en Unix y Linux muestra las primeras líneas o bytes de un archivo. De manera predeterminada, presenta las 10 líneas iniciales, pero permite personalizar la cantidad según necesidades.
Opciones dsiponibles
-c, --bytes=[-]K: Exhibe los primeros K bytes. Con un prefijo '-', se omiten los últimos K bytes.-n, --lines=[-]K: Muestra las primeras K líneas. Con un prefijo '-', se excluyen las últimas K líneas.-q, --quiet, --silent: Suprime los encabezados que indican nombres de archivo.-v, --verbose: Muestra siempre los encabezados con nombres de archivo.--help: Presenta ayuda y finaliza.--version: Indica la versión y termina.
Ejemplos prácticos
Para ver las primeras 4 líneas del archivo /etc/hosts:
$ head -n 4 /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
fe00::0 ip6-allnodes
Para mostrar los primeros 25 bytes de /etc/hostname:
$ head -c 25 /etc/hostname
nombre-de-maquina-ejemplo
Para mostrar todas las líneas excepto las últimas 20 de un archivo de registro, como /var/log/syslog:
$ head -n -20 /var/log/syslog
Aug 2 08:00:01 servidor systemd[1]: Started Daily apt activities.
Aug 2 08:00:02 servidor kernel: [ 0.000000] Linux version 5.4.0-42-generic
... (contenido adicional omitido)
Para mostrar las primeras 3 líneas con el encabezado del archivo:
$ head -v -n 3 /etc/passwd
==> /etc/passwd <==
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
Al trabajar con múltiples archivos, como /etc/hosts y /etc/resolv.conf:
$ head -n 6 /etc/hosts /etc/resolv.conf
==> /etc/hosts <==
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
fe00::0 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
==> /etc/resolv.conf <==
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.53
options edns0
search mydomain.com
Para ocultar los encabezados y concatenar el contenido directamente:
$ head -q -n 6 /etc/hosts /etc/resolv.conf
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
fe00::0 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.53
options edns0
search mydomain.com
Este comando es frecuentemente utilizado en combinación con tuberías para procesar la salida de otros comandos en el terminal.