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. 切换摘要信息的视图

l,t,m Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
每个相应的键将调整显示选项。 默认是基于文本的输出,但也有模拟条,或者您可以完全关闭项目。
3. 查看 CPU 特定信息

0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
我的虚拟机上只有一个 CPU,但您可以看到如果有多个 CPU 将如何工作。 您可以使用自己的统计信息将其分成单独的节点。
4 顶场操作

f,F,X Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width
我们可以添加或删除我们想要显示的任何字段,我们还可以调整文本的固定宽度。
同样,您也可以对 top 命令输出进行排序。
5. 定位字符串

L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
6. 组织你的观点

R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify
这些命令为您提供了组织任务信息的选项。 排序将按 PID 显示所有任务,而不是默认的按活动排序功能。 线程会将您的详细和摘要视图更改为面向线程而不是面向任务。 森林视图将进程安排在“树”结构中以展示父子关系。 数字对齐更改数字字段的默认左对齐位置。
7. 切换完整路径、空闲任务、累积时间和文本对齐

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.过滤进程数

n,#,^O . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
使用任一 n or #
将为您提供输入数值的选项。 这将仅显示所需的进程数。
11. 在 top 命令中使用 PID Renice 或 Kill 进程

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

d or s Set update interval
在这里,我将默认更新时间从每 3.0 秒更改为每 1 秒。 您可以根据需要随时调整时间。 可以使用 d
或者 s
执行相同的操作。
结论
您喜欢我们的顶部指南吗? 我希望这些技巧能教会你一些关于使用 top 的新知识。 如果您喜欢本指南,请在社交媒体上分享。
如果您有任何意见或问题,请在下方留言。 如果您有任何建议,对于您希望看到的主题,也可以随时留下。 谢谢阅读。