tail
是 Linux/Unix 系统中一个常用的命令行工具,用于查看文件的末尾内容(默认显示最后10行)。它特别适合监控日志文件等动态变化的文件。以下是详细解析:
tail [选项] 文件名
选项 | 功能描述 |
---|---|
-n <行数> |
显示文件末尾的指定行数(例如 -n 5 显示最后5行) |
-f |
实时跟踪文件变化(常用于监控日志,按 Ctrl+C 退出) |
-F |
类似 -f ,但会跟踪文件重命名/重建(适合日志轮转场景) |
-c <字节> |
显示末尾指定字节数(例如 -c 100 显示最后100字节) |
-q |
不显示文件名标题(多文件操作时) |
-v |
始终显示文件名标题 |
--pid=PID |
与 -f 共用,当指定进程结束时退出跟踪 |
tail file.log # 显示最后10行
tail -n 20 file.log # 显示最后20行
tail -c 50 file.log # 显示最后50字节
tail -f /var/log/syslog # 动态跟踪日志更新(常用运维场景)
tail -F /var/log/nginx/access.log # 即使日志轮转也能跟踪
ps aux | tail -n 5 # 显示进程列表的最后5行
dmesg | tail -n 10 # 查看内核日志的最后10行
tail -n 5 file1.log file2.log # 同时显示两个文件的最后5行
tail -n +10 file.log # 从第10行开始显示到文件结束
tail -f /var/log/app.log | grep "ERROR" # 实时过滤错误日志
timeout 30s tail -f /var/log/syslog # 30秒后自动退出跟踪
-f
可能失效(此时用 -F
更可靠)。tail
比 cat
更高效,因为它只读取末尾部分。查看完整选项说明:
man tail
tail --help
掌握 tail
能极大提升日志分析和故障排查效率,尤其在服务端运维和开发调试中必不可少。