GNU/Linux >> Znalost Linux >  >> Linux

Linux Tail Command s příklady


Jak možná víte, příkaz cat se používá k zobrazení celého obsahu souboru prostřednictvím standardního vstupu. V některých případech však musíme vytisknout poslední část souboru. V Linuxu a Unixu se příkaz tail používá k zobrazení posledních 10 řádků (ve výchozím nastavení) souboru pomocí standardního výstupu.

Příkaz Tail se běžně používá ke sledování a analýze souborů, protože dokáže zobrazit nově připojené řádky. Tato funkce se většinou používá k prohlížení protokolů nebo jiných souborů, které se čas od času aktualizují.

V tomto tutoriálu se na několika praktických příkladech naučíme, jak používat příkaz tail v Linuxu. Také si podrobně projdeme možnosti ocasu.

Syntaxe příkazu Tail

Následující řádek ukazuje syntaxi příkazu tail:

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

Bez OPTION nebo FILE , příkaz tail přijímá vstup ze STDIN. Pokud tedy ve STDIN zadáte více než 10 řádků, zobrazí se pouze posledních 10 řádků, kde příkaz head dělá přesný opak příkazu tail.

Příkaz Tail může přijmout jeden nebo více jmen vstupních souborů (FILE ).

1) Použití příkazu tail k zobrazení posledních deseti řádků souboru

Bez jakékoli možnosti, příkaz tail se zobrazením posledních 10 řádků vstupního souboru.

V následujících příkladech zobrazí příkaz tail spodních 10 řádků souboru '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) Zobrazit konkrétní (omezený) počet řádků

Pokud chcete zobrazit pouze určitý počet řádků, musíte použít volbu -n.

K omezení počtu řádků můžeme použít tři různé možnosti.

Následující tři příkazy (-n100 , -n 100 , -100 ) zobrazit posledních 100 řádků ze souboru '/var/log/apache2/error.log':

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

nebo

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

nebo

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

3) Jak zobrazit více souborů

Příkaz Tail se může zobrazit z více souborů, když je zadán jako argument. Poté vypíše posledních 10 řádků každého souboru a záhlaví zobrazující název souboru.

$ 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

Pokud nechcete tisknout záhlaví ('==> soubor1.txt <==' a '==> soubor2.txt <=='), můžete použít tichý režim s -q , --quiet nebo --silent volba. Tuto možnost lze použít ke spojení souborů.

$ tail -q file1.txt file2.txt

Pokud chcete vždy tisknout záhlaví, i když je jako argument zadán pouze jeden název souboru, můžete použít -v nebo --verbose možnost

$ tail -v file1.txt

4) Zobrazit poslední konkrétní bajty souboru

Pro zobrazení posledních konkrétních bajtů souboru použijte -c nebo --bytes možnost.

Následující příkaz tail vytiskne posledních 30 bajtů souboru file2.txt:

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

Případně můžete použít -c +number pro výstup všeho začínajícího na byte number .

$ tail -c +300 file1.txt

5) Sledujte změny souboru

Použijte -f nebo --follow možnost sledování změn souborů. Tato možnost se velmi běžně používá pro monitorování a odstraňování problémů se soubory protokolu.

Následující příkaz zobrazí posledních 10 změn na terminálu pro soubor '/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

-f volba bude vždy čekat na připojená data a sama se neukončí. Musíte stisknout Ctrl+C pro ukončení.

Zkusme zobrazit poslední 3 řádky výstupu ocasu pomocí -n a f možnosti.

$ 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

Pomocí -fq můžete sledovat změny z více souborů.

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

Pomocí -s nebo --sleep-interval (výchozí je 1 sekunda), můžete upravit interval spánku mezi iteracemi.

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

Jak je uvedeno výše u -f možnost shell se sám neukončí, ale příkazu můžete říci, aby skončil poté, co proces zemře, pomocí --pid možnost.

Příkaz se ukončí, jakmile proces s PID 4309 skončí.

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

Pomocí --retry můžete pokračovat v pokusu o otevření souboru, i když je nebo se stane nepřístupným. Jakmile bude přístupný, zobrazí se výstup.

$ tail -f file2.txt --retry

6) Použití ocasu s trubkami

Příkaz tail lze přenést do/z jiných příkazů a dosáhnout tak optimalizovaných výsledků.

Následující příklad používá příkaz ls k zobrazení seznamu všech souborů a adresářů a seznamu všech adresářů nahoře.

$ 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

Pokud chcete sledovat požadavky na konkrétní typ souboru, použijte následující příkaz:

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

V následujícím příkladu je příkaz output tail generován pomocí potrubí a pomocí příkazu sort získáte obsah souboru 'continent.txt' seřazený v abecedním pořadí.

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

Závěr

Nyní jsme viděli, jak použít příkaz tail a jeho možnosti k zobrazení spodních řádků textového souboru. Doufám, že se vám čtení líbilo a zanechte prosím své návrhy v sekci komentářů níže.


Linux
  1. Třídit příkaz v Linuxu s příklady

  2. JQ Command v Linuxu s příklady

  3. Příklady příkazů Linux tail

  1. V příkladech příkazů v Linuxu

  2. soubor Příklady příkazů v Linuxu

  3. příklady příkazů tail v UNIX/Linux

  1. wc Linux Command s příklady

  2. 10 Quick Linux Tail Command s příklady

  3. Linux Tail Command