本页目录

  • 使用 ps 命令列出进程
  • 使用 pgrep 查找进程
  • 使用 top 查看正在运行的进程
  • 使用 htop 查看正在运行的进程
  • 结论

在 Linux 系统上运行的任何东西,从用户应用程序到系统服务,都是各自独立的进程。即使你的计算机停在空白的终端屏幕上,后台无疑也运行着大量进程。我们有多种 Linux 工具可以用来识别系统上的所有进程,这正是本指南要介绍的内容。

知道如何检查正在运行的进程,可以让你核实某个程序是否在运行,在必要时终止它,并监控它对系统资源(CPU 和 RAM)的影响。

使用 ps 命令列出进程

ps 命令可以通过 -e 选项列出 Linux 系统上运行的所有进程。

ps -e

在 Linux 上查看正在运行的进程

系统在任意时刻运行大量进程是正常现象,因此将该命令通过管道传递给 more 来筛选这个列表会更方便。例如,要一次查看 15 行:

ps -e | more -15

ps 的输出向我们展示了每个正在运行的进程、其各自的进程 ID(缩写为 PID)以及 TTY(进程所运行的终端接口)。TTY 列中的问号表示该进程未附加到任何终端接口——它只是在后台运行。

你可能需要知道某个进程的 PID 以便将其终止,或者知道 TTY,以便通过重新连接到正确的终端窗口来回到打开的进程。

ps 的另一个有用选项是 -aux 选项。

ps -aux

与之前的选项一样,这会列出系统上运行的每个进程。但它还会列出每个进程当前的 CPU 和 RAM 占用,以及生成每个进程的命令。

在 Linux 上查看正在运行的进程

使用 pgrep 查找进程

pgrep 命令有点像是把 ps 和 grep 合二为一。我们可以指定要查找的进程的名称——或名称的一部分——pgrep 就会返回相应的进程 ID。

例如,要在系统上搜索任何与 SSH 相关的进程,你可以输入:

pgrep ssh

在 Linux 上查看正在运行的进程

如上方截图所示,pgrep 找到了一个 PID 为 1143 的 SSH 进程。为了进一步验证,我们用 ps 命令来检查一下:

ps -e | grep 1143

在 Linux 上查看正在运行的进程

使用 top 查看正在运行的进程

top 工具当然是一个命令行工具,但它以交互方式输出所有当前正在运行的进程,显示的信息就像你在图形界面中所期望看到的那样。它很容易上手。只需输入 top:

top

在 Linux 上查看正在运行的进程

top 的输出为我们提供了大量信息,包括系统整体的 CPU 和 RAM 占用情况。但我们关注的是进程列表,你可以在正下方找到它。

终端窗口不够大,无法让 top 列出每一个正在运行的进程,因此 top 会尽可能多地显示,并按系统资源占用对其进行排序。换句话说,占用 CPU 和 RAM 最多的进程会列在最上方。占用较少的进程会显示在列表较低的位置,可能会被终端窗口截断。

使用键盘上的方向键在进程列表中上下滚动。

关于每个正在运行的进程,列出了相当多的信息。下面快速介绍一下这些不同列的含义:

  • PID:每个任务的进程 ID。
  • PR:任务的调度优先级。
  • NI:任务的 nice 值。负数表示更高的优先级。
  • VIRT:正在使用的虚拟内存大小。
  • RES:正在使用的常驻内存大小。
  • SHR:正在使用的共享内存大小。
  • S:任务的状态(R=运行,S=睡眠)。
  • %CPU:任务当前使用的 CPU 百分比。
  • %MEM:任务当前使用的 RAM 百分比。
  • TIME+:任务的 CPU 时间。
  • COMMAND:用于生成该任务的命令。

如前所述,top 是交互式的,因此我们可以使用一些键盘快捷键来用它做一些很棒的事情。下面我们介绍几个比较好用的快捷键。

按下 z 键为正在运行的进程着色。这样可以更容易地将运行中的任务与睡眠或僵尸进程区分开来。

在 Linux 上查看正在运行的进程

按下 c 键获取每个任务所使用的完整命令。这会显示绝对路径,以及所使用的任何选项。

在 Linux 上查看正在运行的进程

按下 k 键即可从 top 工具中直接终止一个正在运行的进程。这样就省去了退出该工具再单独发出 kill 命令的麻烦。你需要输入想要结束的进程的 PID:

在 Linux 上查看正在运行的进程

按下 r 键使用 renice 更改进程的优先级。输入你想要 renice 的进程的 PID:

在 Linux 上查看正在运行的进程

要查看更多选项,按下 h(help,帮助)键来查看 top 能够执行的其他所有操作。

使用完 top 工具后,你可以按下 q 退出该工具并返回终端。

使用 htop 查看正在运行的进程

htop 工具建立在 top 的基础之上,使用起来更友好,界面也更赏心悦目。唯一的缺点是没有默认安装在所有 Linux 发行版上,因此你可能需要先安装它。它应该存在于你的操作系统的软件仓库中,下面介绍如何使用你的包管理器安装它:

Debian 和 Ubuntu:

sudo apt install htop

CentOS 和 Fedora:

dnf install htop

Red Hat:

yum install htop

安装完成后,只需输入 htop 即可运行该工具。

htop

在 Linux 上查看正在运行的进程

你可以使用鼠标与 htop 交互,各种键盘命令会列在终端窗口的底部。它的功能基本与 top 命令相同,但拥有更简洁、更易于理解的界面。

结论

在本指南中,我向你展示了在 Linux 系统上查看正在运行进程的不同方法。使用哪一种取决于具体情况和你的偏好,但每种方法都有其自身的优势。

运用在本指南中学到的知识,你将能够识别系统上运行的所有进程及其对系统资源的影响,并能够按照你的需要终止任务或重新调整其优先级。