Linux系统之head命令的基本使用

举报
江湖有缘 发表于 2024/08/20 18:31:32 2024/08/20
【摘要】 Linux系统之head命令的基本使用

@TOC

在这里插入图片描述

一、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/passwdhead -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 时,确保后续命令能正确处理有限的输入数据。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。