headはファイルの先頭から数行を表示するLinuxコマンドだ。
標準では10行を表示する。
パイプで繋いで別コマンドの結果を表示する際や、ファイルの確認によく使う。
目次
headコマンドの基本動作
コマンドの基本
headコマンドの基本的な使い方は、次のとおりだ。デフォルトでは頭の10行を表示する形になる。
$ head ファイル名
/etc/sensors3.confの先頭から10行を表示するには次のコマンドだ。
$ head /etc/sensors3.conf
/etc/sensors3.confの先頭行から10行が表示された。
ファイルの複数指定
ファイル名は複数指定でき、半角空白でつなげることができる。
例えば、/etc/passwdと/etc/groupの両方を出力したい時は次のコマンドだ。
$ head /etc/passwd /etc/group
また、ファイル名にワイルドカードを利用することもできる。
拡張子がPHPのファイルすべてを対象とする場合は、次のコマンドだ。
$ head *.php
拡張子がPHPのファイルすべての先頭数行が順次表示された。
複数のファイルを出力した場合は、各出力の前にファイル名が表示される。表記もわかりやすいので、使いやすいだろう。
headコマンドのオプションたち
コマンドの一覧
後から詳細をご紹介するが、まずは一覧で見てみよう。
-cオプション(オプション--bytes=[-]K)
出力する文字数を指定する
-nオプション(オプション--lines=[-]K)
出力する行数を指定する
-qオプション(オプション--quiet, オプション--silent)
ファイル名を表示しない
-vオプション(オプション--verbose)
ファイル名を常に表示する
それでは、詳細を解説していく。
-cオプション(オプション--bytes=BYTE):出力する文字数を指定する
指定が無ければ先頭から10行を表示するが、-cオプションでは指定した文字数を出力する。文字数はバイト単位だ。
文字数にKを付ければ、キロバイトを指定することもできる。
半角で数えた文字数なので、全角文字と半角カタカナと一般的ではない半角記号は指定したい文字数の倍を指定する。
書式は次のとおりだ。
$ head -c 文字数 ファイル名
ファイルflag.phpの先頭10文字を表示する場合は、次のコマンドになる。
$ head -c 10 flag.php
ファイルflag.phpの先頭10文字が表示された。
この場合、出力文字の最後に改行が挿入されないので、ファイル内容に続いて同じ行にコマンドプロンプトが表示される。
文字数の前に「-」をつけると、最終文字から指定した文字数以外を表示する
$ head -c -文字数 ファイル名
ファイルflag.phpの最終文字から20文字以外を表示する場合は、次のコマンドだ。
$ head -c -20 flag.php
ファイルflag.phpの最終文字から20文字以外が表示された。
-nオプション(オプション--lines=[-]K):出力する行数を指定する
指定が無ければ先頭から10行を表示するが、-nオプションでは指定した行数を出力する。
書式は次のとおりだ。
$ head -n 行数 ファイル名
ファイルflag.phpの先頭2行を表示する場合は、次のコマンドだ。
$ head -n 2 flag.php
ファイルflag.phpの先頭2行が表示された。
行数の前に-をつけると、最終行から指定した行数以外を表示する。
$ head -n -行数 ファイル名
ファイルflag.phpの最終行1行以外を表示する場合は、次のコマンドだ。
$ head -n -1 flag.php
ファイルflag.phpの最終行1行以外が表示された。
-qオプション(--quietオプション, --silentオプション):ファイル名を表示しない
複数ファイルを指定した場合に表示される各ファイル名を表示しない。幾つかのファイルの頭だけを繋げて表示し、パイプでファイルへ保存するときなど使える。
書式は次のとおりだ。
$ head -q ファイル名
拡張子がPHPのファイルすべてのファイルの先頭数行を、ファイル名を表示せずに、連続して表示する場合は次のコマンドだ。
$ head -q *.php
拡張子がPHPのファイルすべてのファイルの先頭数行が、対象が複数でありながらファイル名を表示せずに、表示された。
-vオプション(--verboseオプション): ファイル名を常に表示する
headコマンドで、単一のファイルの先頭数行を表示する場合、ファイル名は表示しない。
どんな場合でも常にファイル名を表示する書式は次のとおりだ。
$ head -vファイル名
ファイルflag.datの先頭から数行を表示し、ファイル名も同時に表示する場合は、次のコマンドだ。
$ head -v flag.dat
先頭から数行を表示し、対象がファイルflag.datの1ファイルでありながらファイル名も同時に表示された。
特殊な使い方
ファイル名を指定しないか「-」と指定しコマンドを実行すると、ファイルではなく標準入力からの入力を受け付ける。
一般的には標準出力はキーボードであるから、キーボードの入力内容をそのまま表示する。
あまり活用方法がないかも知れないが、例えば、キーボードの故障やLinux内部でキーボード入力に不具合が出ているかの診断として使えるだろう。
$ head -
この状態で、123と入力しEnterキーを押した画面は次の通りだ。
この使い方での動作終了時は、Ctrl+Cのショートカットキーで終了する。
また、動作中はプロセスとして動作しているので、psコマンドの-aオプションでプロセス番号(PID)を確認後、killコマンドでも動作を終了できる。
head関連コマンド
最後にheadコマンドに関連して、基本的なファイルの表示コマンドも紹介しておく
catコマンド
ファイル内容を表示する。
tailコマンド
ファイルの最終行数行を表示する。
viコマンド
ファイル内容を編集する。
まとめ
headはファイルの確認によく使うLinuxコマンドだ。
また、ファイルの内容を含んだインデックスを作るときなどにも使える。
例えば、プログラムソースを作成していて、各ファイルのはじめ3行には必ずどんなファイルか記すというルールを徹底しておけば、このコマンドで様々なインクルードファイルなどをインデックスし、見やすくまとめることができる。
cat、tail、lessなどと共に使い方を覚えておこう。
コメント