GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Tail Linux con esempi


Come forse saprai, il comando cat viene utilizzato per visualizzare l'intero contenuto di un file tramite l'input standard. Ma in alcuni casi, dobbiamo stampare l'ultima parte del file. In Linux e Unix, il comando tail viene utilizzato per visualizzare le ultime 10 righe (per impostazione predefinita) di un file utilizzando l'output standard.

Il comando Tail è comunemente usato per guardare e analizzare i file in quanto può visualizzare le righe appena aggiunte. Questa funzione viene utilizzata principalmente per visualizzare registri o altri file che si aggiornano di volta in volta.

In questo tutorial impariamo come usare il comando tail in Linux con alcuni esempi pratici. Esamineremo anche le opzioni di coda in dettaglio.

Sintassi del comando di coda

La riga seguente mostra la sintassi del comando tail:

tail [OPTION]... [FILE]...

Senza alcuna OPTION o FILE , il comando tail accetta l'input da STDIN. Quindi in STDIN, se inserisci più di 10 righe, verranno visualizzate solo le ultime 10 righe dove il comando head fa l'esatto opposto del comando tail.

Il comando Tail può accettare uno o più nomi di file di input (FILE ).

1) Usare il comando tail per visualizzare le ultime dieci righe di un file

Senza alcuna opzione, comando tail con visualizzazione delle ultime 10 righe del file di input.

Negli esempi seguenti il ​​comando tail mostra le ultime 10 righe del file 'file1.txt':

$ tail file1.txt
memtest86+_multiboot.bin
System.map-2.6.38-12-generic
System.map-2.6.38-13-generic
System.map-2.6.38-8-generic
vmcoreinfo-2.6.38-12-generic
vmcoreinfo-2.6.38-13-generic
vmcoreinfo-2.6.38-8-generic
vmlinuz-2.6.38-12-generic
vmlinuz-2.6.38-13-generic
vmlinuz-2.6.38-8-generic

2) Visualizza un numero specifico (limitato) di righe

Se vuoi visualizzare solo un numero specifico di righe, devi usare l'opzione -n.

Possiamo utilizzare tre diverse opzioni per limitare il numero di linee.

I seguenti tre comandi (-n100 , -n 100 , -100 ) visualizza le ultime 100 righe dal file '/var/log/apache2/error.log':

$ tail -n100 /var/log/apache2/error.log

o

$ tail -100 /var/log/apache2/error.log

o

$ tail -n 100 /var/log/apache2/error.log

3) Come mostrare più file

Il comando Tail può essere visualizzato da più file se fornito come argomento. Quindi emette le ultime 10 righe di ogni file e con un'intestazione che mostra il nome del file.

$ tail file1.txt file2.txt
==> file1.txt <== 
memtest86+_multiboot.bin 
System.map-2.6.38-12-generic 
System.map-2.6.38-13-generic
System.map-2.6.38-8-generic
vmcoreinfo-2.6.38-12-generic
vmcoreinfo-2.6.38-13-generic
vmcoreinfo-2.6.38-8-generic
vmlinuz-2.6.38-12-generic
vmlinuz-2.6.38-13-generic
vmlinuz-2.6.38-8-generic
==> file2.txt <==
smi.conf
snmp
sound
speech-dispatcher
ssh
ssl
sudoers
sudoers.d
sysctl.conf
tr command

Se non vuoi stampare le intestazioni ('==> file1.txt <==' e '==> file2.txt <=='), puoi usare la modalità silenziosa con -q , --quiet o --quiet opzione. Questa opzione può essere utilizzata per combinare file.

$ tail -q file1.txt file2.txt

Se vuoi sempre stampare le intestazioni, anche quando viene fornito un solo nome file come argomento, puoi usare -v o --verbose opzione

$ tail -v file1.txt

4) Visualizza gli ultimi byte specifici di un file

Per visualizzare gli ultimi byte specifici del file, usa -c o --bytes opzione.

Il seguente comando tail stampa gli ultimi 30 byte del file file2.txt:

$ tail -c 30 file2.txt
sudoers.d
sysctl.conf
sysctl.d

In alternativa, puoi usare -c +number per produrre tutto a partire dal byte number .

$ tail -c +300 file1.txt

5) Guarda le modifiche ai file

Usa -f o --follow opzione per il monitoraggio delle modifiche ai file. Questa opzione è molto comunemente usata per il monitoraggio e la risoluzione dei problemi dei file di registro.

Il comando seguente visualizzerà le ultime 10 modifiche sul terminale per il file '/var/log/Xorg.1.log'.

$ tail -f /var/log/Xorg.1.log
[ 86.774] (**) Option "xkb_layout" "us"
[ 86.774] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
[ 86.774] (II) Toshiba input device: (II) is tagged by udev as: Keyboard
[ 86.774] (II) Toshiba input device: (II) device is a keyboard
[ 88.453] (II) Display (Seiko/Epson (DFP-0)) does not support NVIDIA 3D
[ 88.453] (II) Vision stereo.
[ 102.094] (II) Display (Seiko/Epson (DFP-0)) does not support NVIDIA 3D
[ 102.094] (II) Vision stereo.
[ 540.435] (II) Axis 0x1 value 1158 is outside expected range
See https://wayland.freedesktop.org for details

Il -f l'opzione attenderà sempre i dati aggiunti e non si chiuderà da sola. Devi premere Ctrl+C per uscire.

Proviamo a visualizzare le ultime 3 righe di un output di coda usando il -n e f opzioni.

$ tail -n3 -f /var/log/Xorg.1.log
[ 102.094] (II) Vision stereo.
[ 540.435] (II) Axis 0x1 value 1158 is outside expected range
See https://wayland.freedesktop.org for details

Usando il -fq opzione puoi monitorare le modifiche da più file.

$ tail -fq /var/log/Xorg.1.log file2.txt

Con il -s o --sleep-interval (l'impostazione predefinita è 1 secondo), puoi regolare l'intervallo di sospensione tra le iterazioni.

$ tail -f -s 4 /var/log/Xorg.1.log

Come accennato in precedenza con il -f opzione la shell non esce da sola, ma puoi dire al comando di terminare dopo che un processo muore con il --pid opzione.

Il comando uscirà non appena il processo con PID 4309 muore.

$ tail -f file2.txt --pid=4309

Con il --retry opzione, puoi continuare a provare ad aprire un file anche quando è, o diventa, inaccessibile. Una volta che diventa accessibile, verrà visualizzato l'output.

$ tail -f file2.txt --retry

6) Usare la coda con i tubi

Il comando tail può essere inviato a/da altri comandi per produrre risultati ottimizzati.

L'esempio seguente usa il comando ls per elencare tutti i file e le directory ed elencare tutte le directory in alto.

$ ls -l /etc | tail | sort
drwxr-xr-x.  2 root root   4096 Mar  3 08:15 yum.repos.d
drwxr-xr-x.  2 root root   4096 Mar  3 08:17 yum
drwxr-xr-x.  2 root root   4096 Sep 25 14:54 xinetd.d
drwxr-xr-x.  4 root root   4096 Sep 25 14:54 xdg
drwxr-xr-x.  6 root root   4096 Sep 25 14:54 X11
lrwxrwxrwx.  1 root root     12 Dec 19 15:43 yum.conf -> dnf/dnf.conf
-rw-r--r--.  1 root root   1204 Nov 11 19:08 virc
-rw-r--r--.  1 root root   1982 Nov 11 19:08 vimrc
-rw-r--r--.  1 root root     28 Sep 25 14:51 vconsole.conf
-rw-r--r--.  1 root root    642 Dec  9  2016 xattr.conf

Se vuoi controllare le richieste per un particolare tipo di file usa il seguente comando:

$ tail -f /var/log/apache/myvirtualhost.log | grep .jpg

Nell'esempio seguente il comando tail di output viene inviato tramite pipe e utilizzando il comando sort si ottiene il contenuto di 'continent.txt' ordinato in ordine alfabetico.

$ tail -n 5 continent.txt | sort
Africa
Antarctica
Asia
Australia
Europe

Conclusione

Ora abbiamo visto come utilizzare il comando tail e le sue opzioni per visualizzare le righe di fondo di un file di testo. Spero che ti sia piaciuto leggere e per favore lascia i tuoi suggerimenti nella sezione commenti qui sotto.


Linux
  1. Comando JQ in Linux con esempi

  2. Esempi di comandi tail di Linux

  3. ln Esempi di comandi in Linux

  4. file Esempi di comandi in Linux

  5. esempi di comandi tail in UNIX/Linux

Utilizzo di Cat Command in Linux con esempi

Comando Linux WC con esempi

Utilizzo del comando Linux mv con esempi

Comando di montaggio Linux con esempi

Comando gawk Linux con esempi

Linux make Command con esempi