headコマンド(ヘッドコマンド)とは | 意味や読み方など丁寧でわかりやすい用語解説
headコマンド(ヘッドコマンド)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ヘッドコマンド (ヘッドコマンド)
英語表記
head command (ヘッドコマンド)
用語解説
headコマンドは、LinuxやmacOSなどのUnix系オペレーティングシステムで利用できる、テキストファイルの先頭部分を表示するための基本的なコマンドである。コマンド名の「head」が示す通り、ファイルの「頭」の内容を確認する際に使用する。通常、ログファイルや設定ファイル、プログラムのソースコードなどは非常に長大になることがあるが、その全体を表示させる必要はなく、ファイルの冒頭部分だけを素早く確認したい場面は頻繁に発生する。例えば、ファイルがどのようなデータで構成されているか、ヘッダ情報がどうなっているか、あるいはどのような形式で記述が始まっているかといった概要を把握するために、このheadコマンドは極めて有効なツールとなる。デフォルトでは、指定したファイルの先頭から10行を表示する仕様になっている。このため、コマンドを実行するだけで、対象ファイルの概要を手早く掴むことができる。
headコマンドの基本的な構文は head [オプション] [ファイル名] となる。ファイル名を指定しない場合や、ファイル名としてハイフン - を指定した場合は、標準入力からのデータを処理する。これは、他のコマンドの出力をパイプで受け取る際に利用される重要な機能である。
最も頻繁に使用されるオプションは、表示する行数を指定する -n オプションである。正式には --lines オプションとも呼ばれる。例えば、head -n 5 sample.txt と実行すると、sample.txt というファイルの先頭から5行だけが表示される。この数値は任意に変更可能で、head -n 100 sample.txt とすれば先頭100行が表示される。-n は省略して head -5 sample.txt のように、ハイフンの後に直接数値を記述することも可能である。また、-n オプションには少し特殊な使い方があり、数値の前にマイナス記号を付けて head -n -5 sample.txt とすると、「ファイルの末尾5行を除いた、先頭からすべての行」を表示するという意味になる。これは、ファイルのフッタ情報などを除外して内容を確認したい場合に便利である。
行単位ではなく、バイト単位でファイルの先頭部分を表示したい場合には -c オプションを使用する。これは --bytes オプションと同義である。head -c 100 sample.txt と実行すれば、sample.txt の先頭から100バイト分のデータが表示される。これはバイナリファイルの内容を少しだけ確認したい場合や、厳密なデータサイズで先頭部分を切り出したい場合に役立つ。ただし、UTF-8などのマルチバイト文字を含むテキストファイルに対して使用する場合、文字の途中で表示が途切れてしまい、文字化けのように見える可能性がある点には注意が必要である。
headコマンドは、複数のファイルを同時に指定することもできる。head logfile1.log logfile2.log のように実行すると、それぞれのファイルの先頭10行が順番に表示される。この際、どのファイルからの出力であるかを明確にするため、デフォルトでは ==> logfile1.log <== のようなヘッダが各ファイルの出力の前に挿入される。このヘッダ表示を抑制し、ファイルの内容だけを連続して表示したい場合は -q オプション(--quietまたは--silent)を使用する。逆に、ファイルが一つしか指定されていない場合でも常にヘッダを表示させたい場合は -v オプション(--verbose)を使用する。
システムエンジニアの実務において、headコマンドの真価が発揮されるのは、パイプライン処理との組み合わせである。パイプ | は、あるコマンドの実行結果(標準出力)を、次のコマンドの入力(標準入力)として渡すための機能である。これを利用することで、様々なコマンドの出力結果の先頭部分だけを効率的に確認できる。例えば、ls -l コマンドはカレントディレクトリのファイルやディレクトリの一覧を詳細形式で表示するが、ファイル数が非常に多い場合、画面がすべて埋め尽くされてしまう。このような時に ls -l | head -n 20 とすれば、出力結果の先頭20行だけが表示され、目的の情報を探しやすくなる。同様に、現在実行中のプロセス一覧を表示する ps aux コマンドの結果を ps aux | head として先頭部分だけを確認したり、ソートコマンド sort の結果の先頭だけを見たりと、その応用範囲は非常に広い。
headコマンドとしばしば対比されるのが、ファイルの末尾部分を表示する tail コマンドである。head がファイルの始まりを確認するのに対し、tail はファイルの終わりを確認するために用いられる。特に、追記型のログファイルで最新のログを確認する際には tail コマンドが不可欠である。この二つのコマンドはセットで覚えるべき、テキストファイル操作の基本中の基本と言える。巨大なファイルを扱う機会の多いシステムエンジニアにとって、ファイル全体をエディタで開くことなく、head や tail を使って必要な部分だけを素早く確認するスキルは、日々の作業効率を大きく向上させるために必須の技術である。