GNU/Linux >> Linux Esercitazione >  >> Linux

Comandi Head and Tail in Linux spiegati con esempi

Il recupero di una parte di testo dai file di input in Linux è un'operazione comune. Tuttavia, a volte, siamo interessati a visualizzare solo poche righe di un file. Linux ci fornisce i comandi testa e coda per stampare solo le righe che ci interessano.

Sommario

  • Comando principale in Linux
    • Emetti un numero specifico di righe usando il comando head
    • Emetti un numero specifico di byte usando il comando head
    • Emetti più file usando il comando head
    • Come usare il comando head con i tubi
  • Comando Tail in Linux
    • Emetti un numero specifico di righe usando il comando tail
    • Come usare il comando tail con i tubi
    • Guarda un file per le modifiche usando il comando tail
  • Come utilizzare i comandi head e tail insieme in Linux
  • Conclusione

Linux head e tail i comandi sono molto simili. Per impostazione predefinita, sono installati in tutte le distribuzioni Linux. Capiamo prima cosa sono e a cosa servono.

In breve, come suggeriscono i loro nomi, il head il comando stampa le righe dall'inizio di un file e la tail il comando stampa le righe dalla fine dei file. Entrambi i comandi scrivono il risultato nello standard output.

Ora impariamo come usarli attraverso degli esempi.

Comando principale in Linux

La sintassi di head il comando è piuttosto semplice:

head [OPTIONS] FILES

Per impostazione predefinita, senza alcuna opzione , il head il comando visualizzerà le prime 10 righe del file. Proprio così.

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

Naturalmente ci sono opzioni che possiamo definire durante l'esecuzione del comando per ottenere l'output personalizzato.

Emetti un numero specifico di righe usando il comando head

Se desideri recuperare un numero di righe diverso da quello predefinito 10, allora -n viene utilizzata insieme a un numero intero che indica il numero di righe da recuperare.

Ad esempio, il comando seguente visualizzerà le prime 3 righe da /etc/passwd file.

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

Emetti un numero specifico di byte usando il comando head

Inoltre, il head il comando può anche stampare il contenuto del file per byte. Basta passare il -c opzione al comando. Tieni presente che la nuova riga conta come un singolo carattere, quindi se head stampa una nuova riga, la conterà come un byte.

Ad esempio, il comando seguente visualizzerà i primi 8 byte da /etc/passwd file.

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

Emetti più file usando il comando head

Naturalmente, il head il comando può anche gestire più file. Ad esempio, il comando seguente mostrerà le prime 3 righe di /etc/passwd e /etc/group file.

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:

Aggiunta del -q l'opzione dell'esempio sopra rimuoverà le intestazioni che danno i nomi dei file.

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:

Come usare il comando head con i tubi

La head comando può essere reindirizzato ad altri comandi. Nell'esempio seguente l'output di ls il comando viene inviato tramite pipe a head per mostrare i cinque file o cartelle modificati più di recente in /etc directory.

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

A questo punto dovresti avere una buona comprensione di come utilizzare Linux head comando. Ora, diamo un'occhiata alla tail comando.

Comando Tail in Linux

Il comando Tail in Linux è lo stesso di head comando. Diversamente dalla head comando, tuttavia, il tail comando stampa l'ultimo numero di righe (10 righe per impostazione predefinita) di un determinato file.

La sintassi di base del comando tail è:

tail [OPTIONS] FILES

Ad esempio, il comando seguente stamperà le ultime 10 righe da /etc/locale.gen file.

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

Emetti un numero specifico di righe usando il comando tail

Analogamente al head comando, puoi anche stampare le ultime righe usando il -n opzione come mostrato di seguito.

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

Come usare il comando tail con i tubi

In precedenza, abbiamo reindirizzato l'output da head in ls . Possiamo anche reindirizzare l'output di altri comandi a tail .

Ad esempio, per identificare i cinque file o cartelle in /etc directory con i tempi di modifica più vecchi e reindirizza l'output a tail :

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

Guarda un file per le modifiche usando il comando tail

C'è un'altra potente funzionalità in tail comando. A volte il file di input che vogliamo controllare sta cambiando. Ad esempio, un'applicazione in esecuzione può aggiungere il proprio output a un file di registro. Se eseguiamo il tail comando con il -f opzione sul file di modifica, tutte le righe appena aggiunte verranno aggiunte allo standard out. Questa potrebbe essere di gran lunga l'opzione più utile e comunemente usata per tail comando.

Ad esempio, puoi vedere nuove righe che vengono aggiunte alla fine di un file di registro Nginx, man mano che vengono aggiunte, in questo modo:

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" 

Quando ogni nuova voce di registro viene aggiunta al file di registro, tail ne aggiornerà la visualizzazione nella finestra del terminale.

Come utilizzare i comandi head e tail insieme in Linux

Come tail e head comandi stampa diverse parti di file, possiamo combinare questi due per stampare alcuni filtri avanzati del contenuto del file. Ad esempio, se vuoi leggere il contenuto dal centro di qualsiasi file, devi utilizzare entrambi i comandi insieme.

Diciamo di voler andare dalla 5a alla 10a riga da /etc/passwd file. Inizialmente, head il comando recupererà le prime 10 righe e tail il comando recupererà le ultime 5 righe dall'output di 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

Conclusione

È tutto per ora. In questo articolo abbiamo appreso alcuni usi tipici di entrambi i comandi attraverso esempi. Come puoi vedere, sia il tail e il head i comandi sono molto utili per controllare esattamente quale contenuto del file verrà stampato sullo schermo. Certamente sono comandi flessibili che possono migliorare notevolmente la gestione dei tuoi file. Provali.

Hai bisogno di maggiori dettagli? Controlla la head e la tail pagine man dei comandi.


Linux
  1. Come utilizzare i comandi "cat" e "tac" con esempi in Linux

  2. Comandi Linux - Panoramica ed esempi

  3. Comando testa di Linux con esempi

  4. Comando Traceroute di Linux, spiegato con esempi

  5. 20 comandi Linux di base per principianti spiegati con esempi

I comandi alias e unalias spiegati con esempi

Il comando Tr in Linux spiegato con esempi

w Comando spiegato con esempi in Linux

Permessi e proprietà dei file Linux spiegati con esempi

Spiegazione del comando tee di Linux (con esempi)

Spiegazione del comando csplit di Linux (con esempi)