Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

head / tail

『head』はファイルの先頭、『tail』は末尾の内容を表示するコマンドです。特に『tail -f』はログファイルの末尾をリアルタイムで監視する用途で頻繁に使われます。

構文
head [オプション] [ファイル...]
tail [オプション] [ファイル...]
オプション一覧
オプション概要
head ファイルファイルの先頭10行を表示します。
head -n N ファイル先頭N行を表示します。
head -c N ファイル先頭Nバイトを表示します。
head -n -N ファイル末尾N行を除いて全行を表示します。
tail ファイルファイルの末尾10行を表示します。
tail -n N ファイル末尾N行を表示します。
tail -c N ファイル末尾Nバイトを表示します。
tail -f ファイルファイルの末尾を監視し、追記されるたびにリアルタイムで表示します。
tail -F ファイル-f と同様ですが、ファイルが削除・再作成されても追跡し続けます。
tail -n +N ファイルN行目以降を表示します(先頭N-1行をスキップ)。
サンプルコード

以下のファイルを例に説明します。

# ~/project/data.csv (8行)
# id,name,score
# 1,Alice,85
# 2,Bob,72
# 3,Charlie,91
# 4,Diana,68
# 5,Eve,95
# 6,Frank,80
# 7,Grace,88

ファイルの先頭3行を表示します。

head -n 3 data.csv
id,name,score
1,Alice,85
2,Bob,72

ファイルの末尾3行を表示します。

tail -n 3 data.csv
5,Eve,95
6,Frank,80
7,Grace,88

CSVのヘッダー(1行目)をスキップして2行目以降を取得します。

tail -n +2 data.csv
1,Alice,85
2,Bob,72
3,Charlie,91
4,Diana,68
5,Eve,95
6,Frank,80
7,Grace,88

『/etc/passwd』の先頭3行を確認します。

head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

ログファイルをリアルタイムで監視します(Ctrl+C で終了)。

tail -f /var/log/nginx/access.log

ローテーションされるログも追跡し続けます。

tail -F /var/log/app.log

パイプと組み合わせて、エラーログの最新10件だけを表示します。

grep "ERROR" app.log | tail -n 10
概要

『tail -f』はサーバーのログ監視でほぼ毎日使うコマンドです。複数ファイルを同時に監視したい場合は『tail -f ファイル1 ファイル2』のように複数指定できます。さらに強力なログ監視ツールとして『multitail』や『lnav』なども存在します。

ファイル全体を見たい場合は『less』を使います。ファイル全体の表示には『cat』も参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。