tail コマンドとは?
tail
はファイルの末尾部分(デフォルトで10行)を表示するコマンドです。
ログファイルの最新状況確認や、ファイルが更新されていく様子を監視したい場合に便利です。
基本構文
tail [オプション] [ファイル...]
使用例と出力サンプル
ファイルの末尾10行を表示
$ tail syslog.txt
最後の5行だけ表示
$ tail -n 5 syslog.txt
ファイルの更新をリアルタイムに監視(-f)
$ tail -f /var/log/syslog
この状態でログが追記されると、画面に自動で表示されていきます。
先頭からの相対行数(+N)を指定
$ tail -n +20 file.txt
これは 20行目以降すべて を表示します(head -n -19
相当)。
複数ファイルの tail
$ tail file1.log file2.log
==> file1.log <==
(末尾10行)
==> file2.log <==
(末尾10行)
-q
でファイル名ヘッダー非表示
$ tail -q file1.log file2.log
(file1 と file2 の末尾が連続して表示され、ヘッダー無し)
よく使うオプション
オプション | 説明 |
---|---|
-n N | N行表示(例:-n 20 ) |
-f | ファイルの末尾をリアルタイムに監視 |
-F | -f と同様+ログローテーション対応(ファイルが再生成されても追従) |
-q | 複数ファイル時にファイル名ヘッダーを表示しない |
-v | 単一ファイルでもファイル名ヘッダーを表示する |
エラーと対処
エラー例 | 原因 | 解決策 |
---|---|---|
tail: cannot open ‘file’ | ファイルが存在しない | ファイル名やパスを確認 |
option requires an argument | -n に数字を付け忘れた | -n 10 のように正しく指定 |
実用例:ログ監視
Apacheログの追跡
$ tail -f /var/log/apache2/access.log
複数ログの静かに表示
$ tail -n 5 -q app.log db.log
まとめ
tail
は末尾確認・ログ監視に便利な標準ツール-f
,-F
でリアルタイム監視、-n
,-q
,-v
で表示調整- ログファイルやデータファイルを扱うシーンで非常に有用
参考リンク
- https://man7.org/linux/man-pages/man1/tail.1.html
- https://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html