文件查看编辑命令 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.txt
跟head -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
),它们也会算进字节数。
你还可以用单位后缀,比如 KB
、MB
等。例如,显示前 1KB:
head -c 1KB example.txt
这会输出文件的前 1024 字节内容。
5. 处理多个文件
head
可以一次处理多个文件,会按顺序显示每个文件的前几行。比如有两个文件 file1.txt
和 file2.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
输出会是一些不可读字符。建议用 xxd
或 od
配合 head
来查看二进制文件的开头:
xxd /bin/ls | head -n 5
这会以十六进制格式显示 /bin/ls
的前几行,更加可读。