026 tail命令
命令说明
tail 用于输出文件末尾若干行(默认后 10 行),配合 -f 可实时跟踪日志追加内容,是运维查看日志最常用的命令。
语法
tail [选项]... [文件]...
常用参数
| 参数 | 说明 |
|---|---|
| -n 行数 | 指定输出末尾 N 行,如 tail -n 100 file |
| -f | 跟踪文件末尾,实时输出新增内容(最常用) |
| -F | 跟踪并按文件名轮转,日志切割后仍能继续跟踪 |
| -c 字节数 | 输出末尾 N 个字节 |
| -n +N | 从第 N 行开始输出到结尾 |
| -q | 多文件时不打印文件名 |
| --pid=PID | 配合 -f,指定进程结束后退出跟踪 |
使用示例
$ tail /var/log/messages
显示末尾 10 行
$ tail -n 50 app.log
显示末尾 50 行
$ tail -f app.log
实时跟踪日志新增(Ctrl+C 退出)
$ tail -F access.log
跟踪并在日志轮转后自动重开
$ tail -n +100 big.log
从第 100 行开始输出到结尾
$ tail -c 1024 file
显示末尾 1024 字节
$ tail -f app.log | grep ERROR
实时过滤错误日志
$ tail -n 20 a.log b.log
分别显示两个文件末尾 20 行
实用技巧
- -f 与 -F:-f 按文件描述符跟踪,日志被切割(mv+新建)后会停止;-F 按文件名跟踪,轮转后自动重开,生产环境用 -F 更稳。
- 实时跟踪 + 关键字过滤:tail -f log | grep --line-buffered "ERROR",避免 grep 缓冲导致延迟。
- 跟踪多个日志:tail -f *.log 或 tail -f a.log b.log。
- 只看最新一行:tail -n 1 file;配合 head 可截取中间段。