如何在 Linux 上使用 head 命令
在 Linux 上使用 head 命令查看文件和数据流。
要点
- Linux head 命令本身(例如“head example.txt”)将列出文本文件或输入的前十行。
- 您可以使用“-n”选项自定义 head 命令以显示特定数量的行,或使用“-c”选项将输出限制为特定字节。
- 您还可以使用 head 命令通过分析可能随时间变化的日志和其他文本文件来进行选择性实时系统监控。
在 Linux 上,有多种命令可以获取文本文件的全部内容。但是如果您需要某个部分或几条起始线怎么办? head 命令在终端上打印文件的初始内容。
Linux 上的 head 命令是什么?
Linux 有多个命令来显示文件内容。最流行和最常用的是 cat
、less
和 view
命令。但是,这些命令对于显示大部分文件更有用。如果您只需要显示文件的特定行数,则可以使用 head
命令。
head
命令的作用与 tail
命令的作用相反。它显示文件的起始内容,而 tail
命令打印文件的结束行。默认情况下,head
显示前 10 行。如果要打印多于或少于 10 行,只需使用 -n
选项。同样,-c
选项与 head
命令可以将输出限制为特定字节数。
head
命令可以分析随时间变化的日志和其他文本文件。您可以将 head
命令与其他命令结合使用,以进行选择性实时监控。
head
命令的语法很容易理解,与其他 Linux 命令类似:
head [OPTION]... [FILE]...
head
命令可以将一个或多个文件作为输入。它还接受一些修改其行为和输出的选项。如果未指定文件,head
命令将从标准输入中读取。
要检查 head
命令的版本,请使用:
head --version
同样,键入以下命令可输出 head
命令帮助菜单:
head --help
head 命令选项
您可以在 Linux 上通过 head
命令使用各种选项。每个选项都有一个简洁且扩展的形式,可与基本语法一起使用。它控制 head
命令打印到正常输出的数据量。例如,它允许您决定是否在文件输出中包含标头。
下表包含可用于 head
命令的选项列表:
-n
or--lines
定义从开头开始显示的行数。
-c
or--bytes
显示从开始处算起的指定字节数。
-v
or--verbose
打印每个文件名以及文件内容。这在一次显示多个文件时非常有用。
-q
or--quiet
在显示文件内容之前禁止打印文件名。当仅显示一个文件或将输出通过管道传输到另一命令时,这非常有用。
-z
or--zero-terminated
将每行末尾的换行符替换为 NULL。
在开始演示 head
命令之前,我们首先看一下示例文件的内容。使用cat
命令后跟文件名来获取示例文件的所有数据。
cat example.txt
此示例文件包含 15 行文本。
现在,让我们使用 head
命令打印 example.txt 文件的内容。不带任何选项的 head
命令将打印文件的前 10 行。
head example.txt
获取特定行数
要使用 head
命令显示一定数量的行,请添加 -n
(--lines
) 选项,后跟文件名。
要显示 example.txt 的前四行,请运行:
head -n 4 example.txt
同样,也可以使用 -n
选项指定负数。这将跳过文件的最后 N 行。当您想跳过文件末尾的某些行时,这很有用。
例如,要跳过 example.txt 文件的最后两行,请运行:
head -n -2 example.txt
使用 head 拉取特定数量的字节
head
命令的另一个用例是从文件开头获取一定数量的字节。您可以使用 -c
(--bytes
) 选项后跟一个数字来完成此操作。
假设您有相同的文件 example.txt,并且它包含 15 行文本。要获取前 20 个字节,请运行:
head -c 20 example.txt
由于 example.txt 文件包含 ASCII 字符,因此每个字符(包括空格和换行符)将占用一个字节。
负数也可以使用 -c
选项定义。这将显示文件的所有字节,最后 N 个字节除外。要显示 example.txt 中除最后 13 个字节之外的所有字节,请运行:
head -c -13 example.txt
查看文件中的特定字符
有时,您需要查看文件的特定部分,而不是整个文件内容。假设您有一个包含多行内容的文件,并且您希望查看每行的第一个或最后一个字符。为此,您必须将 head
命令与其他文本处理命令(如 cut
、awk
或 sed
)进行管道连接。
例如,要检索 example.txt 每行的第一个字母,请使用带有 -c
选项的 cut
命令,后跟字符位置。默认情况下,除非您指定输出行数,否则您将获得前 10 行的起始字符。
head example.txt | cut -c 1
要查看 example.txt 每行的最后一个单词,请使用带有 {print $NF}
模式的 awk
命令。使用管道运算符 (|) 对 head
和 awk
命令进行管道传输。这样,head
命令的输出将作为 awk
命令的输入。
当您使用{print $NF}
时,它告诉awk
打印输入中每一行的最后一个字段的值。通过使用$NF
,您不需要提前知道每行有多少个字段; awk
自动为您处理它并提取最后一个字段。
head example.txt | awk '{print $NF}'
使用 head 查看标题/文件名
默认情况下,当 head
命令用于单个文件时,它不会打印文件名。但是,当与多个文件一起使用时,它可以显示文件名。
使用 -v
选项获取文件名及其内容。此选项打印带有指定文件的文件名的标题。
head -v example.txt
用头显示多个文件的内容
head
命令还可以将多个文件名作为参数并按顺序显示其内容。让我们使用两个名为 example.txt 和 test.txt 的文件,其中包含多行内容。现在,head
命令将显示两个文件名及其内容。
head example.txt test.txt
您可以使用带有 -q
选项的 head
命令来查看多个文件的内容,而不显示它们的名称。
head -q example.txt test.txt
将 head 与其他命令一起使用
head
命令还可以与其他命令一起使用来执行各种任务。您可以将其与 tail
、more
、wc
和 grep
命令一起使用。
您可以使用 grep
管道传输 head
命令,以获取包含指定模式的所有行。
head example.txt | grep ch
上述语法显示 example.txt 文件中包含“ch”的所有行。
您还可以将 head
命令与 wc
命令进行管道传输。这两个命令都会输出文件中的总行数、字数和字节数。
要获取 example.txt 文件中的行数、字数和字节数,请运行:
head example.txt | wc
您可以将 head
和 tail
命令与管道符号一起使用来显示文件中特定范围的行。 head
命令显示文件的起始行,而 tail
命令则打印文件的结束行。
考虑包含 15 行的 example.txt 文件。要显示第 5 行和第 11 行之间的内容,请运行:
head -n 10 example.txt | tail -n 5
该命令首先使用 head -n 10
命令显示文件的前 10 行。之后,它将输出通过管道传输到 tail -n 5
命令。 tail
命令将为我们提供第 5 行和第 11 行之间实体的最终输出。
想要用头部显示行结尾吗?
head
命令,顾名思义,主要关注文件的初始行。相反,tail
命令的目的是显示文本文件的结束行。通常,新数据会添加到文件末尾,因此 tail
命令是查看文件最新添加内容的快速且简单的方法。它还可以监视文件并显示该文件中出现的每个新文本条目。
就像head
命令一样,您也可以使用tail
来监视多个文件或计算字节数。它还可以检查文本文件中包含的特定模式或文本。这使其成为监视日志文件的绝佳工具。