在 Linux 系统中,查看日志是系统运维与故障排查的核心操作。最常用的命令包括 tail、head、cat、less、more、grep、journalctl 以及 dmesg 等,具体选择取决于日志文件的类型、大小以及需要查看的时间范围。

对于实时跟踪日志输出,最典型的是 tail -f 命令。例如 tail -f /var/log/messages 会持续显示新增的日志内容,适合监控服务运行状态。若只需查看最后 N 行,可使用 tail -n 100 /var/log/syslog。与之对应,head -n 100 用于查看日志文件的开头部分。
当日志文件较大时,建议使用 less 或 more 进行分页浏览。less /var/log/nginx/access.log 支持上下翻页、按 / 关键字搜索、按 G 跳转到文件末尾,非常适合交互式阅读。而 cat 命令适合快速输出整个小文件,但通常需要配合 grep 过滤关键内容,例如 grep "error" /var/log/messages。
针对现代 Linux 发行版普遍采用的 systemd 系统,journalctl 是查看日志的专业工具。使用 journalctl -u nginx.service 可查看指定服务的日志;journalctl -k 查看内核日志;journalctl --since "2025-01-01 10:00:00" --until "2025-01-01 11:00:00" 按时间范围过滤;journalctl -f 则实时跟踪 systemd 日志。
内核启动信息与硬件相关日志可通过 dmesg 查看,例如 dmesg | grep usb 可过滤 USB 设备信息。对于历史日志文件,通常位于 /var/log/ 目录下,常见文件包括 syslog、messages、auth.log、secure 以及各应用自己的日志文件(如 /var/log/nginx/error.log)。
综合运用管道组合是最专业的高效方式,例如 tail -n 1000 /var/log/error.log | grep -i "timeout" | less,先取最近 1000 行,再过滤出场超时内容,最后分页阅读。另外,wc -l 可统计日志行数,awk 可提取特定字段,sed 可执行文本替换或范围输出,这些命令常与日志查看配合使用。
需要注意的是,部分日志需要 root 权限才能读取,需使用 sudo。同时,为避免输出过载阻塞终端,建议优先采用 tail、grep、less 等可控命令,避免对超大文件直接执行 cat 全文输出。

查看详情

查看详情