head和tail命令可高效查看文件首尾内容:head默认显示前10行,支持-n、-c、-n -k等选项;tail默认显示末10行,支持-n、-n +k、-f/-f实时监控;中间段落需组合使用sed、head、tail;grep配合-a/-b/-c可查看关键词上下文。

直接用 head 和 tail 命令就行,不用打开整个文件,速度快、效率高。
查看前几行:用 head
默认显示文件开头 10 行,适合快速确认配置文件结构、日志启动信息或 CSV 表头。
- head filename:显示前 10 行
- head -n 5 filename:显示前 5 行(推荐显式写 -n)
- head -c 1024 filename:显示前 1024 字节(适合看二进制或超长行开头)
- head -n -2 filename:排除最后 2 行,输出其余所有内容
查看后几行:用 tail
默认显示末尾 10 行,常用于检查程序崩溃前的输出或最新日志条目。
- tail filename:显示最后 10 行
- tail -n 20 filename:显示最后 20 行
- tail -n +100 filename:从第 100 行开始输出到结尾(跳过前 99 行)
- tail -f /var/log/syslog:实时追加显示新增内容,按 Ctrl+C 退出
- tail -F /var/log/messages:比 -f 更可靠,支持日志轮转后自动切换新文件
查中间某段内容
单独命令做不到,但组合使用很灵活:
- 显示第 300 行到第 310 行:sed -n '300,310p' filename
- 显示从第 500 行起的 10 行:tail -n +500 filename | head -n 10
- 显示前 100 行中倒数 10 行:head -n 100 filename | tail -n 10
配合 grep 查关键词附近内容
不只是首尾,有时要围绕匹配行看上下文:
- grep -A 3 "error" app.log:每处匹配行后加 3 行
- grep -B 2 "timeout" net.log:每处匹配行前加 2 行
- grep -C 5 "panic" kernel.log:每处匹配行前后各 5 行(共最多 11 行)
- 结果太多时可加管道:grep -C 10 "OOM" dmesg.log | less -N











