head 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,聚焦
head——文件与目录命令族(见文件与目录命令族)/ 文本处理(见文本处理命令族)共有。它和 tail 是"看局部"的搭档。
head 输出文件的前几行(默认 10 行)。它解决的是"文件太大不想全看、只想瞄眼开头"的需求——看表头、看格式、看最新追加前的内容,都靠它。
一、基本用法
head file # 前 10 行
head -n 20 file # 前 20 行
head -n -5 file # 除了最后 5 行之外的全部(去掉末尾)
head -c 100 file # 前 100 字节
-n N取前 N 行;-n -N(负数)是"去掉末尾 N 行、取其余"——少为人知但好用。-c按字节取,看二进制文件头或定长前缀用。管道里... | head也是截前几行。
二、管道里截头部
ps aux | head -5 # 进程列表前 5 行(含表头)
cat access.log | head -20 # 日志前 20 行
sort file | uniq -c | sort -rn | head -10 # 频率 Top 10(见 [sort/uniq](/linux/cmd/sort.md))经典组合:
统计流水线 | head取头部结果。Top N 榜单几乎都是... | sort -rn | head -N。配合 ps 看最耗资源的几个进程、配合日志看开头若干条。
三、和 tail 配合看中段
# 看第 11~30 行(head 取前 30,再 tail 取后 20)
head -n 30 file | tail -n 20
# 或用 sed(见 [sed](/linux/cmd/sed.md))
sed -n '11,30p' file想看文件中间某段,
head | tail组合或sed -n都行。大文件别用 cat 全打印再翻,head/tail 按需取片段才高效。
四、实战:快速预览文件格式
head -n 1 data.csv # 看表头字段
head -n 5 access.log # 看日志一行长啥样(确定分隔/字段位置)
head -c 512 binary.bin # 看二进制文件头魔数处理陌生文件前,先
head看一眼结构——CSV 的表头、日志的字段布局、二进制文件的魔数(magic number,文件类型标识)。确认了格式再写解析命令(awk/cut 取列),避免凭空猜。
五、head vs tail
| 命令 | 看哪 | 常用 |
|---|---|---|
head | 开头 | 表头、格式、前 N 行 |
| tail | 结尾 | 最新日志、-f 实时跟(见 tail) |
两者互补:head 看历史开头、tail 看最新追加。
tail -f实时监控日志是 head 做不到的。一个大文件"只看头尾不看中间",head + tail 组合覆盖 90% 预览需求。
一句话总结
head = 看文件/流的开头:默认前 10 行、-n N 取前 N、-n -N 去尾留前、-c 按字节;管道里 ... | head 截头部,Top N 榜单靠 sort -rn | head;配合 tail 看中段、先 head 预览格式再写解析。与 tail 互补:head 看开头、tail 看最新。