在监控服务器时,您通常需要同时跟踪多个事项,例如磁盘使用情况、网络、CPU 温度等。虽然所有这些信息最好在仪表板界面中呈现,但许多有创造力的人已经在 CL I 中开发了临时仪表板,可以像使用图形用户界面一样显示有关系统的信息。
将能够使用ps、top、htop和atop,它们是一些最强大的命令行实用程序,可以深入了解系统行为。
每种工具都有其优势,系统管理员经常将它们结合起来以全面了解他们的系统
ps 命令
ps 命令是“进程状态”的缩写。它是 Linux 中用于查看活动进程信息的基本工具。
使用 ps 命令的基本语法是:
ps [options]
当不带任何选项运行时, ps 通常显示:
- 与当前终端会话相关的进程
- 进程 ID (PID)
- 终端类型(TTY)
- 使用的 CPU 时间
- 命令名称
$ ps ux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ben 2738708 0.0 0.0 21188 10440 ? Ss Aug06 0:00 /usr/lib/systemd/systemd --user
ben 2738711 0.0 0.0 21456 3292 ? S Aug06 0:00 (sd-pam)
ben 2738724 0.0 0.0 109144 5664 ? Ssl Aug06 0:00 /usr/bin/pipewire
ben 2738726 0.0 0.0 97736 4848 ? Ssl Aug06 0:00 /usr/bin/pipewire -c filter-chain.conf
ben 2738728 0.0 0.0 39136 2348 ? Ss Aug06 0:01 /snap/snapd-desktop-integration/315/usr/bin/snapd-desktop-integration
ben 2738730 0.0 0.0 404988 8888 ? Ssl Aug06 0:00 /usr/bin/wireplumber
ben 2738731 0.0 0.0 109396 6548 ? Ssl Aug06 0:00 /usr/bin/pipewire-pulse
ben 2738744 0.0 0.0 9492 4516 ? Ss Aug06 0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
ben 2738810 0.0 0.0 28284 5048 ? Ss Aug06 0:09 /usr/bin/jackdbus auto
ben 2738861 0.0 0.0 536560 5860 ? Ssl Aug06 0:00 /usr/libexec/xdg-document-portal
ben 2738865 0.0 0.0 309308 5304 ? Ssl Aug06 0:00 /usr/libexec/xdg-permission-store
ben 2738981 0.0 0.0 279192 4876 ? Sl Aug06 0:00 /snap/snapd-desktop-integration/315/usr/bin/snapd-desktop-integration
ben 3509142 0.0 0.0 15432 5560 ? S 08:51 0:04 sshd: ben@pts/0
ben 3509144 0.0 0.0 11384 5032 pts/0 Ss 08:51 0:00 -bash
ben 3833519 0.0 0.0 13616 4580 pts/0 R+ 18:53 0:00 ps ux
ben@ayd-server:~$
常用选项和标志
ps 命令会显示一些有用的信息,但您可以使用高级选项和标志来更改其默认行为。以下是一些可用的选项列表:
- -e 或 -A:显示所有进程
- -f:完整格式列表,提供更多详细信息
- -u 用户名:显示特定用户的进程
- -p pid:显示特定进程 ID 的信息
- –sort=[+|-]key:对输出进行排序。+ 表示升序,- 表示降序
- -o format:自定义输出格式
ps 命令用法示例
ps 命令非常灵活。你可以混合搭配上述标志来生成所需的输出。例如:
- 列出所有进程:
ps -e
- 所有进程的完整格式列表:
ps -ef
- 显示特定用户的进程:
ps -u username
- 按 CPU 使用率排序显示进程:
ps -eo pid,ppid, cmd,%cpu,%mem --sort=-%cpu
- 仅显示进程 ID:
ps -eo pid
top 命令
top 命令是一个实时系统监控工具,它提供 Linux 系统正在运行的进程的动态交互式视图。它显示系统摘要信息以及当前由 Linux 内核管理的进程或线程列表。
您可以通过在终端中执行以下操作来运行 top 命令:
top
此命令启动顶层界面,默认每3秒刷新一次。

了解顶部接口
顶部界面分为两个主要部分,分别呈现不同的信息。以下是这两个部分的简要概述:
- 摘要区域(上半部分):
- 系统时间和正常运行时间
- 登录用户数
- 平均负载(1、5 和 15 分钟平均值)
- 任务摘要(总计、正在运行、正在休眠、已停止、正在僵尸)
- CPU 使用情况细分(用户、系统、空闲等)
- 内存使用情况(总计、可用、已用、缓冲区/缓存)
- 交换使用情况
- 进程列表(下半部分):PID:进程 ID
- USER:拥有该进程的用户
- PR:优先级
- NI:物有所值
- VIRT:使用的虚拟内存
- RES:已使用的驻留内存
- SHR:共享内存
- S:进程状态
- %CPU:CPU 使用率
- %MEM:内存使用情况
- TIME+:CPU 总时间
- COMMAND:命令名称
top 命令还提供各种标志和选项,允许您自定义其行为和输出。以下是一些最有用的:
-b
(批处理模式):以批处理模式运行 top,这对于将输出发送到其他程序或文件很有用。-n
(迭代次数): 此参数指定退出顶部之前的迭代次数。它在脚本中或捕获特定数量的样本时很有用。-p
(监视特定 PID): 仅显示具有指定 PID 的进程。-u
(显示特定用户的进程): 仅显示指定用户拥有的进程。-H
(显示线程): 显示单个线程而不是进程。-o
(按字段排序):按特定字段(例如 CPU 使用率、内存使用率)对进程列表进行排序。例如:top -o %CPU- –
i
(忽略空闲进程):不显示空闲或僵尸进程。 -c
(显示命令行):显示每个进程的完整命令行,而不仅仅是命令名称。-d
(延迟时间): 设置更新之间的延迟时间(以秒为单位)。默认值为 3.0 秒。
这些标志可以组合起来以获得更具体的输出。例如,以下命令将以批处理模式运行 top 五次迭代,按内存使用情况排序,仅显示根进程,并将输出发送到文件:
top -b -n 5 -o %MEM -u root > top_output.txt
记住,在 top 运行时,你还可以通过按下相应的键来交互使用其中的许多选项。例如,按“
h ”切换线程视图,“
i ”忽略空闲进程,“
c ”切换命令行显示。
htop 命令
htop 是 Unix 系统上的一个交互式进程查看器,旨在作为 top 命令的增强替代品。与其他进程查看器相比,它具有以下几个优势:
- 用户友好界面: 色彩丰富,比顶部更直观。
- 鼠标支持: 可以使用鼠标进行选择并与终端交互。
- 树状视图: 可视化进程关系。
- 更简单的进程管理: 无需输入 PID 即可终止进程。
- 内置计量器: 包括内置 CPU、内存和交换使用情况计量器。
安装 htop
大多数系统通常不会预装 htop。请在 Ubuntu/Debian 系统上运行以下命令,并以必要的权限进行安装:
sudo apt update && sudo apt install htop
安装后,您只需在终端中输入 htop 即可启动 htop。

使用 htop:界面和导航
htop 界面主要分为两个部分:
- 标题(顶部)部分显示系统范围的统计数据和仪表
- CPU 使用率(每个核心和整体)
- 内存使用情况
- 交换使用情况
- 任务、平均负载、正常运行时间
- 进程列表(底部)显示每个进程的详细信息
乍一看,htop 的界面可能让人眼花缭乱,但一旦你学会了如何操作,只需按几下键就能获得有关系统的详细信息。让我们看看一些键盘操作以及它们在 htop 界面上的作用:
- 箭头、Page Up、Page Down、Home、End:滚动进程列表。
- 空格:标记或取消标记进程。
- U——取消标记所有进程(删除使用空格键添加的所有标记)。
- s——跟踪进程系统调用。
- F1 – 帮助
- F2 – 设置
- F3 – 搜索
- F4 – 过滤:输入部分进程命令行,仅显示名称匹配的进程。
- F5——树视图。
- F6——排序。
- F7 – 提高所选进程的优先级。此操作只能由超级用户执行。
- F8——降低所选进程的优先级。
- F9——终止进程。
- F10——退出。
自定义 htop 显示和设置
与其他命令行实用程序一样,你可以向 htop 传递一些参数来自定义其输出和显示。例如,以下是命令及其相应效果的列表。
htop -t
:从树视图开始htop -u username
:仅显示特定用户的进程htop -p PID1,PID2,...
:仅显示指定进程
htop 命令常用的选项
以下是htop的一些最常用选项:
选项 | 描述 |
---|---|
-d <延迟> | 设置更新之间的延迟(延迟几秒) |
-u <用户> | 仅显示用户拥有的进程 |
-p <进程号> | 仅显示具有特定 ID 的进程。 |
-s <列> | 对给定列的进程进行排序 |
-t | 在命令列中以树状视图显示进程层次结构 |
–无颜色 | 以单色模式运行 htop,禁用彩色 |
1. htop -d <延迟>:
htop -d 10 表示屏幕更新间隔为 1 秒。如果设置延迟时间为 15,则表示延迟 1.5 秒;同样,设置延迟时间为 23,则表示延迟 2.3 秒,以此类推。这个延迟时间很有用,因为它可以减少频繁更新。
2. htop -u <用户名>:
用于仅显示指定用户的进程。如下所示:
htop -u www-data

3. htop -p <进程ID>:
用于仅显示给定的 PID。
4. htop -s <列>:
对给定的列进行排序
5. htop -t:
在命令列中以树状视图显示进程层次结构。
6. htop -无颜色:
禁用颜色。
7. -v –版本:
输出版本信息并退出。
atop 命令
atop(高级 Top)是一款功能强大的交互式监视器,允许用户查看 Linux 系统的负载。它以系统级别显示最关键硬件资源(CPU、内存、磁盘和网络)的状态。它拥有一些与其他监视工具不同的独特功能:
- 持久日志记录: atop 可以将快照写入日志文件以进行长期分析。
- 资源特定视图: 它有专门用于 CPU、内存、磁盘和网络详细信息的屏幕。
- 累计报表: 可显示自系统启动以来的资源消耗情况。
- 进程核算: 它还可以跟踪间隔采样可能遗漏的短暂进程。
建议阅读:如何在 Linux 中查找最常用的磁盘空间目录和文件
安装于顶部
大多数系统上并未预装 atop。您可以运行以下命令在大多数 Ubuntu/Debian 发行版上安装它:
sudo apt update && sudo apt install atop
安装后,atop 服务通常会自动启动以进行持续记录。

要查看 atop 界面,只需在终端中输入 atop 即可。这将打开一个新屏幕,您将在其中看到以下信息:
- 系统级信息:
- 日期、时间、正常运行时间和系统数量
- CPU 统计信息(用户、系统、空闲、等待等)
- 内存和交换使用情况
- 磁盘 I/O 统计信息
- 网络统计
- 流程级信息:
- PID:进程 ID
- SYSCPU:系统 CPU 时间
- USRCPU:用户CPU时间
- VGROW:虚拟内存增长
- RGROW:驻留内存增长
- RDDSK:磁盘读取活动
- WRDSK:磁盘写入活动
- ST:进程状态
- EXC:退出代码
- CMD:命令名称
atop 是一款功能强大的工具,一旦您学会了使用它,就能充分享受它的强大功能。以下列出了一些您可以尝试使用 atop 的基本命令:
t
:显示特定时间间隔的详细系统和进程统计信息c
、、、:在 CPUm
、内存、磁盘和网络特定视图之间切换d
n
v
:显示程序版本信息z
:仅显示活动进程(隐藏空闲进程)1
:显示平均每个 CPU 的利用率P
、M
、D
:分别按 CPU、内存或磁盘活动排序q
:退出顶部