本页内容
- Linux head 命令
- Q1. 如何在终端(stdout)上打印文件的前 10 行?
- Q2. 如何调整 head 打印的行数?
- Q3. 如何将输出限制为指定的字节数?
- Q4. 如何让 head 在输出中打印文件名?
- Q5. 如何让 NUL 作为行分隔符,而非换行符?
- 结论
当你在 Linux 命令行上工作时,有时想快速查看文件的前几行。例如,如果日志文件在不断更新,你可能每次都想看日志文件的前 10 行。尽管用编辑器(如 vim)查看文件始终是可行的,但有一个名为 head 的命令行工具,可让你轻松查看文件的前几行。
在本文中,我们将通过一些易于理解的示例,讲解 head 命令的基础知识。请注意,此处提到的所有步骤/指令均已在 Ubuntu 22.04 上测试。
Linux head 命令
正如开头所述,head 命令让用户查看文件的开头部分。其语法如下:
head [OPTION]... [FILE]...
以下是该命令的 man 手册页对其的描述:
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.
以下问答形式的示例,能让你更好地理解该工具的使用方式:
Q1. 如何在终端(stdout)上打印文件的前 10 行?
使用 head 非常简单——事实上,这正是该工具的默认行为。
head [file-name]
以下截图展示了该命令的实际运行效果:

Q2. 如何调整 head 打印的行数?
虽然 10 是 head 命令默认打印的行数,但你可以根据需要修改这个数字。命令行选项 -n 可以让你做到这一点。
head -n [N] [File-name]
例如,如果你只想打印前 5 行,可以按以下方式告诉该工具:
head -n 5 file1.txt

Q3. 如何将输出限制为指定的字节数?
除了行数,你还可以将 head 命令的输出限制为特定的字节数。这可以使用 -c 命令行选项来实现。
head -c [N] [File-name]
例如,如果你想让 head 只显示前 25 个字节,可以按如下方式执行:
head -c 25 file1.txt

如你所见,该工具在输出中只显示了前 25 个字节。
请注意,[N] 可以带有倍数后缀: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。
Q4. 如何让 head 在输出中打印文件名?
如果出于某种原因,你希望 head 命令在输出中也打印文件名,可以使用 -v 命令行选项来实现。
head -v [file-name]
下面是一个示例:

如你所见,输出中显示了文件名 'file 1'。
Q5. 如何让 NUL 作为行分隔符,而非换行符?
默认情况下,head 命令的输出以换行符作为分隔符。但也支持使用 NUL 作为分隔符的选项。选项 -z 或 --zero-terminated 可以让你做到这一点。
head -z [file-name]
结论
想必大多数人都同意,head 是一个易于理解和使用的简单命令,意味着它的学习曲线很低。它提供的功能(就命令行选项而言)也很有限,而我们已经几乎涵盖全部。所以不妨试试这些选项,完成后再查阅该命令的 man 手册页以了解更多信息。