1.简介
htop 是一种交互式、跨平台的基于 ncurses 的进程查看器。
类似于 top,但 htop 允许您垂直和水平滚动,并使用指向设备(鼠标)进行交互。您可以观察系统上运行的所有进程,以及它们的命令行参数,还可以以树形格式查看它们,选择多个进程并同时对它们进行操作。
与进程相关的任务(终止、变更优先级)可以在不输入其 PID 的情况下完成。
2.格式
代码语言:javascript复制htop [-dCFhpustvH]
3.选项
长选项的强制参数对于短选项也是强制的。
代码语言:javascript复制-d, --delay=DELAY
延迟时间,后跟一个数字,指定两次更新之间的延迟,单位是 tenths of seconds(十分之一秒)。如果延迟值小于1,则增加到1,即1/10秒。如果延迟值大于100,则减少到100,即10秒。
-C, --no-color, --no-colour
关闭彩色模式,不显示颜色。
-F --filter=FILTER
根据与命令匹配的术语筛选进程。匹配的术语不区分大小写,并且是固定字符串(不是正则表达式)。您可以用“|”分隔多个术语。
-h, --help
显示帮助信息并退出
-p, --pid=PID,PID...
指定进程,后跟一个或多个 PID,只显示这些进程。
-s, --sort-key=COLUMN
按指定列排序(使用 --sort-key help 可查看列列表)。这将强制使用列表视图,除非同时指定-t 选项。
-t, --tree
在树状视图中显示进程。可用于在使用选项 -s 按照指定列排序时强制生成树视状图。
-u, --user=USERNAME|UID
只显示给定用户的进程。
-U, --no-unicode
图形仪表不使用 Unicode,而是使用 ASCII 字符
-M, --no-mouse
禁用鼠标控制的支持
--readonly
禁用所有系统和进程更改功能
-V, --version
输出版本信息并退出
-H, --highlight-changes=DELAY
高亮新旧进程
--drop-capabilities[=off|basic|strict]
仅限 Linux;需要 libcap 支持。删除不需要的 Linux 功能。在严格模式下,由于功能较少,终止、更改进程优先级和读取进程延迟记帐信息等功能将不起作用。
4.交互式命令
htop 是一个高度交互式的命令行工具,用于监控系统进程和资源利用率。它提供了丰富的键盘快捷键来管理和查看不同的系统参数。
基本导航和视图控制
代码语言:javascript复制Tab, Shift-Tab
选择显示的下一个/上一个屏幕标签。可以在设置屏幕(F2)中启用显示屏幕标签名称。
Up, Alt-k
在进程列表中选择(高亮)上一个进程。如有必要,滚动列表。
Down, Alt-j
在进程列表中选择(高亮)下一个进程。如有必要,滚动列表。
Left, Alt-h
向左滚动进程列表。
Right, Alt-l
向右滚动进程列表。
PgUp, PgDn
向上或向下滚动进程列表一个窗口。
Home
滚动到进程列表顶部并选择第一个进程。
End
滚动到进程列表底部并选择最后一个进程。
进程操作和信息查看
代码语言:javascript复制Ctrl-A, ^
向左滚动到进程条目的开始处(即行的开始)。
Ctrl-E, $
向右滚动到进程条目的结束处(即行的结束)。
Space
标记或取消标记一个进程。可以对多个标记的进程执行操作,如“杀死”,而非仅对当前高亮的进程操作。
c
标记当前进程及其子进程。
U
取消所有进程的标记(移除使用空格或c键添加的所有标记)。
s
追踪进程系统调用:如果安装了 strace(1),按下此键将其附加到当前选定的进程,实时更新该进程发出的系统调用。
l
显示进程打开的文件:如果安装了 lsof(1),按下此键将显示该进程打开的文件描述符列表。
w
在单独的屏幕上显示选定进程的命令行,必要时换行。
x
在单独的屏幕上显示选定进程的活动文件锁。
帮助和设置
代码语言:javascript复制F1, h, ?
转到帮助屏幕。
F2, S
转到设置屏幕,在这里你可以配置在屏幕顶部显示的计量器,设置各种显示选项,选择颜色方案,并选择哪些列显示,以及它们的顺序。
搜索和过滤
代码语言:javascript复制F3, /
增量搜索所有显示进程的命令行。当前选中(高亮)的命令将随着你的输入更新。在搜索模式中,按F3将循环通过匹配的事件。按Shift-F3将向后循环。
F4,
增量进程过滤:输入部分进程命令行,只显示名称匹配的进程。要取消过滤,请再次进入过滤选项并按Esc。匹配不区分大小写。术语是固定字符串(无正则表达式)。可以用“|”分隔多个术语。
进程视图和排序
代码语言:javascript复制F5, t
树视图:按父子关系组织进程,并将它们之间的关系以树形布局显示。切换键将在树视图和你之前选择的排序视图之间切换。选择一个排序视图将退出树视图。
F6, <, >
选择排序字段,也可以通过 < 和 > 访问。当前排序字段由标题中的高亮显示指示。
进程优先级调整
代码语言:javascript复制F7, ]
增加选定进程的优先级(从'nice'值中减去)。只有超级用户可以
F8, [
降低选定进程的优先级(增加'nice'值)。
Shift-F7, }
增加选定进程的自动组优先级(从自动组'nice'值中减去)。只有超级用户可以执行此操作。
Shift-F8, {
降低选定进程的自动组优先级(增加自动组'nice'值)。
进程管理
代码语言:javascript复制F9, k
“杀死”进程:向一个或一组进程发送在菜单中选择的信号。如果进程被标记,则向所有标记的进程发送信号。如果没有标记,则向当前选中的进程发送。
F10, q
退出 htop。
排序和视图选项
代码语言:javascript复制I
反转排序顺序:如果排序顺序是递增的,切换为递减,反之亦然。
特殊视图和功能
代码语言:javascript复制 , -, *
在树视图模式中,展开或折叠子树。当子树被折叠时,进程名称左侧显示一个" "号。按""将展开或折叠所有没有父进程的PID的所有子进程,通常是PID 1(init)和PID 2(在Linux上如果显示内核线程,则为kthreadd)。
a(在多处理器机器上)
设置CPU亲和性:标记进程允许使用的CPU。
u
仅显示指定用户拥有的进程。
N
按PID排序。
M
按内存使用排序(兼容top命令的快捷键)。
P
按处理器使用率排序(兼容top命令的快捷键)。
T
按时间排序(兼容top命令的快捷键)。
F
“跟随”进程:如果排序顺序导致当前选中的进程在列表中移动,使选择条跟随它。这对于监控进程很有用:这样,你可以保持进程始终显示在屏幕上。使用移动键时,“跟随”效果会失效。
隐藏选项和刷新
代码语言:javascript复制K
隐藏内核线程:阻止显示属于内核的线程。
H
隐藏用户线程:在系统中不同于普通进程表示它们的系统(如基于最新的NPTL的系统),这可以隐藏用户空间进程的线程。
O
隐藏容器化进程:阻止显示在容器中运行的进程。
p
显示运行程序的完整路径(适用时)。
Z
暂停/恢复进程更新。
m
合并exe、comm和cmdline(适用时)。
Ctrl-L
刷新:重绘屏幕并重新计算值。
其他功能
代码语言:javascript复制数字:PID搜索:输入进程ID,选择高亮将移动到该进程。
5.示例
(1)基本使用。
打开终端,输入 htop,即可启动 htop 程序。这将显示一个动态更新的界面,列出所有活动进程及其当前状态。
(2)设置更新间隔。
若要设置更新间隔为0.5秒,可以使用以下命令:
代码语言:javascript复制htop -d 5
这里的 5 表示十分之五秒,因为 htop 中的时间单位是十分之一秒。
(3)查看特定用户的进程。
如果只想查看属于用户 alice 的进程,可以使用:
代码语言:javascript复制htop -u alice
(4)若要监控 PID 为 1234 和 5678 的两个进程,可以使用:
代码语言:javascript复制htop -p 1234,5678
(5)以树状形式显示进程。
显示进程的树状结构可以帮助理解进程之间的父子关系。这可以通过以下命令实现:
代码语言:javascript复制htop --tree
6.小结
htop 是一个功能丰富、易于使用的工具,它提供了 top 命令所不具备的交互功能和更直观的用户界面。
掌握 htop 的使用,可以显著提高对 Linux 系统进行监控和管理的效率。无论是系统管理员还是普通用户,htop 都是一个宝贵的工具,值得在日常工作中加以利用。
参考文献
htop(1) - Linux manual page
htop - an interactive process viewer