head -nオプションの使い方を完全解説!Linuxで先頭の行数を指定して表示する方法
生徒
「Linuxでファイルの最初の部分を表示するheadコマンドって使ったことあるんですが、-nってオプションは何に使うんですか?」
先生
「-nオプションは、表示したい行数を自分で指定できる便利な機能ですよ。」
生徒
「行数を決められるんですね!実際にどうやって使うんですか?」
先生
「それでは、head -nオプションの基本的な使い方を一緒に見ていきましょう。」
1. headコマンドと-nオプションとは?
headコマンドは、Linuxでファイルの最初の部分を確認したいときに使うコマンドです。デフォルトでは、先頭の10行を表示してくれます。しかし、もっと少ない行だけ見たいときや、逆にもっと多く見たいときもありますよね。
そんなときに使うのが-nオプションです。これは「number(行数)」の略で、表示する行数を自分で指定することができます。
2. head -nオプションの基本構文
head -nオプションの書き方はとてもシンプルです。
head -n 行数 ファイル名
たとえば、「example.txt」というファイルの先頭3行だけを見たいときは、次のように入力します。
head -n 3 example.txt
1行目の内容
2行目の内容
3行目の内容
このように、-nオプションに数字を指定することで、好きな行数だけを表示できます。
3. 実際に使ってみよう!サンプルファイルを作成
まずは、テスト用のファイルを作って中身を確認してみましょう。
seq 1 10 > sample.txt
head -n 5 sample.txt
1
2
3
4
5
seqコマンドは、1から10までの数字を順番に出力するコマンドです。それをsample.txtというファイルに保存して、head -n 5で上から5行だけ表示しています。
4. 数字の指定方法に注意しよう
-nオプションのあとに続ける数字は、半角数字で指定します。全角だとエラーになることがあります。
また、スペースを忘れてはいけません。次のように書くのが正解です。
head -n 7 sample.txt
1
2
3
4
5
6
7
逆に、次のように書いてしまうとエラーになる可能性があります。
head -n7 sample.txt
これは「7」が全角文字のため、正しく認識されません。コマンド入力は「半角英数字」で行うことが基本です。
5. headとtailの違いを知ろう
headコマンドはファイルの「最初の行」を表示するのに対し、tailコマンドは「最後の行」を表示します。
つまり、以下のような使い分けができます。
head -n 5 ファイル名→ 上から5行tail -n 5 ファイル名→ 下から5行
ログファイルなどで新しい情報が下に追加される場合はtailを使い、設定ファイルの冒頭部分を確認したい場合はheadを使うと便利です。
6. headコマンドを他のコマンドと組み合わせる
Linuxでは、複数のコマンドを組み合わせて使うことができます。これを「パイプ」と呼びます。記号の|を使うことで、あるコマンドの出力結果を次のコマンドに渡せます。
たとえば、現在のディレクトリにあるファイル一覧を並べて、その上から5件だけ表示したいときは次のようにします。
ls -1 | head -n 5
ファイル1
ファイル2
ファイル3
ファイル4
ファイル5
このようにhead -nは、他のコマンドと組み合わせて使うことで、さらに便利になります。
7. head -nとhead -数字の違い
実は、headコマンドでは次のように-nを省略して数字だけ書く書き方もあります。
head -5 sample.txt
1
2
3
4
5
これはhead -n 5と同じ意味です。ただし、可読性やスクリプトでの保守性を考えると、-nを明記する方法が推奨されています。
8. head -nオプションを使う場面の具体例
head -nオプションは、たとえば次のようなシーンで役立ちます。
- 大量のデータファイルの冒頭だけ確認したいとき
- ログファイルの出だしにあるヘッダー行だけを確認したいとき
- スクリプトの先頭コメントを確認したいとき
ファイル全体を開かなくても、必要な部分だけサクッと見ることができるので、作業効率がぐっと上がります。
まとめ
Linuxの基本コマンドであるheadコマンド、そしてその挙動を細かく制御する-nオプションについて詳しく解説してきました。日々のサーバー運用やプログラミング作業において、巨大なログファイルや設定ファイルの全容をすべて表示させるのは非効率です。そこで、今回学んだ「先頭から必要な行数だけを抽出する」というテクニックが非常に重要になります。
head -nオプションの重要ポイント再確認
記事を通じて学んだ通り、head -nオプションは単なる表示コマンド以上の役割を果たします。特にSEOの観点やデータの可読性を高めるためにも、以下のポイントを意識して使いこなしましょう。
- デフォルトの挙動: オプションなしでは先頭10行が表示される。
- 柔軟な行数指定:
-n 5や-n 100のように、任意の数字を指定可能。 - 負の数の指定:
head -n -5のようにマイナスを付けると、「末尾の5行を除いたすべて」を表示できる(GNU版)。 - パイプ処理との相性:
lsやgrepの結果を絞り込む際に非常に強力。
実践的なコマンド例の振り返り
現場でよく使われる実践的なパターンをおさらいしておきましょう。一般ユーザー権限での実行例です。
たとえば、システムに登録されているユーザー一覧の先頭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
次に、ルート権限(管理者権限)が必要な重要な設定ファイルやログファイルの冒頭を確認する場合の例です。システム管理者が初期設定を確認する際などに多用します。
head -n 2 /etc/shadow
root:$6$vU9...:19000:0:99999:7:::
daemon:*:18885:0:99999:7:::
効率化のための応用テクニック
headコマンドをマスターしたら、次は「データの絞り込み」を意識してみてください。例えば、特定のキーワードが含まれる行を探し、その中から最新の(または最初の)数件だけを表示させるといった使い方が一般的です。
Linux環境では、一つのコマンドですべてを完結させるのではなく、今回学んだheadのような単機能で強力なツールを組み合わせていくことが、エンジニアとしてのスキルアップに直結します。まずは基本的な「上から数行見る」という操作を無意識に打てるようになるまで、何度もターミナルで試してみることをおすすめします。
生徒
「先生、まとめまで読んでみて、head -nがいかに便利かよくわかりました!デフォルトの10行だけじゃなくて、自分の好きな行数に調整できるのがいいですね。」
先生
「その通りです。特に数万行あるような巨大なログファイルを扱うときは、間違えて全部表示させてしまうと画面が止まってしまうこともありますから、まずはheadで中身を少しだけ覗く癖をつけるといいですよ。」
生徒
「確かに、数万行は怖いですね……。あと、-nを省略してhead -5みたいに書けるのも驚きました。現場ではどっちの書き方が多いんでしょうか?」
先生
「急いでいるときは数字だけのショートカットを使う人も多いですが、チームで共有するスクリプト(手順書)などを書くときは、誰が見ても意味が明確な-nを付ける書き方が推奨されますね。読みやすさはエンジニアにとっての優しさですよ。」
生徒
「読みやすさ、大事ですね!そういえば、tailコマンドについても少し触れましたが、これら二つを組み合わせれば、ファイルの中間の行だけを表示することもできたりしますか?」
先生
「おっ、鋭いですね!その通りです。例えば『11行目から15行目までを見たい』という場合は、まずhead -n 15で上から15行取ってきて、その結果をパイプでtail -n 5に渡せば、お望みの範囲だけを取り出せますよ。」
生徒
head -n 15 sample.txt | tail -n 5
11
12
13
14
15
「わあ、本当にできました!組み合わせ次第で何でもできるんですね。Linuxコマンドのパズルのような面白さが少し分かってきた気がします。」
先生
「その調子です!Linuxの世界は奥が深いですが、一つ一つのコマンドを確実に自分のものにしていけば、必ず自由自在に操れるようになります。まずは今回のhead -nをマスターして、効率的な環境構築やファイル操作に役立ててくださいね。」
生徒
「はい!ありがとうございます。今日からさっそく、ターミナルを開くたびに使ってみて、指に覚え込ませようと思います!」