tailコマンドとは?Linuxでファイルの末尾を表示する基本をやさしく解説!
生徒
「Linuxでファイルの一番最後の内容だけを見る方法ってありますか?」
先生
「ありますよ。tailコマンドを使うことで、ファイルの末尾だけを簡単に表示できます。」
生徒
「どうして末尾だけを見る必要があるんですか?」
先生
「たとえば、エラーログや動作履歴など、ファイルの最新の情報だけをチェックしたいときに便利なんです。さっそく使い方を見てみましょう!」
1. tailコマンドとは?
tail(テイル)コマンドは、LinuxやUnix系OSで「ファイルの末尾部分(後ろから数行)」を素早く表示するための非常に便利なツールです。長いテキストファイルやログファイルの中身を、わざわざ最初から読み進めることなく、一番新しいデータだけをパッと確認したい時に活躍します。
名前の由来は、英語で「動物のしっぽ」を意味する「tail」からきています。ファイルの先頭を「頭(head)」、末尾を「しっぽ(tail)」に見立てているため、初心者の方でも「ファイルのしっぽ側を見るコマンドなんだな」と直感的にイメージしやすいのが特徴です。
ここがポイント!
プログラミング未経験者の方にとって、膨大なデータが並ぶファイル(ログファイルなど)を全部チェックするのは大変です。しかし、tailコマンドを使えば、今まさに起きた出来事が記録されている「最後の数行」だけをピンポイントで抜き出せるため、作業効率が劇的にアップします。
例えば、次のような15行ある名簿ファイル「member.txt」があったとします。
cat member.txt
1人目: 佐藤さん
2人目: 鈴木さん
3人目: 高橋さん
4人目: 田中さん
5人目: 伊藤さん
6人目: 渡辺さん
7人目: 山本さん
8人目: 中村さん
9人目: 小林さん
10人目: 加藤さん
11人目: 吉田さん
12人目: 山田さん
13人目: 佐々木さん
14人目: 山口さん
15人目: 松本さん
このファイルに対して、特に設定をせずそのままtailコマンドを実行すると、次のように後ろの10行分が表示されます。
tail member.txt
6人目: 渡辺さん
7人目: 山本さん
8人目: 中村さん
9人目: 小林さん
10人目: 加藤さん
11人目: 吉田さん
12人目: 山田さん
13人目: 佐々木さん
14人目: 山口さん
15人目: 松本さん
このように、ファイルの中身を全部表示させるのではなく、最新のデータ(しっぽの部分)だけを表示してくれるのが、tailコマンドの役割です。
2. tailコマンドの基本的な使い方
tailコマンドの使い方は非常にシンプルです。基本的には、コマンドの後に表示したいファイル名を指定するだけで動作します。これにより、ファイル全体を開くことなく、データの終端部分だけを素早くターミナル上に映し出すことができます。
例えば、プログラミングの学習中に作成した、1から15までの数字が書かれた「number.txt」というファイルがあるとしましょう。このファイルの中身をtailコマンドで確認してみます。
tail number.txt
6
7
8
9
10
11
12
13
14
15
実行結果を見ると、15行あるうちの「6」から「15」までの数字が表示されました。これは、tailコマンドが「特に指定がない場合、自動的に末尾の10行を表示する」という設定になっているためです。
未経験者の方へのアドバイス
「ファイルの中身をちょっとだけ確認したい」という時に、わざわざテキストエディタでファイルを開くのは手間がかかります。tailを使えば、コマンド一行で最新の状態をサッと確認できるため、まずはこの「後ろから10行出る」という基本の動きを覚えておきましょう。
もし、対象のファイルが10行に満たない小さなファイルだった場合は、そのファイルに書かれているすべての内容が表示されます。エラーが起きていないか、あるいは正しくデータが追記されたかを「とりあえず確認する」というシーンで最も多用される基本操作です。
3. 行数を指定して表示する(-nオプション)
-nオプションを使えば、「何行表示するか」を指定することができます。
たとえば、最後の5行だけ見たい場合は次のようにします。
tail -n 5 sample.txt
これは6行目です
これは7行目です
これは8行目です
これは9行目です
これは10行目です
ログファイルが長いときに、最新の数行だけを確認したいときに便利です。
4. リアルタイムで監視する(-fオプション)
-fオプションを使うと、ファイルの内容が追加されたときにリアルタイムで追いかけて表示してくれます。
これは「ログ監視」にとても便利です。
tail -f /var/log/syslog
Sep 16 09:00:01 localhost CRON[1234]: (root) CMD (some-task)
Sep 16 09:05:01 localhost CRON[1235]: (root) CMD (some-task)
この状態でファイルに新しい内容が追加されると、自動で画面に表示されていきます。
5. -fと-nの組み合わせ
-fと-nは組み合わせて使うこともできます。
たとえば、「最後の3行を表示しながら、その後の追加もリアルタイムで見たい」場合は次のようにします。
tail -n 3 -f sample.txt
これは8行目です
これは9行目です
これは10行目です
ここに新しい行が追加されると、画面にどんどん表示されていきます。
6. headコマンドとの違い
tailはファイルの「最後の部分」を表示するコマンドですが、headは「最初の部分」を表示するコマンドです。
head sample.txt
これは1行目です
これは2行目です
これは3行目です
これは4行目です
これは5行目です
これは6行目です
これは7行目です
これは8行目です
これは9行目です
これは10行目です
用途に応じてtailとheadを使い分けましょう。
7. tailの活用シーンいろいろ
最後に、tailが実際に役立つ場面をいくつか紹介します。
- アプリやシステムのエラーログをチェックしたいとき
- アクセスログなどの最新の利用状況を確認したいとき
- スクリプトやプログラムの実行状況を監視したいとき
とくに-fオプションはリアルタイム監視に最適です。