学习 Linux 命令:顶部
系统监控对于任何或多或少的高级 Linux 用户来说都是一个重要方面,因为有时您想知道什么占用了宝贵的资源,或者只是占用了多少资源。不管有些人怎么想,这不仅仅适用于服务器系统。桌面应用程序也变得混乱,你发现你的系统速度慢得像爬行一样,因为一些“流氓”应用程序决定吃掉你所有的内存。对于企业用户来说,有很多有效的免费或商业监控解决方案,但对于老派 Linux 用户和/或喜欢保持简单的人来说,总是有 top(1)。如果您对命令行有些熟悉,您可能会从本文中受益更多,但这并不意味着以 GUI 为中心的用户不会。
命令行选项
-d 延迟
此选项指定顶部更新之间的延迟(以秒为单位)-p pid
监控特定PID(进程ID)-b
这是一种批处理模式,通常用于记录 top 的输出。-n iter
指定所需更新的数量。例如,要记录 top 的单个输出,此选项可以与 -b top -n 1 -b > top.log 结合使用
top的内部命令
H 或 ?
显示 top 的按键帮助k
杀死进程。 top 命令将询问要杀死的进程的 PID。r
更改进程优先级与 renice 命令的功能相同s
更改更新率。以秒数表示:1、0.5 等。P
此命令按 CPU 使用率对所有显示的进程进行排序M
与上面相同,但按内存使用情况排序q
从顶部退出
您可能已经注意到我们没有提到安装 top。这是因为它通常已经安装在您的发行版中,甚至可以在 Gentoo 最小安装中找到。如果你还记得的话,top 对我们来说并不陌生,正如我们之前提到的,只不过现在它会受到更多的关注,你会得到更多的例子和现实生活中的用例。和之前的 Linux 命令系列一样,我们的主要灵感来源是手册页,我们建议您也看看它们,因为这些系列并不是替代品。
实际上,top 不仅仅可以显示正在运行的进程表。我们将首先关注 CLI 选项,然后介绍哪些键和选项可以与 top 显示的现有字段结合使用,然后我们将继续介绍 top 的其他可能用途,当然还有示例。
命令行选项
我们的灵感来自手册页这一事实并不意味着我们必须像手册一样精确和技术性。因此,我们要做的就是接受每个选项,简短地解释一下,然后继续。正如您可能习惯于其他应用程序一样,-h 标志将向您显示帮助信息,即我们将在本节中讨论的内容。奇怪的是,-v 标志执行完全相同的操作,但这与大多数 Linux 命令行应用程序的操作一致。好的,现在我们进入严肃的部分。 top 没有很多命令行选项,但启动后它会用一个非常可定制的界面来弥补。我们要处理的第一个选项是 -b,它代表batch,用于高级任务,其中输出将发送到某个文件,然后通过 awk 等工具进行解析, perl 或 shell 脚本。
在我们进一步讨论之前,有一个 top 大量使用的小概念:切换。有可以通过命令行选项切换的二进制状态选项。二进制状态,如果我们吓到你了,意味着可以用来查看系统各个方面的这些选项只能有两个相反的值,因此是“二进制”部分。例如,-c 选项切换/反转最后使用的“c”状态:命令或程序名称。这可以简单地说明。如果从命令行启动 xterm,可以这样启动:
$ xterm -cr white
现在这是命令行,但程序名称仍然是 xterm(哦,顺便说一句,xterm 的 -cr 选项设置光标颜色)。 -d [秒] 可能是(至少从我现在的立场来看)最常用的 top 标志之一。它代表延迟,它设置顶部的“刷新率”(与显示器不同,请注意)。它接受整数、秒的小数部分,但不接受负数。如果输入负值,它将使用默认值五秒。 -H 是另一个切换选项,它将反转有关 th 阅读的最后一个选项,AKA 是否显示所有线程。虽然这种切换的东西一开始会显得很奇怪,但我敢打赌你会习惯它,并且在读完本文后你会发现它很有用。 -i 切换“空闲和僵尸进程视图”,-n [整数] 控制 ntop 的迭代次数(没有这个,top 将运行直到您可以使用“q”或 ^C 来停止它),并且 -u 选择要过滤的有效用户/UID,与 ps 相同。 -U 做同样的事情,但没有“有效”部分,而 -p [PID] 按进程 ID 过滤,可以输入多个 PID,使用逗号分隔,并通过键入 '= 退出此模式'。 top 还提供了一种安全模式,甚至适用于 root,可以通过 -s 标志启用,最后还有 -S,但在描述交互模式时它的使用会更详细,所以我们稍后会告诉您它。
领域
如果您还没有使用过 top,最好知道它提供了很多字段,其中没有一个是强制性的,下面是它们的列表以及每个字段的简短说明。我们将尝试尽可能简短,因为有很多字段并且名称非常不言自明。这时候 Linux/Unix 系统的一些知识就派上用场了,因为我们不会停下来解释像 PID 或 TTY 这样的术语,只是解释那些不是很明显的术语。因此,字段为:PID、PPID、RUSER、UID、USER、GROUP、TTY、PR(优先级)、NI(好值)、P(上次使用的 p处理器), %CPU, TIME, TIME+(更精确的时间), %MEM, VIRT, SWAP, RES, CODE, DATA, SHR, nFLT(缺页计数), nDRT(脏页计数), S (进程状态 - 请参阅 -S)、命令(命令行或程序名称 - 请参阅上文)、WCHAN、标志。
人们可以通过“f”键选择字段,并通过“o”键对它们进行排序,这样人们就可以准确地看到重要的数据,同时使屏幕变得整洁。在我们继续讨论交互式命令之前,我们必须先了解一下 top 可以运行的模式。第一个模式是默认模式,名为“全屏模式”。另一种是交替模式,可以用‘A’来切换,也就是大写的a,显示的内容稍后揭晓。当然,建议您花一些时间玩一下top,看看按下某个键或另一个键时会发生什么。从现在开始,我们将让示例为我们完成工作,因此,如果您想要交互式命令的列表,您猜对了,请查看手册页。
例子
Learning Linux top command with examples | |
---|---|
Linux command syntax | Linux command description |
|
Starts top in interactive mode with info refresh every second |
|
Starts top in batch mode with info refresh every second |
|
Starts top in interactive mode with info refresh every second, running five times |
|
Starts top in interactive mode with info refresh every three seconds, monitoring only certain effective UIDs or usernames |
|
Starts top in interactive mode and restricts monitoring to PID 1 (init) and 1234 |
|
Starts top in interactive/secure mode with info refresh every second (try it) |
|
Starts top in interactive mode with info refresh every three seconds, monitoring only certain UIDs or usernames |
|
Starts top in interactive mode with info refresh every second, toggling command line/program name (press ‘c’ in interactive mode) |
|
Starts top in interactive mode with info refresh every second, toggling all threads (press ‘H’ in interactive mode) |
|
Starts top in interactive mode with info refresh every second, toggling idle processes (press ‘i’ in interactive mode) |
|
Starts top in interactive mode with info refresh every second, toggling cumulative mode (press ‘S’ in interactive mode) |
What follows are some commands to be entered while top is running interactively and without secure mode on: | |
|
Refreshes the output |
|
Print some help |
|
Toggle alternative mode |
|
Toggle boldface, provided your terminal has the capabilities |
|
Change delay time (refresh) |
|
Change the field group (1-4) to be displayed. This is what alternate view does: it displays all the field groups. |
|
Select an effective user (see -u) |
|
Select an user (see -U) |
|
Kill a certain PID |
|
Quit |
|
Renice a process by PID |
|
Write the configuration file (see below) |
|
Change color mapping |
|
Toggle load average, memory usage, task/cpu and single separate CPU states (on SMP systems) |
|
In alternate mode, skim between windows |
配置文件
该文件名为 toprc,可以在 /etc 中找到,对于系统范围的场景,或者如果您想创建一个个人文件,请按照上面的说明使用 [W],然后使用它作为示例以便进一步修改。
*nix系统兼容性
简短的回答:永远不要指望它。长答案:阅读系统手册,并期望有些功能可以像在 Linux 上一样工作,而其他功能则根本不起作用或具有不同的选项。如果您需要比较不同 Unix 系统上 top 的各种实现,Google 会提供帮助。
多年来,我发现无论在家工作还是在办公室工作,顶级都是不可或缺的。它是一个强大的工具,可以在短时间内为您提供相关的答案,前提是您花一些时间来学习如何充分发挥它的潜力。