一、概述
head 是 Linux 系统中一个核心的文本处理命令,用于输出文件的开头部分。默认情况下,它会显示每个文件的前 10 行内容。它特别适合在不打开完整大文件的情况下快速预览日志、配置文件或 CSV 数据的内容。
基本语法:
bash
head [选项]... [文件]...
核心特点:
- 处理大文件时无需加载全部内容,效率极高
- 支持同时处理多个文件
- 可与管道完美集成,承接其他命令的输出
- 如果文件行数少于指定数量,则打印整个文件
二、核心选项详解
| 选项 | 长选项 | 功能说明 | 示例 |
|---|---|---|---|
| -n NUM | --lines=NUM | 显示前 NUM 行(默认 10 行) | head -n 20 file.log |
| -c NUM | --bytes=NUM | 显示前 NUM 个字节 | head -c 1024 binary.bin |
| -q | --quiet / --silent | 多文件时不显示文件名头 | head -q file1 file2 |
| -v | --verbose | 始终显示文件名头 | head -v *.txt |
| -z | --zero-terminated | 以 NUL 作为行分隔符(而非换行符) | head -z file.txt |
| --help | --- | 显示帮助信息 | head --help |
| --version | --- | 显示版本信息 | head --version |
特殊用法:使用 - 前缀排除末尾内容
在 -n 或 -c 的参数值前加上 -,head 会输出除末尾指定行数****/ 字节数之外的所有内容 :
bash
#显示除了最后5行之外的所有内容
head -n -5 file.txt
#显示除了最后100字节之外的所有内容
head -c -100 file.bin
NUM 后缀(乘数单位)
NUM 后可以加上乘数后缀,便于指定较大或较小的数据量:
| 后缀 | 含义 | 示例 |
|---|---|---|
| b | 512 字节 | head -c 1b file |
| K | 1024 字节(KiB) | head -c 10K file |
| M | 1024² 字节(MiB) | head -c 1M file |
| G | 1024³ 字节(GiB) | head -c 2G file |
| kB | 1000 字节 | head -c 10kB file |
| MB | 1000² 字节 | head -c 1MB file |
三、高级应用技巧与示例
1. 基本用法
bash
#默认显示前10行
head /var/log/syslog
#显示前5行(两种写法均可)
head -n 5 data.csv
head -5 data.csv
#显示前100个字节
head -c 100 binary.dat
#指定行数+单位后缀
head -n 1M hugefile.txt
2. 处理多个文件
bash
#同时查看两个文件的前10行,默认显示文件名头
head auth.log app.log
#显示前4行,静默模式(不显示文件名)
head -q -n 4 file1.txt file2.txt
#强制显示文件名头
head -v *.conf
输出效果示例:
text
==> auth.log <==
...
==> app.log <==
...