head和tail是处理大型文件最轻量高效的方式,分别用于查看文件开头和结尾指定行数,支持自定义行数、跳过行、实时监控及管道组合截取中间段落。

直接用 head 看开头、tail 看结尾,是处理大型文件最轻量高效的方式——不加载全文,只读取指定行,秒出结果。
查看文件开头固定行数
head 默认输出前 10 行,适合快速确认文件格式、表头或初始日志。行数可自定义:
-
head -n 20 access.log:显示前 20 行 -
head -5 config.conf:简写形式,等同于-n 5 -
head -n -100 large.sql:跳过最后 100 行,显示其余全部(常用于剔除末尾临时注释或冗余数据)
查看文件结尾固定行数
tail 默认输出后 10 行,对排查最新错误、观察运行日志特别实用:
-
tail -n 50 app.log:显示最后 50 行 -
tail -20 error.txt:简写,等同于-n 20 -
tail -n +100 data.csv:从第 100 行开始输出到末尾(跳过头部说明或标题行)
实时监控日志变化
加 -f 选项让 tail 持续监听文件追加内容,适合调试或值守场景:
-
tail -f /var/log/syslog:实时滚动打印新日志 -
tail -f -n 20 nginx/access.log:先显示最近 20 行,再持续追加 - 按
Ctrl+C可随时退出监控
组合使用快速定位关键段落
单独 head/tail 不够时,配合管道能精准截取中间区域:
- 查第 100–150 行:
head -n 150 file.txt | tail -n 50 - 查倒数第 30 到倒数第 10 行:
tail -n 30 file.txt | head -n 20 - 带行号查看(便于定位):
cat -n file.txt | head -n 10或cat -n file.txt | tail -n 10
不复杂但容易忽略:大文件下避免用 cat 全量读取,head 和 tail 是真正的“按需取用”。











