做什么

输出文件的后 N 行。tail -f 是排查日志的灵魂命令

常用参数

参数 含义
-n N 后 N 行
-n +N 从第 N 行开始到末尾
-c N 后 N 字节
-f 跟随追加(实时输出新内容)
-F -f 但文件被轮转 / 重建也跟上
-s N 检查间隔 N 秒(配 -f)
-q 多文件时不显示文件名

实战

tail file.txt                  # 后 10 行
tail -n 50 access.log          # 后 50 行
tail -c 200 file.txt           # 后 200 字节
tail -n +100 file.txt          # 从第 100 行起到末尾

# 实时跟踪(关键!)
tail -f /var/log/syslog
tail -f /var/log/nginx/access.log

# 文件可能被 logrotate 轮转——用 -F 不丢
tail -F /var/log/app.log

# 同时跟多个文件
tail -f /var/log/{syslog,auth.log}

# 配 grep
tail -f app.log | grep ERROR

跟踪日志的标准姿势

# 1. 看最近 100 行
tail -n 100 app.log

# 2. 持续看新增 + 过滤错误
tail -F app.log | grep -i 'error\|warn'

# 3. 看启动后某个时间起的
tail -F /var/log/journal/... | awk '/2026-05-09 10/'

退出

Ctrl+C 退出 tail -f

  • -f vs -F:被 logrotate 重建文件时 -f 会卡死(跟着已删的 inode),-F 会重新打开
  • grep 配 tail -f 要加 --line-buffered,否则可能输出迟:
    tail -F app.log | grep --line-buffered ERROR