Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していく本連載。今回は「head」コマンドと「tail」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、長いメッセージやテキストファイルの最初の数行だけ表示する「head」コマンドと、最後の数行だけ表示する「tail」コマンドです。
headはテキストファイルの最初の10行を、tailは最後の10行を表示するコマンドです。表示する行数は、オプションで変更することができます。
headコマンドは「コマンド | head」のように、別のコマンドの実行結果の先頭部分を表示する際によく使われます。
headコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-c 数字 | --bytes 数字 | 先頭から指定したバイト数のみ表示する。「-c 5 b」のように単位を付加することも可能(b=512, KB=1000, K=1024, MB=1000*1000, M=1024*1024…) |
-n 数字 | --lines 数字 | 先頭から指定した行数のみ表示する |
-q | --quiet, --silent | ファイルごとのヘッダ表示を行わない(複数ファイル指定時に使う) |
-v | --verbose | 常にファイルごとのヘッダ出力を行う |
・「-c」と「-n」オプションで、マイナス付きの数字にした場合、末尾の指定分を除いた全てを表示
・headコマンドのバージョンによっては「-10」のように「-数字」で行数を指定できるものもある(「head -10」「head -n 10」と同じ意味)
tailコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-c 数字 | --bytes 数字 | 末尾の指定したバイト数のみ表示する。「-c 5 b」のように単位を付加することも可能(b=512, KB=1000, K=1024, MB=1000*1000, M=1024*1024…) |
-n 数字 | --lines 数字 | 末尾の指定した行数のみ表示する |
-q | --quiet, --silent | ファイルごとのヘッダ表示を行わない(複数ファイル指定時に使う) |
-v | --verbose | 常にファイルごとのヘッダ出力を行う |
-f | --follow | ファイルを監視して内容が追加されるたびに末尾に表示する(ログ監視などに使用する。[Ctrl]+[C]キーで終了) |
「リストを表示したら長くて流れて行ってしまったけれど、必要なのは先頭の数行だけだった」「CSVファイルを変換するスクリプトを作っているが、動作確認なら先頭の数行で十分だ」――そのような時に便利に使えるのがheadコマンドです。
「head ファイル名」で、指定したファイルの先頭10行を表示します。表示が5行でよいなら「head -n 5 ファイル名」のように、オプションで行数を指定します。
以下にheadコマンドの実行例と実行結果を示します(画面1)。
head ~/.bash_history
head -n 5 /etc/shells
なお、headコマンドでの「10行」とは、改行の個数を意味します。画面の幅を超える長い行は折り返して複数行で表示されますが、この場合も1行としてカウントされるので注意してください。
「コマンドの実行結果の表示が流れて行ってしまうが、確認したいのは最初の方だけ」という場合は、「コマンド | head」のように、他のコマンドの実行結果をheadコマンドに渡します。
以下は「dmesg」コマンドの実行結果をheadコマンドに渡す場合の例と、その実行結果になります(画面2)。dmesgコマンドでブート(起動)時に出力されるメッセージ内容を取得し、それをheadコマンドに渡して先頭の10行を表示しています。
dmesg | head
実行結果全体を確認したい場合は、1画面ずつ停止しながら表示できる「moreコマンド」を使うとよいでしょう。
headコマンドとは逆に、ファイルの末尾だけ表示するのがtailコマンドです。
ログファイルでは、基本的にファイルの末尾に新たな記録が追加されます。「more」コマンドやテキストエディタで表示しようとすると、末尾まで進むのが面倒だし、ファイルが大きい場合は読み込むのにも時間がかかります。その点、tailコマンドならば、末尾しか見ないので手軽かつ処理も高速です。
tailコマンドも、headコマンド同様、「-n」オプションで表示する行数を指定することができます。以下にtailコマンドの実行例と実行結果を示します(画面3)。
tail ~/.bash_history
tail -n 5 /var/log/Xorg.0.log
tailコマンドの「-f」オプションを使うと、ログファイルのように、刻々と内容が追加されていくようなファイルを監視することができるようになります。「-f」は、ファイルなどを監視する際、内容が新たに追加されるたびに末尾に表示するオプションです。ログの監視を終了するには、[Ctrl]+[C]キーを押します。
以下のtailコマンドは、「/var/log/messages」ファイルを監視する実行例になります(画面4)。「/var/log/messages」ファイルはシステムメッセージが記録されるファイルです。
tail -f /var/log/messages
なお、「/var/log/messages」ファイルはスーパーユーザーでないと表示できないため、「su」コマンドでrootユーザーになるか、または「sudo」コマンドを使って「sudo tail -f /var/log/messages」のように実行します。
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.