head命令

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是查看文件内容的高效方法,因为它只读取文件的开头部分