电脑突然卡顿?风扇狂转?某个服务明明启动了却用不了?
在 Windows 下,你可能会习惯性地按下 Ctrl+Alt+Del 呼出任务管理器,或者去翻翻事件查看器。
到了 Linux (Ubuntu) 环境下,面对黑乎乎的终端,是不是感觉两眼一抹黑,只想执行 reboot 大法?
别急!其实 Linux 提供了非常强大且专业的工具来帮你“把脉”系统。今天我们就来介绍 4 位系统管理的“御用神医”:top、htop、systemctl 和 journalctl。掌握了它们,你就能对系统的运行状态了如指掌。
1. top:老牌经典的“听诊器”
top 是 Linux 系统自带的性能分析工具,几乎所有的 Linux 发行版都预装了它。如果你进到一个陌生的服务器,它是你最可靠的伙伴。
如何使用
在终端输入:
top
界面解读
界面虽然看起来有点“硬核”,但其实逻辑很清晰:
- • load average:系统负载(1分钟、5分钟、15分钟)。如果这个数字超过了你的 CPU 核心数,说明系统压力很大。
- • Tasks:进程总数,有多少在运行,有多少在休眠。
- • %Cpu(s):
us 是用户占用,sy 是系统占用,id 是空闲。id 太低说明 CPU 忙不过来了。
- • %CPU / %MEM:占用了多少 CPU 和内存。
常用快捷键
- •
P:按 CPU 使用率排序(找吃 CPU 的元凶)。
2. htop:颜值与实力并存的“彩超”
如果说 top 是听诊器,那 htop 就是全彩显示的 B 超/CT。它在 top 的基础上,增加了颜色显示、鼠标支持和更直观的图形条,强烈推荐新手安装使用。
安装与使用
Ubuntu 默认可能没装,先装上:
sudo apt install htop
运行:
htop
为什么它更好用?
- 1. 直观的进度条:CPU、内存、Swap 使用情况一目了然,不需要去读枯燥的数字。
- 2. 支持鼠标:你可以直接用鼠标点击列表头进行排序,或者点击进程选中它。
- 3. 树状视图:按
F5 可以看到进程的树状结构,清晰地看出是谁调用了谁。 - 4. 操作简单:底部直接列出了功能键,比如
F9 直接杀进程,不用背快捷键。
3. systemctl:掌管服务生杀大权的“大管家”
在 Linux 中,很多软件(如 Web 服务器、数据库、Docker)都是以“服务 (Service)”的形式在后台运行的。管理这些服务,现在最通用的标准就是 systemd,而 systemctl 就是它的控制命令。
核心命令三连
- • 启动/停止/重启服务:
# 启动 Nginxsudo systemctl start nginx# 停止 Nginxsudo systemctl stop nginx# 重启 Nginx (修改配置后常用)sudo systemctl restart nginx
- • 查看服务状态(最常用):
sudo systemctl status nginx
这个命令会告诉你服务是 active (running) 还是 dead,如果是红色的 failed,它通常会在下方直接显示报错信息,非常有助于排错。
- • 开机自启:
# 让服务随系统启动sudo systemctl enable nginx# 禁止开机自启sudo systemctl disable nginx
4. journalctl:记录一切的“黑匣子”
服务启动失败了?系统莫名其妙报错?这时候就需要查看日志了。journalctl 是 systemd 的日志管理工具,它收集了内核、系统服务、应用的所有日志。
常用查日志姿势
- • 查看所有日志(不推荐,内容太多):
journalctl
- • 查看某个特定服务的日志(最实用):比如 Docker 启动失败了,想看看到底咋回事:
# -u 指定单元(unit/服务)sudo journalctl -u docker
- • 查看实时的最新日志(像看监控录像一样):加上
-f (follow) 参数,屏幕会滚动显示最新产生的日志,适合在调试时一边操作一边看反应。sudo journalctl -u nginx -f
- • 只看今天的日志:
journalctl --since today
- • 只看报错级别的日志:
# -p err (priority error)journalctl -p err
总结
- • 看实时负载:首选
htop,没有就用 top。 - • 查报错原因:
systemctl status 配合 journalctl -u 服务名。
掌握了这 4 个工具,你就拥有了透视 Linux 系统的能力,再也不用遇到问题就只会重启了!
互动话题:你在 Linux 运维或使用过程中,遇到过最难排查的“灵异事件”是什么?最后是怎么发现原因的?欢迎评论区分享!