tail -nオプションの使い方を解説!Linuxで末尾の行数を指定して表示する基本
生徒
「Linuxでファイルの最後の何行かだけを表示したいんですが、そんなことできますか?」
先生
「はい、その場合はtailコマンドに-nオプションをつけることで、表示したい行数を指定できますよ。」
生徒
「行数を自由に決められるってことですか?」
先生
「その通りです!-nオプションを使えば、ファイルの末尾から何行だけ表示するかを自分で決めることができます。」
1. tailコマンドと-nオプションとは?
tail(テイル)コマンドは、Linuxでファイルの「最後の部分」つまり末尾だけを表示するためのコマンドです。その中でも-nオプションを使えば、「何行表示したいか」を自分で指定できるようになります。
「tail」は英語で「しっぽ」という意味があり、文字どおりファイルの最後の部分(しっぽ)をチェックするのに使われます。
2. 基本的な構文と使い方
tail -nオプションの基本的な書き方は以下のとおりです。
tail -n 行数 ファイル名
たとえば、sample.txtというファイルの末尾5行だけを表示したい場合は、次のように入力します。
tail -n 5 sample.txt
これは6行目です
これは7行目です
これは8行目です
これは9行目です
これは10行目です
このように、-nの後に行数を指定することで、見たい行数だけを末尾から取り出して表示してくれます。
3. デフォルトとの違いを理解しよう
tailコマンドを-nなしで実行すると、デフォルトで最後の10行が表示されます。
tail sample.txt
これは1行目です
これは2行目です
これは3行目です
これは4行目です
これは5行目です
これは6行目です
これは7行目です
これは8行目です
これは9行目です
これは10行目です
このように、何も指定しないと自動的に10行が出力される仕組みになっています。
4. -n で柔軟にカスタマイズ
-nオプションの良いところは、行数を自由に決められることです。たとえば3行だけ見たいときは-n 3、20行見たいときは-n 20と指定できます。
tail -n 3 sample.txt
これは8行目です
これは9行目です
これは10行目です
このようにして、必要な情報だけをピンポイントで取り出すことができます。
5. 行数の数え方と注意点
表示される行は「ファイルの末尾から○行」となります。つまり、最新の情報だけを確認したいときに便利です。
ただし、指定した行数よりもファイルの行数が少ない場合は、存在するすべての行が表示されるので心配はいりません。
6. 他のオプションと組み合わせて使う
-fオプションと組み合わせて、リアルタイムで末尾を監視しながら、かつ-nで開始行数も指定できます。
tail -n 5 -f sample.txt
これは6行目です
これは7行目です
これは8行目です
これは9行目です
これは10行目です
この状態でファイルに新しい行が追加されると、その内容がどんどん表示されていきます。ログ監視などで非常に役立つ使い方です。
7. headコマンドとの違い
ファイルの「先頭部分」を確認したい場合は、head(ヘッド)コマンドを使います。tailが「しっぽ」なら、headは「頭」です。
head -n 5 sample.txt
これは1行目です
これは2行目です
これは3行目です
これは4行目です
これは5行目です
どちらも-nオプションを使って行数を指定できるので、使い方はよく似ています。
8. grepやsortとの連携も可能
tail -nは、他のコマンドと組み合わせて使うこともできます。たとえばログファイルから特定のキーワードを含む行を抽出して、さらにその末尾数行を表示するという使い方です。
grep "ERROR" /var/log/syslog | tail -n 3
Sep 16 12:30:01 localhost ERROR Something failed
Sep 16 12:35:02 localhost ERROR Disk full
Sep 16 12:40:03 localhost ERROR Out of memory
こうすれば、ログの中から最近のエラーだけを抽出してチェックできます。
まとめ
tailコマンドのnオプションは、Linuxでファイルの末尾を効率よく確認するために欠かせない基本機能です。特にログファイルの確認やデバッグ作業では、ファイル全体を読む必要はなく、直近の数行だけを確認したい場面が多くあります。そのようなときにtail nオプションを使えば、必要な行数だけを素早く抽出できるため、作業効率が大きく向上します。
また、tailコマンドは単体でも十分に便利ですが、grepやsortなどの他のLinuxコマンドと組み合わせることで、さらに強力なデータ抽出ツールとして活用できます。例えばログ監視においては、特定のキーワードを含む行だけを抽出し、その中から最新の情報を確認するという流れが一般的です。このような使い方はサーバー運用やシステム管理の現場でも頻繁に行われています。
さらに、fオプションと組み合わせることでリアルタイム監視も可能になります。これはアプリケーションログやシステムログを常に監視したい場合に非常に役立ちます。例えばサーバーのトラブルシューティングやエラー調査では、リアルタイムでログの変化を追いながら原因を特定することが重要です。
初心者の方にとっても、tailコマンドは覚えやすく実用性の高いLinuxコマンドの一つです。基本構文はシンプルでありながら応用範囲が広いため、早い段階で習得しておくことで、日常的な作業の効率化につながります。特にLinux初心者やインフラエンジニアを目指す方にとっては、必須スキルの一つといえるでしょう。
サンプルプログラムで復習
実際のコマンド例を通して、tail nオプションの使い方をもう一度確認してみましょう。
tail -n 5 sample.txt
ログ行6
ログ行7
ログ行8
ログ行9
ログ行10
上記のように、末尾から指定した行数だけが表示されます。次にリアルタイム監視の例です。
tail -n 3 -f sample.txt
ログ行8
ログ行9
ログ行10
この状態で新しいログが追加されると、その内容が自動的に表示され続けます。ログ監視において非常に重要な使い方です。
応用例としてのコマンド連携
tailコマンドは他のコマンドと組み合わせることで、さらに実践的な活用が可能になります。例えばエラーログの抽出です。
grep "ERROR" sample.log | tail -n 2
ERROR 接続失敗
ERROR メモリ不足
このようにすることで、ログ全体からエラーだけを抜き出し、その中でも最新の情報だけを確認できます。Linuxコマンドの連携は検索効率を高める重要なテクニックです。
生徒
「tailコマンドって、ただ最後を見るだけじゃなくて、行数も自由に変えられるんですね。思ったより便利でした。」
先生
「そうですね。特にnオプションを使うことで、必要な情報だけを効率よく確認できるのがポイントです。ログファイルの確認では必須の知識ですよ。」
生徒
「fオプションと組み合わせるとリアルタイムで見られるのも便利ですね。これならサーバーの状態もすぐに分かりそうです。」
先生
「その通りです。さらにgrepと組み合わせれば、特定のログだけを監視することもできます。実務ではよく使われるテクニックです。」
生徒
「なるほど、tailコマンドはシンプルだけど応用が広いんですね。もっといろいろ試してみたくなりました。」
先生
「ぜひ試してみてください。Linuxコマンドは実際に使いながら覚えるのが一番です。tailを使いこなせるようになると、ログ解析の効率が一気に上がりますよ。」