在Linux系统中查看日志是系统管理和故障排查的重要操作,以下是三种最常用的日志查看命令及其典型应用场景:
tail - 查看日志尾部(实时监控)tail -n 20 /var/log/syslog # 查看文件末尾20行
tail -f /var/log/nginx/access.log # 实时追踪日志更新(Ctrl+C退出)
特点:
- 默认显示最后10行,通过-n指定行数。
- -f(follow)参数可实时监控日志追加内容,适合调试服务。
- 结合grep过滤关键信息:
bash
tail -f /var/log/syslog | grep "error"
less - 交互式分页查看less /var/log/auth.log # 分页查看日志(支持搜索/翻页)
操作快捷键:
- /keyword:向前搜索关键词(按n跳转到下一个匹配)
- ?keyword:向后搜索
- 空格:向下翻页,b向上翻页
- G:跳转到文件末尾,gg回到开头
- q:退出
优势:
- 适合大文件快速定位,避免cat一次性加载的卡顿问题。
journalctl - 查看systemd日志(现代Linux系统)journalctl -u nginx.service # 查看指定服务的日志
journalctl -f # 实时滚动日志(类似tail -f)
journalctl --since "2023-10-01" --until "1 hour ago" # 时间范围筛选
关键参数:
- -u:按服务单元过滤
- -p err:按日志级别(如err、warning)
- --disk-usage:查看日志占用的磁盘空间
bash
sed -n '/Oct 10 09:00:00/,/Oct 10 10:00:00/p' /var/log/syslogbash
grep -c "ERROR" /var/log/app.logbash
cat /var/log/*.log | grep "pattern"选择建议:
- 实时监控用 tail -f + grep
- 历史日志分析用 less + 搜索
- systemd服务日志用 journalctl
- 超大日志文件考虑先用 grep/awk 过滤再查看