前のチュートリアルでは、Linuxのheadコマンドとその使用例を確認しました。 tailコマンドは、headコマンドを補完するものです。ファイルの最後のN行を読み取って出力します。コマンドオプションを指定しない場合、テキストファイルの最後の10行が出力されます。このガイドでは、tailコマンドに焦点を当て、コマンドに付属するさまざまなオプションについて説明します。
tailコマンドは次の構文を取ります:
$tail[options]ファイル
1)ファイルの最後の10行を表示します
前に指摘したように、引数なしのtailコマンドは、ファイルの最後の10行を表示します。 asian_countries.txtというサンプルファイルがあります–これにはアジア大陸の国のリストが含まれています。
ファイル内の最後の10か国を一覧表示するには、次のコマンドを実行します。
$ tail asian_countries.txt
2)ファイルの最後のN行を表示する
デフォルトの10行ではなく、特定の行数を表示するとします。これを実現するには、-nフラグに続けて行数を使用します。
たとえば、最後の5行を表示します。これを行うには、次のコマンドを呼び出します。
$ tail -n 5 asian_countries.txt
3)ファイル名ヘッダーを印刷
ファイル名に対応するヘッダータグを追加するには、次のように-vオプションを使用します。
$ tail -v asian_countries
以下の例では、タグasian_countriesが最初に印刷され、次にファイルの最後の10行が印刷されます。
4)複数のファイルの最後のn行を表示する
さらに、以下の構文を使用して、複数のファイルの最後のN行を一覧表示できます。
$ tail -n 5 file_1 file_2
ヨーロッパの国のリストを含むeurope_countries.txtという別のファイルがあります。 asian_countries.txtとeurope_countries.txtの両方のテキストファイルの最後の5行を印刷するには、次のコマンドを実行します。
$ tail -n 5 asian_countries.txt europe_countries.txt
今回は、前の手順で説明したファイル名ヘッダーを使用して、2つのファイルの内容が区切られていることに注目してください。複数のファイルのコンテンツを表示する場合、見栄えを良くするためにタグ名が自動的に追加されます。
抑制したい場合は、tailコマンドの出力のファイル名ヘッダーを使用してから「-q」オプションを使用します。例を以下に示します。
$ tail -q -n 5 asian_countries.txt europe_countries.txt
5)tailコマンドの出力をテキストファイルに保存します
出力を表示する時間があまりなく、代わりに後で表示したい場合は、大なり記号(>)リダイレクト演算子を使用してテキストファイルに保存できます。
たとえば、asian_countries.txtファイルに含まれる最後の5行の出力をテキストファイルoutput.txtに保存するには、コマンドを呼び出します。
$ tail -n 5 asian_countries.txt > output.txt
注:大なり記号(>)は、同じファイルを後で使用するときにファイルを上書きします。元のコンテンツが上書きされ、新しいコンテンツが書き込まれます。
出力を追加または追加するには、2倍の大なり記号(>>)を使用します。これにより、出力が上書きされるのではなく、ファイルに追加されます。
たとえば、europe_countries.txtファイルの最後の5行をoutput.txtファイルに追加するには、次のコマンドを実行します。
$ tail -n 5 europe_countries.txt >> output.txt
catコマンドを使用すると、出力ファイルに両方のファイルのデータが含まれていることがわかります。
6)-fオプションを使用して、リアルタイムのログファイルを監視します
-fオプションと一緒に使用すると、tailコマンドは主にシステム管理者がログファイルをリアルタイムで監視するために使用します。たとえば、Syslogログファイルをリアルタイムで監視するには、次のコマンドを実行します。ターミナルの下部に数秒ごとにログ出力が表示されます。
$ sudo tail -f /var/log/syslog
ログファイルがローテーションされても監視し続ける場合は、tailコマンドで「-F」オプションを使用します。ファイルが回転すると、「-F」オプションを使用している場合、tailコマンドは新しいファイルから行の印刷を自動的に開始します。
$ sudo tailf -F /var/log/syslog
7)パイプでのtailコマンドの使用
Linuxでは、パイプはテキストを処理するクールな方法を提供します。 tailコマンドを使用すると、出力をパイプ処理して、表示内容をさらに変更できます。たとえば、次のように出力をアルファベット順に並べ替えることができます。
$ tail asian_countries.txt | sort
たとえば、複数のパイプステートメントを使用することもできます。
$ cat asian_countries.txt | tail -n 5 | sort
それで、上記のコマンドは何をしますか?まず、catコマンドは、asian_countries.txtテキストファイルの内容を出力します。情報は、最後の5行を出力するtailコマンドにパイプされます。最後に、情報は並べ替えコマンドによってアルファベット順に並べ替えられます。
8)ファイルからNバイトのデータを出力します
tailコマンドで「-c」オプションを使用すると、ファイルからnバイトのデータを出力できます。
$ tail -c 400 /var/log/kern.log
上記のtailコマンドは、ファイルの下部から400バイトのデータを表示します。
「K」および「M」パラメータを使用して、KBおよびMBでデータを印刷することもできます。例を以下に示します
$ tail -c 4k /var/log/kern.log $ tail -c 4M /var/log/kern.log
9)テールコマンドオプションのヘルプを取得する
より多くのテールコマンドオプションのヘルプを取得するには、次のコマンドを実行します:
$ tail --help
または、次のようにマニュアルページにアクセスすることもできます:
$ man tail
10)テールコマンドのバージョンを確認してください
最後に、tailコマンドのバージョンを確認するには、次のコマンドを実行します。
$ tail --version
これがこのガイドのすべてです。お役に立てば幸いです。フィードバックやコメントを共有してください。