tail -fコマンドの使い方を完全ガイド!Linuxでログをリアルタイム監視する基本
生徒
「システムが動いている様子を、ずっと見守っておきたいときはどうすればいいですか?」
先生
「それなら、tailコマンドに-fというオプションをつけて使うのが一番ですよ。」
生徒
「文字がどんどん流れてくるやつですね!難しそうですが、私にもできますか?」
先生
「もちろんです。仕組みさえわかれば、エラーを見つけたり動きを確認したりするのにとても便利ですよ。ゆっくり解説しますね。」
1. tailコマンドとは?
tail(テイル)は、英語で「しっぽ」や「最後尾」という意味です。その名前の通り、ファイルの一番最後の方だけを表示するためのコマンドです。通常、長いテキストファイルの中身を全部表示すると画面が埋まってしまいますが、このコマンドを使えば最新の数行だけをサッと確認できます。
例えば、日記帳の最後の一行だけをパッと見るようなイメージです。Linuxの世界では、システムが記録している「ログ」と呼ばれる日記のようなデータが常に更新されています。その最新情報だけを追いかけるのに、このtailコマンドは欠かせない存在なのです。
2. tail -fで「リアルタイム監視」ができる仕組み
tailコマンドに-fという特別な「オプション」をつけると、表示が止まらずに、新しい内容が書き込まれるたびに画面へ表示してくれるようになります。この「f」は「follow(フォロー)」、つまり「追いかける」という意味の頭文字です。
パソコンの操作に慣れていない方にとって、画面が自動で動くのは少し驚くかもしれませんが、これは「監視カメラの映像をずっと見ている」ような状態だと考えてください。ファイルに変化が起きると、すぐにあなたの画面にその変化が映し出されます。これが、エンジニアがよく言う「リアルタイム監視」の正体です。
3. 基本的な使い方:ファイルの末尾を表示する
まずは、オプションをつけない基本的な使い方を見てみましょう。特に指定をしない場合、tailコマンドはファイルの最後の10行を表示して終了します。一度表示したら、命令は終わりです。
以下の例では、log.txtという名前のファイルの中身を確認しています。
tail log.txt
2026/01/01 10:00:00 [INFO] Start system
2026/01/01 10:01:00 [INFO] User login
2026/01/01 10:05:00 [INFO] File uploaded
...(中略)...
2026/01/01 10:50:00 [INFO] System health check OK
このように、ファイルの最後の方だけが表示されます。古い情報は無視して、直近の状況だけを知りたいときに使います。
4. オプション「-f」で動きを追いかける
いよいよ本題のリアルタイム監視です。コマンドの後ろに-fを付け足すだけで、画面が「待機状態」になり、ファイルが更新されるのを待ち構えるようになります。
tail -f access.log
2026/01/09 13:00:01 [VISIT] /index.html
2026/01/09 13:00:05 [VISIT] /contact.html
(ここで新しいアクセスがあると、自動で次の行が表示されます)
2026/01/09 13:00:10 [VISIT] /about.html
画面が止まったように見えますが、それは新しい情報がまだ来ていないだけです。何か動きがあれば、即座に新しい行が追加されます。この状態を終了したいときは、キーボードの「Ctrl(コントロール)」キーを押しながら「c」を押してください。これで元の画面に戻ることができます。
5. 表示する行数を自由に変える「-n」オプション
デフォルトでは10行表示されますが、「もっとたくさん遡って見たい」あるいは「最後の一行だけでいい」という場合もあります。そんなときは、-nオプションを使います。-nの後に数字を入れることで、表示する行数を指定できます。
例えば、最新の3行だけを見たいときは以下のように入力します。
tail -n 3 server.log
2026/01/09 14:00:00 Update check
2026/01/09 14:10:00 Backup started
2026/01/09 14:20:00 Backup finished
もちろん、これと-fを組み合わせて、tail -n 5 -f server.logのように書くことも可能です。こうすると「直近の5行を表示したあと、そのまま監視を続ける」という命令になります。
6. 管理者権限が必要なログファイル(rootユーザー)
Linuxでは、とても重要なログファイルは「管理者(ルートユーザー)」しか見ることができないよう保護されていることがあります。例えば、システム全体の動きを記録する「messages」や「syslog」といったファイルです。
こうしたファイルを見るときは、sudoというコマンドを先頭につけて実行するか、あらかじめ管理者としてログインしておく必要があります。管理者の場合は、コマンドの先頭のマークが#に変わります。
tail -f /var/log/messages
Jan 9 13:50:01 localhost systemd: Starting Session
Jan 9 13:55:22 localhost kernel: eth0: link up
Jan 9 14:00:45 localhost crond: job finished
「許可がありません(Permission denied)」というエラーが出た場合は、管理者の力が必要な場所だと思い出してください。
7. 複数のファイルを同時に監視する方法
実は、tail -fは複数のファイルを並べて監視することもできます。例えば「ウェブサイトのアクセス記録」と「エラーの記録」を同時に見たい場合に便利です。ファイル名をスペースで区切って並べるだけです。
tail -f access.log error.log
==> access.log <==
192.168.1.1 - GET / HTTP/1.1
==> error.log <==
[error] client denied by server configuration
このように、どっちのファイルに動きがあったかを表示しながら教えてくれます。複数の窓を開かなくていいので、作業がとてもスムーズになります。初心者の方はまずは一つのファイルから慣れていくのがおすすめですが、慣れてきたらぜひ試してみてください。
8. headコマンドとの違いを知ろう
tail(しっぽ)の反対に、head(頭)というコマンドもあります。これはファイルの最初の方だけを表示するコマンドです。設定ファイルの内容を確認するときなどによく使われます。
headには「監視を続ける(-f)」という機能はありません。なぜなら、ファイルの最初(過去)の内容は、時間が経っても変わることがないからです。対してtailは、ファイルの最後(未来)にどんどん情報が付け足されていくため、監視するという役割が非常に重要なのです。
「今この瞬間に何が起きているか」を知りたいときは、迷わずtail -fを選びましょう。これが使いこなせれば、あなたも立派なLinuxユーザーへの第一歩を踏み出したことになります。