Skip to main content

Linux 核心命令

文件查看编辑命令 head

head 命令是 Linux 中一个简单但超实用的工具,用来查看文件开头的几行内容。无论是快速瞥一眼文件内容,还是处理大文件时只看前几行,head 都能派上用场。

1. 基本用法:显示文件前 10 行

head 默认会输出文件的前 10 行内容。假设你有个文件 example.txt,内容是:

echo -e "Line 1\nLine 2\nLine 3\nLine 4\nLine 5\nLine 6\nLine 7\nLine 8\nLine 9\nLine 10\nLine 11\nLine 12" > example.txt

运行以下命令:

head example.txt

输出会是:

Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10

什么都不加,head 默认给你文件的前 10 行。

2. 指定显示行数:-n 参数

如果 10 行不够或太多,可以用 -n 参数指定想看的行数。比如,想看前 5 行:

head -n 5 example.txt

输出:

Line 1
Line 2
Line 3
Line 4
Line 5

-n 后面跟一个数字,表示显示前几行。如果想看前 3 行:

head -n 3 example.txt

输出:

Line 1
Line 2
Line 3
小提示:-n 也可以简写成 -。比如 head -5 example.txthead -n 5 example.txt 效果一样。

3. 显示除最后几行外的所有内容

有时候你想看文件开头的大部分内容,但跳过最后几行。可以用负数配合 -n 来实现。比如,显示除了最后 5 行外的所有内容:

head -n -5 example.txt

假设 example.txt 有 12 行,输出会是前 7 行:

Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7

4. 显示前几个字节:-c 参数

除了按行,head 还能按字节数来显示文件内容。用 -c 参数指定要显示的字节数。比如:

head -c 20 example.txt

假设 example.txt 的内容是纯文本,每个字符占 1 字节,输出可能是:

Line 1
Line 2
Line 3

这里显示了文件的前 20 个字节。注意,如果文件有换行符(\n),它们也会算进字节数。

你还可以用单位后缀,比如 KBMB 等。例如,显示前 1KB:

head -c 1KB example.txt

这会输出文件的前 1024 字节内容。

5. 处理多个文件

head 可以一次处理多个文件,会按顺序显示每个文件的前几行。比如有两个文件 file1.txtfile2.txt

echo -e "File1 Line 1\nFile1 Line 2\nFile1 Line 3" > file1.txt
echo -e "File2 Line 1\nFile2 Line 2\nFile2 Line 3" > file2.txt
head file1.txt file2.txt

输出会是:

==> file1.txt <==
File1 Line 1
File1 Line 2
File1 Line 3

==> file2.txt <==
File2 Line 1
File2 Line 2
File2 Line 3

每个文件的输出都会有个标题(==> 文件名 <==),方便区分。如果只想看某个文件的特定行数,可以结合 -n

head -n 2 file1.txt file2.txt

输出:

==> file1.txt <==
File1 Line 1
File1 Line 2

==> file2.txt <==
File2 Line 1
File2 Line 2

6. 去掉文件标题:-q 参数

如果你处理多个文件,但不想看到那些 ==> 文件名 <== 的标题,可以用 -q(quiet)参数:

head -q -n 2 file1.txt file2.txt

输出会变成:

File1 Line 1
File1 Line 2
File2 Line 1
File2 Line 2

这样输出更干净,适合脚本处理。

7. 强制显示文件标题:-v 参数

反过来,如果你处理单个文件,但想强制显示文件名标题,可以用 -v(verbose)参数:

head -v -n 2 file1.txt

输出:

==> file1.txt <==
File1 Line 1
File1 Line 2

这在脚本中调试时挺有用,能明确知道输出是哪个文件的。

8. 从标准输入读取

head 不一定非得读文件,也可以从管道(标准输入)接收数据。比如,结合 cat 和管道:

cat example.txt | head -n 3

输出:

Line 1
Line 2
Line 3

这在处理命令输出时特别有用,比如查看 ls -l 的前几行:

ls -l | head -n 3

会显示当前目录下前 3 个文件的详细信息。

9. 结合tail命令常见用法

head 经常跟其他命令一起用,比如:

  • tail 组合:想看文件的特定行范围?先用 head 取前半部分,再用 tail 取后半部分。比如,取第 5 到第 10 行:
head -n 10 example.txt | tail -n 6

输出:

Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
  • 查看日志文件:快速看最近的日志内容,比如:
head -n 20 /var/log/syslog
  • 检查大文件:大文件用 less 打开可能慢,用 head 快速看开头:
head -n 50 bigfile.log

10. 特殊情况:二进制文件

head 也能处理二进制文件,但输出可能是一堆乱码,因为它会尝试把内容当文本显示。比如:

head /bin/ls

输出会是一些不可读字符。建议用 xxdod 配合 head 来查看二进制文件的开头:

xxd /bin/ls | head -n 5

这会以十六进制格式显示 /bin/ls 的前几行,更加可读。