GNU/Linux >> Linux の 問題 >  >> Linux

例を含むLinuxTailコマンド


ご存知かもしれませんが、catコマンドは、標準入力を介してファイルのコンテンツ全体を表示するために使用されます。ただし、場合によっては、ファイルの最後の部分を印刷する必要があります。 LinuxおよびUnixでは、tailコマンドを使用して、標準出力を使用してファイルの最後の10行(デフォルト)を表示します。

テールコマンドは、新しく追加された行を表示できるため、ファイルの監視と分析によく使用されます。この機能は主に、随時更新されるログやその他のファイルを表示するために使用されます。

このチュートリアルでは、いくつかの実用的な例を使用して、Linuxでtailコマンドを使用する方法を学習します。テールオプションについても詳しく説明します。

テールコマンドの構文

次の行は、tailコマンドの構文を示しています。

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

OPTIONなし またはFILE 、tailコマンドはSTDINからの入力を受け入れます。したがって、STDINでは、10行を超えて入力すると、最後の10行のみが表示され、headコマンドはtailコマンドとは正反対になります。

Tailコマンドは、1つ以上の入力ファイル名(FILE)を受け入れることができます 。

1)tailコマンドを使用してファイルの最後の10行を表示する

オプションなしで、入力ファイルの最後の10行を表示するtailコマンド。

次の例では、tailコマンドは「file1.txt」ファイルの下位10行を表示します。

$ 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)特定の(制限された)行数を表示する

特定の行数のみを表示する場合は、-nオプションを使用する必要があります。

3つの異なるオプションを使用して、行数を制限できます。

次の3つのコマンド(-n100-n 100-100 )'/var/log/apache2/error.log'ファイルの最後の100行を表示します:

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

または

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

または

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

3)複数のファイルを表示する方法

引数として指定すると、Tailコマンドは複数のファイルから表示できます。次に、各ファイルの最後の10行と、ファイルの名前を表示するヘッダーを出力します。

$ 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

ヘッダー('==>file1.txt<=='および'==>file2.txt <==')を出力したくない場合は、-qでクワイエットモードを使用できます。 、--quiet または--silent オプション。このオプションは、ファイルを結合するために使用できます。

$ tail -q file1.txt file2.txt

引数としてファイル名が1つしかない場合でも、常にヘッダーを出力する場合は、-vを使用できます。 または--verbose オプション

$ tail -v file1.txt

4)ファイルの最後の特定のバイトを表示する

ファイルの最後の特定のバイトを表示するには、-cを使用します または--bytes オプション。

次のtailコマンドは、file2.txtファイルの最後の30バイトを出力します。

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

または、 -c +numberを使用することもできます バイトnumberから始まるすべてを出力します 。

$ tail -c +300 file1.txt

5)ファイルの変更を監視する

-fを使用します または--follow ファイルの変更を監視するためのオプション。このオプションは、ログファイルの監視とトラブルシューティングに非常によく使用されます。

次のコマンドは、「/ var / log/Xorg.1.log」ファイルの端末での最後の10件の変更を表示します。

$ 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 オプションは常に追加されたデータを待ち、それ自体で終了することはありません。 Ctrl+Cを押す必要があります 終了します。

-nを使用して、テール出力の最後の3行を表示してみましょう。 およびf オプション。

$ 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

-fqを使用する オプションで、複数のファイルからの変更を監視できます。

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

-sを使用 または --sleep-interval (デフォルトは1秒)、反復間のスリープ間隔を調整できます。

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

上記のように-f オプションでは、シェルはそれ自体では終了しませんが、プロセスが--pidで終了した後に終了するようにコマンドに指示できます。 オプション。

PID 4309のプロセスが終了するとすぐに、コマンドは終了します。

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

--retryを使用 オプションを使用すると、ファイルにアクセスできなくなった場合でも、ファイルにアクセスできなくなった場合でも、ファイルを開こうとし続けることができます。アクセス可能になると、出力が表示されます。

$ tail -f file2.txt --retry

6)パイプでテールを使用する

tailコマンドは、他のコマンドとの間でパイプ処理して、最適化された結果を生成できます。

次の例では、lsコマンドを使用して、すべてのファイルとディレクトリを一覧表示し、すべてのディレクトリを一番上に一覧表示します。

$ 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

特定のファイルタイプのリクエストを監視する場合は、次のコマンドを使用します。

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

次の例では、output tailコマンドがパイプ処理され、sortコマンドを使用して、「continent.txt」のコンテンツをアルファベット順に並べ替えます。

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

結論

これで、tailコマンドとそのオプションを使用してテキストファイルの一番下の行を表示する方法を見てきました。読んで楽しんでいただければ幸いです。以下のコメントセクションに提案を残してください。


Linux
  1. Linuxテールコマンドの例

  2. Linux での ln コマンドの例

  3. Linux での file コマンドの例

  1. Linuxでの並べ替えコマンドと例

  2. LinuxでのJQコマンドと例

  3. UNIX/Linux での tail コマンドの例

  1. 例を含むwcLinuxコマンド

  2. 例を含む10のクイックLinuxテールコマンド

  3. Linuxテールコマンド