journalctl 命令全解析:从新手入门到高手进阶

作为一个常年跟 Linux 系统打交道的运维从业者,从最开始连journalctl是什么都不知道,到现在能用它快速定位系统问题,踩过不少坑,也总结了很多实用技巧。今天就以个人经验分享的方式,把journalctl的用法、技巧、避坑点一次性讲透,不管是新手入门,还是老手进阶,都能直接套用,简单好懂、实用性拉满。

journalctl查看系统日志

一、先搞懂:journalctl 到底是什么?(新手必看)

很多新手刚接触 Linux,看到journalctl就头疼,其实它特别好理解 ——它是 Linux 系统自带的 “日志管理工具” ,专门用来查看、筛选、导出系统中所有的日志(比如服务启动、报错、进程运行、系统事件等),替代了传统的/var/log日志文件查看方式,更高效、更集中。

简单说:不管是系统崩溃、服务启动失败,还是软件报错(比如之前调试 Fcitx 输入法遇到的问题),只要用journalctl,就能找到问题根源,不用再一个个翻日志文件,这也是高手排查问题的核心技巧。

和传统日志查看相比,它的优势很明显:不用记复杂的日志文件路径,不用手动筛选内容,一条命令就能精准定位所需日志,新手也能快速上手。

二、新手必会:3 个基础操作(复制就能用)

这 3 个操作是日常最常用的,每天排查问题都会用到,记熟就能应对 80% 的场景,不用记复杂命令。

1. 查看所有系统日志(最基础)

journalctl

journalctl -xe              #跳到最后日志片断

执行后会进入日志浏览模式,按空格翻页、上下键滚动查看,按q退出,适合快速浏览系统整体日志情况(比如刚启动 Fcitx 失败,想看看哪里报错)。

2. 实时查看日志(排查实时报错)

和之前调试输入法时用的实时监控逻辑一样,适合查看服务启动、软件运行时的实时报错,比如调试 Fcitx 启动失败的问题:

journalctl -f

Ctrl+C就能停止实时刷新,新手排查实时报错(比如输入法启动失败),用这个命令最方便。

3. 查看指定服务的日志(高频操作)

比如我们之前调试 Fcitx 输入法,想查看 Fcitx 相关的所有日志,直接指定服务名即可,不用翻海量日志:

# 查看Fcitx相关日志(示例)
journalctl -u fcitx
# 查看nginx服务日志(其他服务同理,替换nginx即可)
journalctl -u nginx

经验提醒:如果看不到日志,记得加sudo(系统核心服务日志需要管理员权限),比如sudo journalctl -u fcitx

三、高手进阶:4 个实用筛选技巧(效率翻倍)

新手可能觉得journalctl日志太多,不好找重点,这 4 个筛选技巧,是我平时排查问题的 “神器”,学会就能快速找到自己要的日志,不用翻来翻去。

1. 按时间筛选(精准定位某段时间的日志)

比如想查看今天、最近 1 小时、某一具体时间段的日志(比如刚才调试输入法时的报错),直接套用:

# 查看今天的所有日志
journalctl --since today
# 查看最近1小时的日志(排查刚出现的报错)
journalctl --since "1 hour ago"
# 查看具体时间段(比如今天14点到16点,适合排查特定操作的报错)
journalctl --since "14:00" --until "16:00"

2. 按关键词筛选(快速找报错)

遇到报错(比如 “failed”“error”),不用翻全部日志,直接搜索关键词,瞬间定位问题:

# 查找包含“fcitx”和“failed”的日志(排查输入法启动失败)
journalctl -g "fcitx" -g "failed"
# 查找所有报错日志(包含error、failed)
journalctl -g "error\|failed"

小技巧:关键词区分大小写,想忽略大小写,可加-i,比如journalctl -gi "fcitx"

3. 按用户 / 进程筛选(精准定位操作日志)

如果想查看自己操作产生的日志,或者某个进程的运行日志,用这两个命令:

# 查看指定用户(UID=1000,普通用户默认UID)的日志
journalctl _UID=1000
# 查看指定进程(比如Fcitx进程)的日志
journalctl _PID=1234(替换成实际进程ID)

4. 日志导出(方便分享、存档)

有时候需要把日志发给别人帮忙排查,或者存档,直接导出为文件,不用手动复制:

# 导出Fcitx相关日志到文件(方便后续查看)
journalctl -u fcitx > fcitx日志.txt
# 导出最近1小时的报错日志
journalctl --since "1 hour ago" -g "error" > 报错日志.txt

四、避坑指南:新手常踩的 3 个坑(个人血的教训)

  1. 忘记加sudo:查看系统核心服务(比如 Fcitx、nginx)的日志时,没加sudo,导致看不到完整日志,提示 “权限不足”,记得前面加sudo
  2. 混淆 “服务名”:比如想查看 Fcitx 日志,却输成journalctl -u fcitx-service(实际服务名是 fcitx),导致查不到日志,先确认服务名(用systemctl list-unit-files | grep fcitx查看)。
  3. 实时日志退出错误:执行journalctl -f后,直接关闭终端,会导致日志进程残留,下次启动可能报错,记得用Ctrl+C正常退出。

五、补充实用操作(新手必记)

  1. 查看日志大小:journalctl --disk-usage,如果日志太大,可清理:journalctl --vacuum-size=100M(保留 100M 日志)。
  2. 查看日志详情(包含时间、进程、用户):journalctl -o verbose,适合深度排查问题。
  3. 过滤指定级别日志(只看报错):journalctl -p err(只显示错误级别日志,快速定位问题)。

六、总结(新手速记)

其实journalctl不用记太多复杂命令,掌握核心 3 点就够日常使用:

  1. 基础查看:journalctl(浏览所有日志)
  2. 实时监控:journalctl -f(排查实时报错)
  3. 精准筛选:journalctl -u 服务名 -g 关键词(比如journalctl -u fcitx -g "failed"

平时排查问题(比如 Fcitx 启动失败、软件报错),用这 3 个命令就能快速找到问题根源,比一个个翻日志文件高效太多。新手建议先从基础操作练起,练 2-3 次就能熟练掌握,慢慢就能像高手一样,用journalctl快速排查所有系统日志问题~

本文首发于 58Linux技术博客,专注Ubuntu桌面使用、Linux服务器运维与网站搭建实战。
       本系列的一部分

Linux服务器

Post 21 of 21

发表评论

粤ICP备10052831号 | © 2026 58Linux 技术笔记. All Rights Reserved. | 联系我们 | 关于本站
本站内容开放共享,仅供学习交流 | 专注 Ubuntu & Linux 实战教程
Built with GeneratePress