tailコマンドの使い方を完全ガイド!初心者でもわかるLinuxのログ確認と末尾表示の基本
生徒
「Linuxで長いテキストファイルの中身を確認したいのですが、画面が文字でいっぱいになってしまって、最後の方が読みづらいんです。どうすればいいですか?」
先生
「そんなときはtailコマンドを使うと便利ですよ。ファイルの『お尻(末尾)』の部分だけをピンポイントで表示してくれるんです。」
生徒
「お尻の部分だけ!それなら、日記や記録の最新部分だけを見たいときにも使えそうですね。」
先生
「その通りです。システムの状態を記録した『ログ』というデータを確認するときによく使われます。使い方はとても簡単なので、一緒に見ていきましょう。」
1. tailコマンドとは?
tail(テイル)コマンドは、Linuxでテキストファイルの終わりの部分を表示するためのコマンドです。「tail」という英語には「しっぽ」や「最後尾」という意味がある通り、ファイルの中身を後ろから数行だけ抜き出して画面に映し出します。
Windowsでメモ帳を開くと、必ず一番上の行から表示されますよね?しかし、何万行もある巨大なファイルの場合、一番下までスクロールするのは大変です。tailを使えば、一瞬で最新の追記内容を確認できるため、効率的に作業を進めることができます。特にエンジニアの世界では、エラーが起きたときの原因調査に欠かせない道具となっています。
2. 基本の書き方
tailコマンドの最もシンプルな使い方は、表示したいファイルの名前を指定するだけです。まずは、カレントディレクトリ(今作業している場所)にあるファイルの中身を見てみましょう。
tail sample.txt
行8
行9
行10
行11
行12
行13
行14
行15
行16
行17
通常、何も指定しない場合はファイルの末尾から10行分が表示されます。コマンドを入力してEnterキーを押すだけで、テキストの最後の方がパッと表示されるのが分かりますね。ファイルがどこにあるかを指定するパス(住所のようなもの)を使えば、離れた場所にあるファイルも確認できます。
3. 表示する行数を指定する方法(-nオプション)
「10行だけじゃ足りない!もっとたくさん見たい」あるいは「最後の一行だけ見たい」というときもありますよね。そんなときは、-nというオプション(命令に付け加える設定)を使います。
以下の例では、末尾から5行だけを表示するように指定しています。-nの後にスペースを空けて、表示したい数字を書くだけでOKです。
tail -n 5 sample.txt
行13
行14
行15
行16
行17
これで、自由自在に表示する範囲をコントロールできるようになります。初心者のうちは「nはnumber(数字)のn」と覚えておくと忘れにくいですよ。ちなみに、-n 1とすれば、ファイルの一番最後の行だけを抜き出すことも可能です。
4. リアルタイムで更新を監視する(-fオプション)
tailコマンドの真骨頂とも言えるのが、この-fオプションです。「f」は「follow(フォロー・追跡する)」の頭文字です。これを使うと、ファイルに新しい内容が書き込まれた瞬間に、自動的に画面を更新して表示し続けてくれます。
例えば、動いているプログラムが刻一刻と書き出す「ログファイル」を監視する際に非常に便利です。まるで、テレビの生中継を見ているような感覚でデータの変化を追うことができます。
tail -f access.log
[2026-01-09 10:00:01] ユーザーAがログインしました
[2026-01-09 10:00:05] ページを表示しました
[2026-01-09 10:00:10] ファイルをアップロードしました
この画面を終了したいときは、キーボードの「Ctrl」キーを押しながら「c」を押してください。これで監視を止めて、元の入力画面に戻ることができます。この操作はLinuxでよく使う「キャンセル」の合図なので、覚えておくと損はありません。
5. 複数のファイルを一度に確認する
仕事をしていると、「Aという記録とBという記録、両方の最後を同時に確認したい」という場面が出てきます。tailコマンドは、複数のファイル名を並べて書くことで、それらを順番に表示してくれます。
tail test1.txt test2.txt
==> test1.txt <==
テスト1の末尾1
テスト1の末尾2
==> test2.txt <==
テスト2の末尾1
テスト2の末尾2
このように、どこからが別のファイルの内容なのかが一目でわかるように、「==> ファイル名 <==」という見出しを付けて表示してくれます。たくさんの設定ファイルを見比べるときに非常に役立つ機能です。もし見出しが邪魔な場合は、別の特殊なオプションで消すこともできますが、基本はこの形で見ることが多いです。
6. headコマンドとの違いと使い分け
tail(お尻)があるなら、当然「頭(先頭)」を表示するコマンドもあります。それがheadコマンドです。headは、ファイルの最初から10行を表示します。使い方はtailと全く同じです。
「設定ファイルの最初の方に書いてある基本設定を確認したいときはhead」、「ログファイルの最新の状態を確認したいときはtail」というように、目的に合わせて使い分けましょう。人間が本を読むときは最初から読みますが、コンピューターが吐き出す記録を読むときは、最新の情報が載っている最後の方から読むことが多いので、実はtailの方が使われる頻度は高かったりします。
7. パイプを使った応用テクニック
Linuxには「パイプ」という、コマンドの結果を別のコマンドに渡す魔法のような記号 | があります。これを使うと、もっと便利なことができます。例えば、「ファイルの中から特定の言葉が含まれる行だけを探して、その最後の5つを表示する」といったことが可能です。
以下の例では、grep(検索コマンド)と組み合わせて、エラー(Error)という文字が含まれる行だけを抜き出し、その最新3件を表示しています。
grep "Error" system.log | tail -n 3
[Error] メモリが不足しています
[Error] 接続に失敗しました
[Error] 予期しないエラーが発生しました
このようにコマンドを組み合わせることで、膨大なデータの中から必要な情報だけを「お掃除」して見つけ出すことができるようになります。プログラミング未経験の方でも、この組み合わせのパターンをいくつか覚えるだけで、エンジニアのような操作ができるようになります。
8. 管理者権限で実行する場合(sudo)
Linuxでは、セキュリティのために「一般のユーザーは見ることができない大切なファイル」が存在します。システム全体の重要なログなどがそれにあたります。そういったファイルを見ようとして「許可がありません(Permission denied)」と怒られてしまったときは、管理者の力(root権限)を借りる必要があります。
コマンドの先頭に sudo(スゥドゥ)と付けることで、「管理者の代わりとして実行します」という意味になります。実行したあとにパスワードを求められることがありますが、それは鍵を開けるための手続きだと思ってください。大切なファイルを扱うので、慎重に操作しましょう。
sudo tail /var/log/syslog
Jan 9 13:00:01 localhost systemd[1]: Starting Periodic Command Scheduler...
Jan 9 13:00:01 localhost CRON[1234]: (root) CMD (command)
Jan 9 13:00:01 localhost systemd[1]: Started Periodic Command Scheduler.
9. 初心者が覚えておきたい用語集
ここまで出てきた難しい言葉を整理しておきましょう。これらを理解しておくと、他のLinuxコマンドを学習するときもスムーズになります。
| 用語 | 意味の解説 |
|---|---|
| コマンド | コンピューターに対する「命令」のことです。 |
| ターミナル | 文字を入力して命令を伝えるための「黒い画面」のことです。 |
| ディレクトリ | Windowsでいうところの「フォルダー」と同じ意味です。 |
| オプション | -nや-fのように、命令に細かい指示を加える付け足しのことです。 |
| ログ | コンピューターやプログラムが行った活動の記録(履歴)のことです。 |
10. 練習してみよう!よく使う操作パターン
最後に、現場でよく使われる鉄板のパターンをおさらいしておきましょう。これさえマスターすれば、初心者は卒業です!
- とにかく最後の方が見たい:
tail ファイル名 - 行数を決めて見たい:
tail -n 行数 ファイル名 - リアルタイムでずっと眺めていたい:
tail -f ファイル名 - エラーだけを絞り込んで最新を見たい:
grep "Error" ファイル名 | tail
パソコンの操作に慣れていないうちは、一文字でも間違えると動かない「コマンド操作」は怖く感じるかもしれません。しかし、スペルミスをしてもパソコンが壊れることはありませんし、エラーメッセージが「どこが違うか」を教えてくれます。何度も試していくうちに、キーボードでの操作が楽しくなってくるはずですよ。まずは身近なテキストファイルを作って、tailで覗いてみることから始めてみてくださいね。