top命令教程

时间:2020-03-21 11:47:26  来源:igfitidea点击:

作为Linux管理员,我们有时可能需要了解Linux系统的一些基本细节,例如当前正在运行的进程,平均系统负载,cpu和内存使用情况等。
幸运的是,我们有一个名为“ top”的命令行实用程序来获取这些详细信息。
top命令是一个众所周知且使用最广泛的实用程序,用于显示有关Linux和类Unix操作系统中正在运行的进程的动态实时信息。
在此教程中,我们将看到Linux上的一些Top命令示例。

top命令示例

其中我列出了一些最常用的top命令示例。

监控所有进程

要开始监视正在运行的进程,只需运行不带任何选项的top命令:

$top

如我们在上面的 Screen快照中所见,top命令在多列中显示进程列表。
每列显示详细信息,例如pid,用户,cpu使用情况,内存使用情况。
除了进程列表之外,我们还将在顶部看到有关平均系统负载,任务数,CPU使用率,内存使用率和交换使用率的简要统计信息。

这是上述参数的说明。

  • PID-任务的进程ID。
  • USER-任务所有者的用户名。
  • PR-任务的优先级。
  • NI-这项任务的价值很高。如果nice值为负,则该过程将获得更高的优先级。如果nice值为正,则优先级低。请参阅本教程以了解有关nice的更多信息。
  • VIRT-任务使用的虚拟内存总量。
  • RES-驻留内存大小,任务当前正在使用的非交换物理内存。
  • SHR-共享内存大小。任务使用的共享内存量。
  • S-进程的状态(S =睡眠R =运行Z =僵尸)。
  • %CPU-CPU使用率。自上次 Screen更新以来,任务在已用CPU时间中所占的份额,表示为总CPU时间的百分比。
  • %MEM-内存使用率。任务当前驻留在可用物理内存中的份额。
  • TIME +-任务自启动以来使用的总CPU时间,精确到百分之一秒。
  • COMMAND-正在运行的程序的名称。

显示进程的路径

如果要查看正在运行的进程的绝对路径,只需按“ c”。
现在,我们将在COMMAND列下看到程序的实际路径,如下面的 Screen快照所示。

监视特定用户拥有的进程

如果我们运行top命令而没有任何选项,它将列出所有用户拥有的所有正在运行的进程。
如何显示特定用户拥有的进程?
这很容易!要显示给定用户(例如sk)拥有的进程,只需运行:

$top -u sk

不显示空闲/僵尸进程

无需查看所有进程,我们可以简单地忽略空闲或者僵尸进程。
以下命令将不显示任何空闲或者僵尸进程:

$top -i

使用PID监视进程

如果知道任何进程的PID,例如21180,则可以使用-p标志监视该进程。

$top -p 21180

我们可以使用逗号分隔的值指定多个PID。

使用进程名称监视进程

我不知道PID,但只知道进程名称。
如何监控呢?
简单的!

$top -p $(pgrep -d ',' firefox)

其中firefox是进程名称,“ pgrep -d”从进程名称中选择相应的PID。

按CPU使用率显示进程

有时,我们可能想要显示按CPU使用率排序的进程。
如果是这样,请使用以下命令:

$top -o %CPU

CPU使用率较高的进程将显示在顶部。
或者,我们可以通过按SHIFT + p按CPU使用率对进程进行排序。

按内存使用情况显示进程

同样,要按内存使用量对进程进行排序,命令将是:

$top -o %MEM

Renice进程

我们可以使用选项“ r”随时更改进程的优先级。
运行top命令,然后按r并键入进程的PID,以更改其优先级。

此处,“ r”是指renice。

设定更新间隔

顶级程序具有一个选项,可以指定两次 Screen更新之间的延迟。
如果要更改延迟时间(例如5秒),请运行:

$top -d 5

默认值为3.0秒。

如果我们已经启动了最上面的命令,只需按'd'并键入delay-time并按ENTER键。

设置迭代次数(重复)

默认情况下,top命令将一直运行,直到我们按q退出为止。
但是,我们可以设置迭代次数,然后top结束。
例如,要在5次迭代后自动退出top命令,请运行:

$top -n 5

终止正在运行的进程

要终止正在运行的进程,只需按“ k”并键入其PID并按Enter键。

突出运行进程

top命令还支持其他一些选项。
例如,按“ z”在单色和彩色输出之间切换。
这将轻松突出显示正在运行的进程。

按“ h”查看所有可用的键盘快捷键和帮助部分。

要退出顶部,只需按q。

在这一阶段,我们将对top命令有基本的了解。
有关更多详细信息,请参见手册页。

$man top

如我们所见,使用Top命令监视正在运行的进程并不难。