Linux head 命令详细教程
head是 Linux 系统中用于查看文件前几行内容的基础命令。它无需加载整个文件,就能快速提取文件开头的部分内容,特别适合预览大文件或快速查看日志的最新记录。- 资料已经分类整理好:
https://pan.quark.cn/s/26d73f7dd8a7
一、基本语法
head [选项] [文件...]
- 核心功能:
- 默认显示文件的前 10 行内容。
- 可通过选项自定义显示行数或字节数。
- 支持同时处理多个文件(会显示每个文件的标题行)。
二、常用选项
| 选项 | 功能描述 |
|---|---|
-n 行数 | 指定显示的行数(如 -n 5 显示前 5 行) |
-c 字节数 | 指定显示的字节数(如 -c 100 显示前 100 字节) |
-q | 不显示文件名标题行(静默模式,适合脚本处理) |
-v | 强制显示文件名标题行(默认多个文件时才显示) |
--help | 显示帮助信息 |
--version | 显示版本信息 |
三、实际操作示例
1. 显示文件前 10 行(默认行为)
head large_file.txt # 显示 large_file.txt 的前 10 行
2. 自定义显示行数(-n 选项)
head -n 3 filename.txt # 显示前 3 行
head -5 filename.txt # 简写形式,效果同上
3. 显示文件前 N 字节(-c 选项)
head -c 200 log.txt # 显示 log.txt 的前 200 字节
4. 同时处理多个文件
head file1.txt file2.txt
输出示例:
==> file1.txt <==
line 1 of file1
line 2 of file1==> file2.txt <==
line 1 of file2
line 2 of file2
5. 静默模式(不显示文件名标题行)
head -q file1.txt file2.txt # 只显示文件内容,不显示 ==> 标题行
6. 结合管道使用
cat long_file.txt | head -n 5 # 等价于 head -n 5 long_file.txt
7. 负数参数(显示除最后 N 行外的所有内容)
head -n -2 filename.txt # 显示除最后 2 行外的所有内容
四、特殊场景与注意事项
1. 文件行数不足时
若文件行数少于指定的行数,head 会显示全部内容(不报错):
# 假设 test.txt 只有 3 行
head -n 5 test.txt # 实际只显示 3 行
2. 处理二进制文件
head 可用于查看二进制文件的前部分内容,但可能显示乱码:
head -c 50 binary_file # 显示二进制文件的前 50 字节
3. 性能优势
对于超大文件(如 GB 级日志),head 比 cat 更高效,因为它无需加载整个文件。
五、与其他命令对比
| 命令 | 功能 | 适用场景 |
|---|---|---|
head | 显示文件前 N 行 | 快速预览文件开头 |
tail | 显示文件后 N 行 | 查看日志最新记录 |
less | 分页查看文件,支持交互 | 深入浏览大文件 |
cat | 显示文件全部内容 | 小文件一次性查看 |
六、扩展应用场景
1. 查看日志文件的最新记录(结合 tail)
tail -n 100 app.log | head -n 10 # 查看日志最后 100 行中的前 10 行
2. 创建文件片段(通过重定向)
head -n 20 source.txt > snippet.txt # 提取源文件的前 20 行到新文件
3. 快速验证文件格式
head -n 1 csv_file.csv # 查看 CSV 文件的表头行
七、总结
head 是 Linux 中最简单但实用的文本处理工具之一,核心用法可总结为:
- 默认显示前 10 行:
head filename.txt - 自定义行数:
head -n 5 filename.txt - 结合管道和重定向:灵活处理各种场景。
在处理大文件或需要快速预览文件内容时,head 能显著提升效率。建议与 tail、grep 等命令配合使用,构建更复杂的文本处理流程。