head 命令 #
head
命令用于显示文件的开头部分。默认情况下,它显示文件的前 10 行,但可以通过选项指定显示的行数或字节数。
语法 #
head [选项] [文件...]
常用选项 #
选项 | 描述 |
---|---|
-n, --lines=[-]数字 |
显示前 N 行,如果数字前有减号,则显示除了最后 N 行之外的所有行 |
-c, --bytes=[-]数字 |
显示前 N 个字节,如果数字前有减号,则显示除了最后 N 个字节之外的所有内容 |
-q, --quiet, --silent |
不显示文件名标头 |
-v, --verbose |
总是显示文件名标头 |
-z, --zero-terminated |
以 NUL 字符而不是换行符分隔行 |
常见用法 #
1. 显示文件的前 10 行(默认) #
head file.txt
2. 显示文件的前 N 行 #
head -n 5 file.txt
或
head -5 file.txt
3. 显示文件的前 N 个字节 #
head -c 100 file.txt
4. 显示除了最后 N 行之外的所有行 #
head -n -5 file.txt
这将显示文件中除了最后 5 行之外的所有行。
5. 显示除了最后 N 个字节之外的所有内容 #
head -c -100 file.txt
6. 显示多个文件的开头部分 #
head file1.txt file2.txt file3.txt
输出示例:
==> file1.txt <==
This is line 1 of file1
This is line 2 of file1
...
==> file2.txt <==
This is line 1 of file2
This is line 2 of file2
...
==> file3.txt <==
This is line 1 of file3
This is line 2 of file3
...
7. 不显示文件名标头 #
head -q file1.txt file2.txt
8. 总是显示文件名标头(即使只有一个文件) #
head -v file.txt
输出示例:
==> file.txt <==
This is line 1
This is line 2
...
9. 从标准输入读取 #
cat file.txt | head -n 5
或
echo -e "line1\nline2\nline3\nline4\nline5\nline6" | head -n 3
与其他命令结合使用 #
1. 查看大文件的开头部分 #
head -n 20 large_file.txt
2. 查看压缩文件的开头部分 #
zcat file.gz | head
3. 查看多个文件的前几行 #
head -n 2 *.txt
4. 查看目录中所有文件的前几行 #
find . -type f -name "*.log" -exec head -n 5 {} \;
5. 结合 sort 命令查看排序后的前几行 #
sort file.txt | head
6. 查看命令输出的前几行 #
ls -la | head -n 5
实用示例 #
1. 查看日志文件的开头 #
head /var/log/syslog
2. 查看配置文件的前几行 #
head -n 20 /etc/ssh/sshd_config
3. 查看多个日志文件的开头 #
head /var/log/*.log
4. 查看大型 CSV 文件的标题和前几行数据 #
head -n 5 data.csv
5. 查看二进制文件的前几个字节 #
head -c 20 binary_file | hexdump -C
6. 查看最近修改的文件的开头 #
ls -t | head -n 1 | xargs head
7. 查看进程列表的前几行 #
ps aux | head -n 5
提示 #
head
命令默认显示文件的前 10 行- 使用
-n
选项可以指定显示的行数 - 使用
-c
选项可以指定显示的字节数 - 在数字前加减号(如
-n -5
)可以显示除了最后 N 行之外的所有行 - 处理多个文件时,
head
会为每个文件添加标头 - 使用
-q
选项可以禁止显示文件名标头 - 使用
-v
选项可以强制显示文件名标头,即使只有一个文件 head
命令通常与管道(|
)结合使用,处理其他命令的输出- 在脚本中,
head
常用于提取文件的标题行或前几行数据 - 对于非常大的文件,
head
是查看文件内容的高效方法,因为它只读取文件的开头部分