如何在 Linux 中使用 top 命令作为任务管理器

top 命令提供了系统信息的快速概览。 它报告有关当前进程的数据,这些数据每 3 秒刷新一次(默认情况下)。

使用和理解像 top 这样的程序是一项必不可少的系统管理技能。 在本文中,我将解释教你如何自信地导航顶级命令。

了解 Linux 中的 top 命令

top

顶部是直接使用。 这个简单的命令将带您进入顶级应用程序。 当你想退出时, 输入字母 q 退出. 还有其他关键命令可以充分利用它,我将在后面讨论。

顶部命令输出有两个部分

您可以轻松检查 CPU 负载、当前任务数量以及查看有关内存使用情况的信息。 您会注意到,在运行时基本上有 2 个包含信息的部分。

在我们的终端顶部,我们获得了概览数据,包括内存使用情况和 CPU 负载。 在此之下,我们有一个包含大量详细信息的特定流程的表格。

有很多详细信息以压缩格式显示。 让我们把它分解成更小的部分,以便我们有一个更完整的理解。 前四行包含我之前提到的概览数据。 让我们一行一行地解释发生了什么。

用户信息、正常运行时间和平均负载

top - 11:49:05 up 27 min,  1 user,  load average: 1.13, 0.44, 0.28

第一条信息是时间戳,这是不言自明的。 在它旁边,您将看到系统运行时间。 就我而言,它显示为 24 分钟。 这是指计算机在不中断的情况下运行了多长时间。 接下来,我们看到负载平均值的三个值。 这些数字是 1 分钟、5 分钟和 15 分钟的读数,按相应的顺序排列。

出于我们的目的,负载值可以理解为对系统处理能力的“压力”的估计。 为了 example,负载为 1.0 意味着当前 100% 的处理能力正在工作。

任务

Tasks: 210 total,   2 running, 208 sleeping,   0 stopped,   0 zombie

系统进程也称为任务。 操作系统依赖于在后台运行的许多进程来使其他活动成为可能,例如使用 Web 浏览器。

流程可以以许多不同的方式运行,并使用各种算法进行优先级排序。 这有助于优化计算机执行任务的方式和时间。 这旨在作为高级概述,因此我们将在此处保持简单。 我们希望我们的读者知道,计算不仅仅是这里描述的状态。

也就是说,让我们来看看这些分别意味着什么:

状态描述
跑步活动/在待处理队列中
睡眠等待进程完成
停止被作业控制中断 Signal (CTRL+C,对于 example)
僵尸由“孤立”子任务组成/不再运行

top 命令中的 CPU 信息

%Cpu(s):100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

这里的每个值都是花费在相应任务上的时间百分比。 下表解释了每个缩写的含义。 这给出了如何使用处理能力的相当详细的细分。

缩写描述
我们在用户模式下完成的处理
sy在系统/内核模式下完成的处理
花在“好”流程上的时间
ID空闲时间
等待 I/O 进程完成
你好由于硬件中断而花费的时间
西由于软件中断而花费的时间
英石时间被虚拟机资源“偷走”

top 命令中的内存使用情况

MiB Mem :   7974.7 total,   5974.0 free,   1046.9 used,    953.9 buff/cache
MiB Swap:   4095.5 total,   4095.5 free,      0.0 used.   6660.1 avail Mem 

这些行模仿 Linux 中 free 命令的输出。

任务表

这确实是最高指挥的核心。 如果您来自 Windows,您可能熟悉使用 CTRL+ALT+DEL 访问 任务管理器. 这是一种更“精简”的版本。 您会看到所有当前正在运行的任务的表格。

这是顶部显示的一些任务的示例。

PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                 
1703 christo+  20   0 2338396 342200 114744 S   7.9   4.2   0:25.05 gnome-shell                                             
1285 root      20   0  237252  72360  46012 S   4.3   0.9   0:04.00 Xorg                                                    
2158 christo+  20   0  496976  42952  32192 S   4.0   0.5   0:01.74 gnome-terminal-                                         
2703 christo+  20   0   21528   3880   3204 R   0.7   0.0   0:00.40 top                                        

这是一个有助于理解列标题缩写的表格。

缩写描述
PID进程 ID(唯一正整数)
用户用户名
公关优先级(内核)
不错的价值
虚拟机虚拟内存
RES驻留大小(物理内存)
SHR共享内存
小号进程状态(正在运行、已停止等)
%中央处理器CPU 负载
%内存RES / 总 RAM 的百分比
时间 +花费在流程上的总时间
命令开始进程的命令

这些是我的发行版中的默认字段。 您的系统可能略有不同。 这些可以通过键入来定制 F 当 top 运行时。 这将显示可用选项的完整列表

自定义顶部命令输出并与之交互

一旦你以你喜欢的方式设置了你的显示器。 是时候完成一些工作了。 让我们看一下 top 选项的完整列表(可通过键入 h 访问) 并看一些例子。

1. 颜色和记忆量表

顶部的内存规模
Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale

我们已经介绍了颜色的变化,但您也可以将内存比例从字节一直修改到 PB。 E 修改摘要部分的数字,而 e 调整任务表中的比例。

2. 切换摘要信息的视图

顶级 Ex2 1顶部的周期摘要视图
l,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info

每个相应的键将调整显示选项。 默认是基于文本的输出,但也有模拟条,或者您可以完全关闭项目。

3. 查看 CPU 特定信息

顶级 Ex3CPU切换
0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode

我的虚拟机上只有一个 CPU,但您可以看到如果有多个 CPU 将如何工作。 您可以使用自己的统计信息将其分成单独的节点。

4 顶场操作

顶级 Ex4顶部字段操作
f,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width

我们可以添加或删除我们想要显示的任何字段,我们还可以调整文本的固定宽度。

同样,您也可以对 top 命令输出进行排序。

5. 定位字符串

顶级 Ex5在顶部定位字符串
L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right

6. 组织你的观点

顶级 Ex6 1组织您的视图
R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify

这些命令为您提供了组织任务信息的选项。 排序将按 PID 显示所有任务,而不是默认的按活动排序功能。 线程会将您的详细和摘要视图更改为面向线程而不是面向任务。 森林视图将进程安排在“树”结构中以展示父子关系。 数字对齐更改数字字段的默认左对齐位置。

7. 切换完整路径、空闲任务、累积时间和文本对齐

顶级 Ex7切换其他内容
c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify

当你切换 c,您将看到命令的完整路径。 空闲从显示中删除所有非活动任务。 S 使用累积时间。 String justify 更改字符串字段的默认左对齐位置。

8. 切换亮点

在顶部命令中切换亮点切换亮点
x,y     . Toggle highlights: 'x' sort field; 'y' running tasks

使用 x 切换排序字段,使用 y 对正在运行的任务进行排序。

9. 按用户或字段/值过滤

在顶部命令中按用户或字段/值过滤按用户或字段/值过滤
u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria

我们可以轻松过滤掉特定用户或字段/值。 这对于具有许多用户或许多打开任务的系统来说非常有用。 过滤器需要字段和值之间的比较运算符。 正如你在这里看到的,我输入了 COMMAND=top 过滤除 top 之外的所有命令。 将 shift 与任一命令一起使用会切换区分大小写。

10.过滤进程数

在 top 命令中过滤进程数过滤进程数
n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)

使用任一 n or # 将为您提供输入数值的选项。 这将仅显示所需的进程数。

11. 在 top 命令中使用 PID Renice 或 Kill 进程

在 top 命令中杀死进程杀死进程
k,r       Manipulate tasks: 'k' kill; 'r' renice

使用这些命令,我​​们可以更改 nice 值或终止进程。 我过滤掉了特定的PID,以便于查看。 我将 nice 值更改为 20。然后我发送了一个 kill 命令。 默认情况下使用 kill 会发送一个 SIGTERM 信号。 这允许它在终止之前完成执行代码。

12.更改top命令默认更新时间

在 top 命令中更改延迟时间更改延迟时间
d or s    Set update interval

在这里,我将默认更新时间从每 3.0 秒更改为每 1 秒。 您可以根据需要随时调整时间。 可以使用 d 或者 s 执行相同的操作。

结论

您喜欢我们的顶部指南吗? 我希望这些技巧能教会你一些关于使用 top 的新知识。 如果您喜欢本指南,请在社交媒体上分享。

如果您有任何意见或问题,请在下方留言。 如果您有任何建议,对于您希望看到的主题,也可以随时留下。 谢谢阅读。