tail和head命令用于查看文件首尾内容,默认显示10行,可用-n指定行数,如head -n 5 filename查看前5行,tail -n 15 filename查看后15行;支持简写形式head -5或tail -15;tail -f可实时监控日志更新,-F能自动处理日志轮转;常与grep、awk等配合使用,如grep "error" logfile | tail -10获取最近10条错误日志;结合管道可实现复杂操作,如ls -t | head -5 | xargs查看最新5个文件的首行;用tail -n +4跳过前3行,head与tail组合提取第20到30行内容。
在Linux命令行中,tail 和 head 是查看文件内容的常用工具,特别适合处理大文件或实时日志。它们默认显示文件的开头或结尾部分,但配合参数使用能实现更强大的功能。
查看文件的前几行或后几行
head 默认显示文件前10行,tail 显示后10行。通过 -n 参数可自定义行数。
- 查看文件前5行:
head -n 5 filename
- 查看文件最后15行:
tail -n 15 filename
- 简写形式(省略 -n):
head -5 filename
或
tail -15 filename
实时监控日志文件变化
使用 -f 选项可以让 tail 持续输出新增内容,非常适合跟踪正在写入的日志文件。
- 实时查看日志更新:
tail -f /var/log/syslog
- 若日志被轮转(log rotation),可用 -F 增强模式自动重新打开文件:
tail -F /var/log/app.log
结合管道与其他命令协作
这两个命令常与 grep、awk、sort 等搭配使用,快速提取关键信息。
- 查看最近10条包含“error”的日志:
grep "error" logfile | tail -10
- 查看大文件前100行并统计单词数:
head -100 largefile.txt | wc -w
- 列出按修改时间排序的最新5个文件,并查看每个文件的首行:
ls -t | head -5 | xargs -I {} sh -c 'echo "--- {} ---"; head -1 {}'
跳过头部或截取特定范围内容
有时需要排除文件开头若干行,比如去掉表头后再处理数据。
- 跳过前3行,显示其余内容:
tail -n +4 filename
(+4 表示从第4行开始)
- 提取第20到30行内容:
head -30 filename | tail -11
(先取前30行,再取其中后11行)
基本上就这些。掌握这些技巧后,无论是分析日志、处理数据还是脚本编写,都能更高效地利用 head 和 tail 完成任务。不复杂但容易忽略细节,比如 +n 的用法和 -F 的稳定性优势。熟练运用,事半功倍。