GNU/Linux >> Tutoriales Linux >  >> Linux

Comandos de cabeza y cola en Linux explicados con ejemplos

Obtener una parte del texto de los archivos de entrada en Linux es una operación común. Sin embargo, a veces nos interesa ver solo unas pocas líneas de un archivo. Linux nos proporciona los comandos head y tail para imprimir solo las líneas que nos interesan.

Índice

  • Comando principal en Linux
    • Generar un número específico de líneas usando el comando head
    • Generar un número específico de bytes usando el comando head
    • Generar múltiples archivos usando el comando head
    • Cómo usar el comando head con tuberías
  • Comando de cola en Linux
    • Generar un número específico de líneas usando el comando tail
    • Cómo usar el comando tail con tuberías
    • Observe cambios en un archivo usando el comando tail
  • Cómo usar los comandos head and tail juntos en Linux
  • Conclusión

Linux head y tail Los comandos son muy similares. Están instalados por defecto en todas las distribuciones de Linux. Primero comprendamos qué son y para qué se utilizan.

En resumen, como sus nombres lo indican, el head El comando imprime líneas desde el principio de un archivo y el tail El comando imprime líneas desde el final de los archivos. Ambos comandos escriben el resultado en la salida estándar.

Ahora, aprendamos cómo usarlos a través de ejemplos.

Comando principal en Linux

La sintaxis del head el comando es bastante sencillo:

head [OPTIONS] FILES

Por defecto, sin ninguna opción , la head El comando mostrará las primeras 10 líneas del archivo. Justo así.

head /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin
mail:x:8:12::/var/spool/mail:/usr/bin/nologin
ftp:x:14:11::/srv/ftp:/usr/bin/nologin
http:x:33:33::/srv/http:/usr/bin/nologin
nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
dbus:x:81:81:System Message Bus:/:/usr/bin/nologin
systemd-journal-remote:x:982:982:systemd Journal Remote:/:/usr/bin/nologin
systemd-network:x:981:981:systemd Network Management:/:/usr/bin/nologin

Por supuesto, hay opciones que podemos definir mientras ejecutamos el comando para obtener la salida personalizada.

Generar un número específico de líneas usando el comando head

Si desea recuperar un número de líneas diferente al predeterminado de 10, entonces -n La opción se usa junto con un número entero que indica el número de líneas que se recuperarán.

Por ejemplo, el siguiente comando mostrará las primeras 3 líneas de /etc/passwd archivo.

head -n 3 /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin

Generar un número específico de bytes usando el comando head

Además de, la head El comando también puede imprimir el contenido del archivo por byte. Solo pasa el -c opción al comando. Tenga en cuenta que la nueva línea cuenta como un solo carácter, por lo que si head imprime una nueva línea, la contará como un byte.

Por ejemplo, el siguiente comando mostrará los primeros 8 bytes de /etc/passwd archivo.

head -c 8 /etc/passwd
root:x:0

Generar varios archivos usando el comando head

Por supuesto, la head El comando también puede manejar varios archivos. Por ejemplo, el siguiente comando mostrará las primeras 3 líneas de /etc/passwd y /etc/group archivos.

head -n 3 /etc/passwd /etc/group
==> /etc/passwd <==
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin

==> /etc/group <==
root:x:0:brltty,root
sys:x:3:bin
mem:x:8:

Agregando el -q La opción del ejemplo anterior eliminará los encabezados que dan nombres de archivo.

head -q -n 3 /etc/passwd /etc/group
root:x:0:0::/root:/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin
root:x:0:brltty,root
sys:x:3:bin
mem:x:8:

Cómo usar head Command con Pipes

La head El comando se puede canalizar a otros comandos. En el siguiente ejemplo, la salida de ls el comando se canaliza a head para mostrar los cinco archivos o carpetas modificados más recientemente en /etc directorio.

ls -t /etc | head -n 5
ld.so.cache
resolv.conf
systemd
libreoffice
profile.d

A estas alturas, debería tener una buena comprensión de cómo usar Linux head dominio. Ahora, echemos un vistazo a la tail comando.

Comando de cola en Linux

El comando Tail en Linux es el mismo que head dominio. A diferencia de la head comando, sin embargo, el tail El comando imprime el último número de líneas (10 líneas de forma predeterminada) de un archivo determinado.

La sintaxis básica del comando tail es:

tail [OPTIONS] FILES

Por ejemplo, el siguiente comando imprimirá las últimas 10 líneas de /etc/locale.gen archivo.

tail /etc/locale.gen
#zh_HK.UTF-8 UTF-8
#zh_HK BIG5-HKSCS
#zh_SG.UTF-8 UTF-8
#zh_SG.GBK GBK
#zh_SG GB2312
#zh_TW.EUC-TW EUC-TW
#zh_TW.UTF-8 UTF-8
#zh_TW BIG5
#zu_ZA.UTF-8 UTF-8
#zu_ZA ISO-8859-1

Generar un número específico de líneas usando el comando de cola

Similar a la head comando, también puede imprimir las últimas líneas usando el -n opción como se muestra a continuación.

tail -n 3 /etc/locale.gen
#zh_TW BIG5
#zu_ZA.UTF-8 UTF-8
#zu_ZA ISO-8859-1

Cómo usar el comando tail con tuberías

Anteriormente, canalizamos la salida desde head en ls . También podemos canalizar la salida de otros comandos en tail .

Por ejemplo, para identificar los cinco archivos o carpetas en /etc directorio con los tiempos de modificación más antiguos y canalice la salida a tail :

ls -t /etc/ | tail -n 5
wpa_supplicant
libpaper.d
papersize
mdadm.conf
gssapi_mech.conf

Observe cambios en un archivo usando el comando tail

Hay una función más poderosa en tail dominio. A veces, el archivo de entrada que queremos comprobar está cambiando. Por ejemplo, una aplicación en ejecución puede agregar su salida a un archivo de registro. Si ejecutamos el tail comando con -f opción en el archivo cambiante, todas las líneas recién agregadas se agregarán a la salida estándar. Esta podría ser, con mucho, la opción más útil y más utilizada para tail comando.

Por ejemplo, puede ver las nuevas líneas que se agregan al final de un archivo de registro de Nginx, a medida que se agregan, así:

tail -f /var/log/nginx/access.log
172.16.1.122 - - [08/Apr/2021:08:15:32 +0000] "POST /wp-admin/admin-ajax.php HTTP/1.1" 200 109 "https://linuxwizard.com/wp-admin/post.php?post=18254&action=edit" "Mozilla/5.0 (X11; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0" 
172.16.1.122 - - [08/Apr/2021:08:19:27 +0000] "GET /feed/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1" 
172.16.1.122 - - [08/Apr/2021:08:19:49 +0000] "HEAD /feed/ HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36" 

A medida que se agrega cada nueva entrada de registro al archivo de registro, tail actualizará su visualización en la ventana del terminal.

Cómo usar los comandos head y tail juntos en Linux

Como tail y head Los comandos imprimen diferentes partes de los archivos, podemos combinar estos dos para imprimir un filtrado avanzado del contenido del archivo. Por ejemplo, si desea leer el contenido desde la mitad de cualquier archivo, debe usar ambos comandos a la vez.

Digamos que queremos ir de la línea 5 a la 10 desde /etc/passwd expediente. Al principio, head el comando recuperará las primeras 10 líneas y tail El comando recuperará las últimas 5 líneas de la salida de head comando.

head -n 10 /etc/passwd | tail -n 5
http:x:33:33::/srv/http:/usr/bin/nologin
nobody:x:65534:65534:Nobody:/:/usr/bin/nologin
dbus:x:81:81:System Message Bus:/:/usr/bin/nologin
systemd-journal-remote:x:982:982:systemd Journal Remote:/:/usr/bin/nologin
systemd-network:x:981:981:systemd Network Management:/:/usr/bin/nologin

Conclusión

Eso es todo por ahora. En este artículo hemos aprendido algunos usos típicos de ambos comandos a través de ejemplos. Como puede ver, tanto la tail y la head Los comandos son muy útiles para controlar exactamente qué contenido de archivo se imprimirá en la pantalla. Ciertamente, son comandos flexibles que pueden mejorar mucho la gestión de sus archivos. Pruébalos.

¿Necesitas más detalles? Revisa el head y la tail comandos de páginas man.


Linux
  1. Cómo usar los comandos 'cat' y 'tac' con ejemplos en Linux

  2. Comandos de Linux:descripción general y ejemplos

  3. Comando de cabeza de Linux con ejemplos

  4. Comando Traceroute de Linux, explicado con ejemplos

  5. 20 comandos básicos de Linux para principiantes explicados con ejemplos

Los comandos alias y unalias explicados con ejemplos

Comando Tr en Linux explicado con ejemplos

w Comando explicado con ejemplos en Linux

Permisos y propiedad de archivos de Linux explicados con ejemplos

Explicación del comando tee de Linux (con ejemplos)

Explicación del comando csplit de Linux (con ejemplos)