Linux系统之head命令的基本使用
- 一、head命令介绍
- 二、head命令的使用帮助
- 2.1 head命令的help帮助信息
- 2.2 head命令的语法解释
- 三、head的基本使用
- 3.1 直接使用
- 3.2 查看文件前N行
- 3.3 查看多个文件
- 3.4 查询文件的前5行
- 3.5 显示文本所有内容(除了后5行内容)
- 3.6 输出显示文件名
- 3.7 输出不显示文件名
- 3.8 显示文件的前10个字节
- 四、配合其他命令使用
- 4.1 配合管道符使用
- 4.2 配合grep使用
- 4.3 与xargs配合使用
- 五、注意事项
一、head命令介绍
- head命令简介
head
命令在 Linux 和其他类 Unix 操作系统中是一个非常有用的工具,用于查看文本文件的开头部分。默认情况下,它会显示文件的前 10 行。
二、head命令的使用帮助
2.1 head命令的help帮助信息
执行以下命令,查看head命令的帮助信息。
[root@openEuler-test ~]# head --help
Usage: head [OPTION]... [FILE]...
Print the first 10 lines of each FILE to standard output.
With more than one FILE, precede each with a header giving the file name.
With no FILE, or when FILE is -, read standard input.
Mandatory arguments to long options are mandatory for short options too.
-c, --bytes=[-]NUM print the first NUM bytes of each file;
with the leading '-', print all but the last
NUM bytes of each file
-n, --lines=[-]NUM print the first NUM lines instead of the first 10;
with the leading '-', print all but the last
NUM lines of each file
-q, --quiet, --silent never print headers giving file names
-v, --verbose always print headers giving file names
-z, --zero-terminated line delimiter is NUL, not newline
--help display this help and exit
--version output version information and exit
NUM may have a multiplier suffix:
b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024,
GB 1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y, R, Q.
Binary prefixes can be used, too: KiB=K, MiB=M, and so on.
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation <https://www.gnu.org/software/coreutils/head>
or available locally via: info '(coreutils) head invocation'
2.2 head命令的语法解释
用法: head [选项]... [FILE]...
打印每个 FILE 的前 10 行到标准输出。
如果有多个 FILE,则在每个文件之前会打印一个标题给出文件名。
选项 | 描述 |
---|---|
-c, --bytes=[-]NUM | 打印每个文件的前 NUM 个字节;如果前面有 - ,则打印除去每个文件最后 NUM 个字节的内容 |
-n, --lines=[-]NUM | 打印每份文件的前 NUM 行而不是默认的 10 行;如果前面有 - ,则打印除去每个文件最后 NUM 行的内容 |
-q, --quiet, --silent | 从不打印给出文件名的行 |
-v, --verbose | 总是打印给出文件名的行 |
-z, --zero-terminated | 行分隔符是 NUL 字符,而不是换行符 |
–help | 显示帮助并退出 |
–version | 输出版本信息并退出 |
NUM 可以有乘数后缀:
- b 代表 512
- kB 代表 1000
- K 代表 1024
- MB 代表 1000 * 1000
- M 代表 1024 * 1024
- GB 代表 1000 * 1000 * 1000
- G 代表 1024 * 1024 * 1024
- 类似地,T、P、E、Z、Y、R 和 Q 也适用
二进制前缀也可以使用,例如:KiB=K, MiB=M 等等。
GNU coreutils 在线帮助: https://www.gnu.org/software/coreutils/
完整文档可访问: https://www.gnu.org/software/coreutils/head
或者本地查阅: info '(coreutils) head invocation'
三、head的基本使用
3.1 直接使用
直接使用
head
命令,默认打印文本的前10行
[root@openEuler-test ~]# head /etc/passwd
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
daemon:x:2:2:daemon:/sbin:/usr/sbin/nologin
adm:x:3:4:adm:/var/adm:/usr/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/usr/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:/usr/sbin/nologin
operator:x:11:0:operator:/root:/usr/sbin/nologin
3.2 查看文件前N行
使用-n选项,指定查看文件的前n行。
[root@openEuler-test ~]# head -n 2 /etc/passwd
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
3.3 查看多个文件
执行以下文件,查看多个文件。
[root@openEuler-test ~]# head -n 3 /etc/passwd /etc/shadow
==> /etc/passwd <==
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
daemon:x:2:2:daemon:/sbin:/usr/sbin/nologin
==> /etc/shadow <==
root:$y$j9T$n53ZO81eNovcbOou130tUkjy$nkyJo1U/tXS59VhjeG3ds9j79nE8xeiFDTg8UBZioi5::0:99999:7:::
bin:*:19866:0:99999:7:::
daemon:*:19866:0:99999:7:::
3.4 查询文件的前5行
head -5 /etc/passwd
与head -n 5 /etc/passwd
效果一致
[root@openEuler-test ~]# head -5 /etc/passwd
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
daemon:x:2:2:daemon:/sbin:/usr/sbin/nologin
adm:x:3:4:adm:/var/adm:/usr/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/usr/sbin/nologin
3.5 显示文本所有内容(除了后5行内容)
显示文本所有内容(除了后5行内容)
[root@openEuler-test ~]# head -n -5 /etc/passwd
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
daemon:x:2:2:daemon:/sbin:/usr/sbin/nologin
adm:x:3:4:adm:/var/adm:/usr/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/usr/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:/usr/sbin/nologin
operator:x:11:0:operator:/root:/usr/sbin/nologin
games:x:12:100:games:/usr/games:/usr/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/usr/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/usr/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
3.6 输出显示文件名
加上
-v
选项,输出结果显示文件吗。
[root@openEuler-test ~]# head -v /etc/passwd
==> /etc/passwd <==
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
daemon:x:2:2:daemon:/sbin:/usr/sbin/nologin
adm:x:3:4:adm:/var/adm:/usr/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/usr/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:/usr/sbin/nologin
operator:x:11:0:operator:/root:/usr/sbin/nologin
3.7 输出不显示文件名
加-q选项,输出不显示文件名,默认为不显示。
[root@openEuler-test ~]# head -q /etc/passwd
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
daemon:x:2:2:daemon:/sbin:/usr/sbin/nologin
adm:x:3:4:adm:/var/adm:/usr/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/usr/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:/usr/sbin/nologin
operator:x:11:0:operator:/root:/usr/sbin/nologin
3.8 显示文件的前10个字节
使用
-c
选项,指定显示文件的字节数,例如-c 100为显示文件的前100个字符内容。
[root@openEuler-test ~]# head -c 100 /etc/passwd; echo -e "\n"
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
daemon:x:2:2:daemon:/sbin
四、配合其他命令使用
4.1 配合管道符使用
head命令经常配合其他命令使用,例如可以与管道符一起使用。
[root@openEuler-test ~]# cat /etc/passwd |head -n 5
root:x:0:0:Super User:/root:/bin/bash
bin:x:1:1:bin:/bin:/usr/sbin/nologin
daemon:x:2:2:daemon:/sbin:/usr/sbin/nologin
adm:x:3:4:adm:/var/adm:/usr/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/usr/sbin/nologin
4.2 配合grep使用
这条命令首先查找文件中包含 “pass” 的行,然后通过管道传递给 head 只显示前 3 行匹配结果。
[root@openEuler-test ~]# grep "pass" /etc/ssh/sshd_config |head -n 3
# To disable tunneled clear text passwords, change to no here!
# Change to no to disable s/key passwords
# PAM authentication via KbdInteractiveAuthentication may bypass
4.3 与xargs配合使用
对于处理命令行参数长度受限的情况,可以先通过 head 限制输入,再传递给其他命令。
[root@openEuler-test ~]# find /etc -name "*.txt" | head -n 10 | xargs ls -l
-rw-r--r--. 1 root root 451 May 19 11:50 /etc/pki/nssdb/pkcs11.txt
五、注意事项
- 默认情况下
head
显示文件的前 10 行,可以通过-n
选项自定义行数。 - 使用
-c
选项时要注意,它按字节数而非行数截取文件内容。 - 处理二进制文件时应谨慎使用
head
,以免破坏文件格式或导致不可预测的行为。 - 当处理非常大的文件时,使用
head
可以快速预览文件内容而不必加载整个文件。 - 在管道中使用
head
时,确保后续命令能正确处理有限的输入数据。