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オプション)
tailコマンドは標準(デフォルト)で末尾の10行を表示しますが、実務では「最後の3行だけ見たい」や「直近の20行分をさかのぼって確認したい」という場面がよくあります。そんな時に欠かせないのが、行数を自由に指定できる-nオプションです。
使い方はとても簡単で、-nの後に表示したい行数を数字で入れるだけです。例えば、10行の内容が書かれた「test.txt」というファイルから、最後の3行だけをピンポイントで取り出してみましょう。
tail -n 3 test.txt
これは8行目のデータです
これは9行目のデータです
これは10行目のデータです
このように、必要な分だけを画面に表示させることで、情報の見落としを防ぎ、ターミナルの画面が余計な情報で埋まってしまうのを防ぐことができます。
初心者向けの豆知識
実は-nを省略して、tail -5 sample.txtのように「ハイフン + 数字」だけで実行しても同じ結果が得られます。現場のエンジニアがよく使う「時短テクニック」の一つですので、基本の書き方に慣れたらぜひ試してみてください。
大量のデータが追記されるログファイルから、直近のエラーメッセージだけをサッと確認したい時などに非常に重宝する設定です。
4. リアルタイムで監視する(-fオプション)
エンジニアが実務で最も tail コマンドを活用するのが、この -f オプションです。-f は「follow(フォロー)」の頭文字で、その名の通りファイルが更新されるのを「追いかける」機能を持っています。
通常、コマンドを実行するとその時点の内容を表示して終了しますが、-f をつけるとプログラムが終了せず、ファイルに新しい行が追加されるたびに、リアルタイムで画面にその内容を表示し続けてくれます。これを「ログ監視」と呼びます。
未経験者でもイメージしやすい活用例
たとえば、Webサイトのお問い合わせフォームが正しく動いているか確認したいとき、このコマンドでログを監視しておけば、誰かが送信ボタンを押した瞬間に「送信完了」などのメッセージが画面に流れてくるので、動作確認が非常にスムーズになります。
それでは、具体例を見てみましょう。システムの動作を記録している「app.log」というファイルを監視する状況を想定します。
tail -f app.log
[2026-02-03 20:00:01] INFO: システムが起動しました
[2026-02-03 20:05:10] INFO: ユーザーAがログインしました
この状態で、もし新しいユーザーがログインしてログが追記されると、画面が次のように自動で更新されます。
tail -f app.log
[2026-02-03 20:00:01] INFO: システムが起動しました
[2026-02-03 20:05:10] INFO: ユーザーAがログインしました
[2026-02-03 20:10:45] INFO: ユーザーBがログインしました(←自動で追記される!)
監視を終了して元の画面に戻りたいときは、キーボードの Ctrl キーを押しながら C を押してください。これでコマンドを止めることができます。サーバーの不具合調査や、開発中のプログラムの動きを確認する際に欠かせないテクニックですので、ぜひ覚えておきましょう。
5. -fオプションと-nオプションを組み合わせて使う方法
ここまで紹介した「表示行数を指定する -n」と「リアルタイムで監視する -f」は、実は組み合わせて使うことができます。実務ではこの併用テクニックが最もよく使われます。なぜなら、「過去の直近ログを数行だけ確認しつつ、そのまま新しいログが流れてくるのを待ち構える」という使い方が非常に効率的だからです。
なぜ組み合わせるの?
-f だけだと、デフォルトで直近10行が表示されてから監視が始まります。しかし、10行も必要ない場合や、逆にもっと多くの行数(例えば50行分)を遡ってから監視を始めたい場合に、この組み合わせが力を発揮します。
例えば、5行のデータが入っている「test-log.txt」があり、最後の2行だけを表示した状態からリアルタイム監視を始めたい場合は、次のように入力します。
tail -n 2 -f test-log.txt
4行目のログデータです
5行目のログデータです
このコマンドを実行すると、まず指定した「2行」が表示され、ターミナルはそのまま待機状態になります。ここで、システムに新しい動き(6行目の追加)があったとすると、画面には次のように自動で追記されます。
tail -n 2 -f test-log.txt
4行目のログデータです
5行目のログデータです
6行目のログデータです(←ここが自動で表示される!)
このように、特定の行数から監視をスタートさせることで、画面がログで埋め尽くされるのを防ぎつつ、必要な情報だけをスマートに追い続けることが可能になります。なお、オプションの順番は tail -f -n 2 としても同様に動作しますので、自分の覚えやすい順序で使ってみてください。
6. headコマンドとの違い
tailコマンドを学ぶ際に、セットで覚えておくと非常に便利なのがhead(ヘッド)コマンドです。名前の通り、tailが「しっぽ(末尾)」を表示するのに対し、headは「頭(先頭)」、つまりファイルの書き出し部分を表示するためのコマンドです。
例えば、設定ファイルのヘッダー部分を確認したいときや、データの形式(1行目に何が定義されているか)をサッと知りたいときに役立ちます。未経験者の方は「上がhead、下がtail」とセットで記憶すると、Linux操作の幅がグッと広がりますよ。
どっちを使うべき?
基本的には、最新の履歴や追記されたデータを見たいなら tail、ファイル全体の構造や最初の説明文を確認したいなら head を使うのがセオリーです。
それでは、15行のデータがある「sample.txt」を使って、headコマンドの動きを見てみましょう。オプションを指定しない場合、headもtailと同様に自動で10行分が表示されます。
head sample.txt
1行目のデータです
2行目のデータです
3行目のデータです
4行目のデータです
5行目のデータです
6行目のデータです
7行目のデータです
8行目のデータです
9行目のデータです
10行目のデータです
もちろん、headでも -n オプションを使って表示行数を変更できます。例えば、最初の3行だけを見たい場合は次のように入力します。
head -n 3 sample.txt
1行目のデータです
2行目のデータです
3行目のデータです
このように、ファイルの「どこを見たいか」によって、これら2つのコマンドを賢く使い分けましょう。どちらもファイル全体をエディタで開く必要がないため、サーバーへの負荷を抑えつつ素早く中身を確認できる、エンジニア必須のテクニックです。
7. tailの活用シーンいろいろ
tailコマンドは、システムの運用やプログラミングの学習において、非常に多くの場面で「守護神」のような役割を果たします。単にファイルの末尾を見るだけでなく、どのような具体的なトラブル解決に役立つのか、初心者が直面しやすい3つのシチュエーションを見てみましょう。
アプリやシステムのエラーログをチェック
Webサイトが表示されない、あるいはプログラムが動かないとき、その原因はログファイルの末尾に記録されます。膨大な過去の記録を無視して、直近のエラーメッセージだけを確認することで、不具合の原因を瞬時に特定できます。
tail -n 5 error.log
[ERROR] 2026-02-03 20:15:01: データベースへの接続に失敗しました。
[ERROR] 2026-02-03 20:15:05: パスワードが間違っています。
アクセスログなどの最新の利用状況を確認
「今、まさに誰かがサイトを見てくれているか?」を確認したい時にも便利です。アクセスログ(access.log)を監視することで、新しい訪問者が来た瞬間にその記録を画面で捉えることができます。
処理が進行しているかどうかの監視
時間がかかるプログラムを実行している際、-fオプションを使えば「今、何パーセントまで終わったか」や「正常に進行しているか」をリアルタイムで追いかけることができます。画面が止まっていなければ、処理が順調に進んでいる証拠になります。
このように、tailコマンドは特にトラブルシューティングやリアルタイムの動作確認において、その真価を発揮します。まずはこれらの例を参考に、身近なファイルを覗いてみることから始めてみましょう。
まとめ
tailコマンドの重要ポイントを振り返る
tailコマンドは、Linuxにおいてファイルの末尾を効率よく確認するための基本的かつ非常に実用性の高いコマンドです。特にログファイルの確認や、リアルタイムでの動作監視といった場面で頻繁に利用されます。ファイル全体を開かずに、必要な部分だけを素早く確認できる点が大きなメリットです。
デフォルトでは末尾から10行を表示する仕様になっており、何もオプションを指定しなくてもすぐに使えるのが特徴です。また、-nオプションを利用することで表示する行数を柔軟に変更できるため、用途に応じた細かい調整が可能です。さらに、-fオプションを活用することで、ログファイルの更新をリアルタイムで監視することができ、システム管理やトラブルシューティングの現場では欠かせない存在となっています。
実務で役立つ使い方の整理
実際の現場では、tailコマンドは単体で使うだけでなく、他のコマンドと組み合わせて使われることも多くあります。例えばgrepコマンドと組み合わせることで、特定のキーワードを含むログだけを抽出することが可能になります。
tail -f application.log | grep error
[ERROR] データベース接続失敗
[ERROR] タイムアウトが発生しました
このようにすることで、大量のログの中から必要な情報だけを効率よく監視することができます。日々の運用や開発において、こうした使い方を覚えておくことで作業効率が大きく向上します。
初心者が押さえておきたいポイント
初めてtailコマンドを使う場合は、まずは基本の使い方である「ファイル名を指定するだけ」で末尾10行が表示されるという挙動をしっかり理解することが大切です。そのうえで、行数指定やリアルタイム監視といったオプションを段階的に覚えていくことで、無理なくスキルアップできます。
また、headコマンドとの違いもあわせて理解しておくと、ファイルの先頭と末尾を状況に応じて使い分けることができるようになります。これにより、Linuxコマンド操作の幅が一気に広がります。
サンプルプログラムで理解を深める
ここでは、簡単なログファイルを作成し、tailコマンドで確認する流れを紹介します。
echo "開始処理" > sample.log
echo "処理中..." >> sample.log
echo "終了処理" >> sample.log
tail sample.log
処理中...
終了処理
このように、ログファイルに追記された内容の最後だけを確認できるため、動作確認やデバッグの効率が向上します。特にプログラムの実行結果を確認する際には非常に便利です。
生徒
「tailコマンドはファイルの最後だけを見るためのコマンドなんですね。全部読まなくていいのは便利です。」
先生
「その通りです。特にログファイルのようにどんどん追記されるファイルでは、最後の情報だけ確認することが重要になります。」
生徒
「-nオプションで行数を変えられるのも便利ですね。必要な分だけ見れるのは助かります。」
先生
「さらに-fオプションを使えばリアルタイムで監視もできます。これはシステム運用ではよく使われるテクニックです。」
生徒
「grepと組み合わせると、エラーだけ抽出できるのも実用的ですね。実務でも使えそうです。」
先生
「はい、その通りです。tailコマンドは単体でも便利ですが、他のコマンドと組み合わせることでさらに強力になります。Linux操作の基本としてしっかり身につけておきましょう。」