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 可截取中间段。