head コマンド:ファイルの先頭を表示する

コマンドの概要

 headコマンドは、指定したファイルの先頭から指定した行数またはバイト数分を表示するためのコマンドです。デフォルトではファイルの先頭から10行を表示します。

コマンドの主なオプションと説明

オプション説明
-n NUM先頭から表示する行数を指定。デフォルトは10行。
-c NUM先頭から表示するバイト数を指定。
-q複数ファイルを指定した場合などに出力結果に表示されるファイル名を表示しない。
主なオプションと説明

コマンドの使用例と解説

1.’/etc/passwd’ ファイルの先頭から10行表示

デフォルトでは先頭から10行が表示されます。

$ head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
2.’/etc/passwd’ ファイルの先頭から20行表示

-n オプションを使用して表示する行数を指定できます。

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

(省略)

colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
saned:x:996:993:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
3.’/etc/passwd’ ファイルの先頭から100バイト表示

-c オプションを使用して表示するバイト数を指定できます。

$ head -c 100 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nol
4.’/etc/*.conf’ ファイルの先頭から10行を表示しつつ、ファイル名も表示しない

-q オプションを使用することで、ファイル名が表示されません。

$ head -q /etc/*.conf
# Please see http://dev.maxmind.com/geoip/geoipupdate/ for instructions
# on setting up geoipupdate, including information on how to download a
# pre-filled GeoIP.conf file.

# Enter your account ID and license key below. These are available from
# https://www.maxmind.com/en/my_license_key. If you are only using free
# GeoLite databases, you may leave the 0 values.
AccountID 0
(省略)
5.psコマンドの出力を先頭から5行表示

パイプを使用してコマンドの出力を head に渡すこともできます。

$ ps aux | head -5
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 193968  7032 ?        Ss   21:15   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    21:15   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   21:15   0:00 [kworker/0:0H]
root         5  0.0  0.0      0     0 ?        S    21:15   0:00 [kworker/u2:0]
6.’etc/passwd’ ファイルの11行目から20行目を抜き出して表示する。

 headコマンドとtailコマンドを使って11行目から20行目を抜き出して表示することができます。

$ head -20 /etc/passwd | tail
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
saned:x:996:993:SANE scanner daemon user:/usr/share/sane:/sbin/nologin

 これらの例は、headコマンドの基本的な使用法を示しています。特定の行数やバイト数を指定してファイルの先頭を表示する際に利用されます。