Linux 中查询日志的常用命令有很多,下面整理了一份详细且实用的日志查看和分析命令合集,帮助你快速定位问题和监控系统状态。


1. cat — 查看整个日志文件内容

cat /var/log/syslog

适合小文件,直接输出所有内容到终端,不分页。


2. less / more — 分页浏览日志文件

less /var/log/syslog

或者

more /var/log/syslog

支持分页滚动,方便阅读大文件,less 支持向前和向后翻页,推荐使用。


3. tail — 查看日志文件的尾部内容(实时监控)

tail -n 100 /var/log/syslog

查看最后100行日志。

tail -f /var/log/syslog

实时输出新增日志(适合实时监控日志更新)。


4. head — 查看日志文件的开头部分

head -n 50 /var/log/syslog

显示日志文件开头的50行。


5. grep — 搜索匹配关键词的日志行

grep "error" /var/log/syslog

查找包含“error”的日志行。

结合管道更强大:

tail -f /var/log/syslog | grep "failed"

实时过滤包含“failed”的日志输出。


6. awk / sed — 按需提取和处理日志字段

示例:提取时间字段和错误信息

awk '/error/ {print $1, $2, $3, $0}' /var/log/syslog

7. journalctl — 查看 systemd 管理的日志(现代 Linux 发行版)

查看所有日志:

journalctl

查看最近启动日志:

journalctl -b

实时跟踪日志:

journalctl -f

查看指定服务日志:

journalctl -u nginx.service

查看某个时间段日志:

journalctl --since "2025-06-01" --until "2025-06-15"

8. dmesg — 查看内核缓冲区日志(启动和硬件相关日志)

dmesg | less

实时查看内核信息:

dmesg --follow

9. find + xargs / grep — 批量查找日志内容

例如查找所有日志文件中包含“error”的行:

find /var/log -type f -name "*.log" | xargs grep "error"

10. 日志文件路径常见位置

  • /var/log/syslog — 系统日志(Debian系)
  • /var/log/messages — 系统日志(RedHat系)
  • /var/log/auth.log — 认证相关日志
  • /var/log/kern.log — 内核日志
  • /var/log/dpkg.log — Debian软件包管理日志
  • /var/log/nginx/access.log 和 /var/log/nginx/error.log — Nginx日志

小技巧:

  • 配合 grep -i 忽略大小写。
  • 使用 grep -A 5 查看匹配行后5行内容,方便跟踪上下文。
  • 结合 tail -n 1000 限制搜索范围,避免搜索太多旧日志。

如果你需要,我可以帮你写一些日志分析脚本或者监控日志变化的自动化方案。需要吗?