运维人员不仅要熟悉操作系统、服务器、网络等知识,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。
今天我们要讲的是 Htop 命令。
一、简介

htop是一个Linux下的交互式的进程浏览器,它类似于 top 命令,但可以让你在垂直和水平方向上滚动,所以你可以看到系统上运行的所有进程,以及他们完整的命令行。可以不用输入进程的 PID 就可以对此进程进行相关的操作 (killing, renicing)。它可以用来替换Linux下的top命令。
二、输出界面说明

htop命令和top命令输出界面非常相似,具体如下:
左上部分:从上至下,分别为cpu、内存、交换分区的使用情况。
右上部分:Tasks为进程总数,当前运行的进程数;Load average为系统1分钟,5分钟,10分钟的平均负载情况;Uptime为系统运行的时间。
屏幕下面部分:
- PID:进行的标识号
- USER:运行此进程的用户
- PRI:进程的优先级
- NI:进程的优先级别值,默认的为0,可以进行调整
- VIRT:进程占用的虚拟内存值
- RES:进程占用的物理内存值
- SHR:进程占用的共享内存值
- S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
- %CPU:该进程占用的CPU使用率
- %MEM:该进程占用的物理内存和总内存的百分比
- TIME+:该进程启动后占用的总的CPU时间
- COMMAND:进程启动的启动命令名称
三、基本用法
3.1. 基本语法
$ htop [-dChustv]
3.2. 参数选项
| 参数 | 描述 |
| -d --delay=DELAY | 更新之间的延迟,以十分之一秒为单位 |
| -C --no-color --no-colour | 以单色模式启动 htop |
| -h --help | 显示帮助消息并退出 |
| -p --pid=PID,PID... | 仅显示给定的PID |
| -s --sort-key COLUMN | 按此列排序(对列列表使用--sort-key帮助) |
| -u --user=USERNAME | 仅显示给定用户的进程 |
| -v --version | 输出版本信息并退出 |
| -t --tree | 在树状视图中显示流程 |
3.3. 交互式命令
| 命令 | 描述 |
| F1, h, ? | 转到帮助屏幕 |
| F10, q | 退出 |
| Space | 标记或取消标记进程 |
| U | 取消标记所有进程(删除所有使用 Space 键添加的标记) |
| s | 跟踪进程系统调用:如果安装了 strace(1),按下此键会将其附加到当前选定的进程,呈现进程发出的系统调用的实时更新 |
| l | 显示进程打开的文件:如果安装了 lsof(1),按下该键将显示进程打开的文件描述符列表 |
| F2, S | 转到设置屏幕,您可以在其中配置屏幕顶部显示的仪表,设置各种显示选项,在配色方案中进行选择,并选择显示的列,以何种顺序显示 |
| F3, / | 逐步搜索所有显示进程的命令行。当前选定(突出显示)的命令将在您键入时更新。在搜索模式下,按 F3 将循环匹配出现的事件 |
| F4, \ | 增量进程过滤:输入部分进程命令行,仅显示名称匹配的进程。要取消过滤,请再次输入过滤选项并按 Esc |
| F5, t | 树视图:按父级组织进程,并将它们之间的关系布局为树。切换键将在树和您之前选择的排序视图之间切换。选择排序视图将退出树视图 |
| F6 | 在排序视图上,选择一个字段进行排序,也可以通过 < 和 > 访问。当前排序字段由标题中的突出显示。在树视图中,展开或折叠当前子树。树节点中的“+”指示符表示它已折叠 |
| F7, ] | 增加所选进程的优先级(从“nice”值中减去)。这只能由超级用户完成 |
| F8, [ | 降低选定进程的优先级(添加到“nice”值) |
| F9, k | “杀死”进程:向一个或一组进程发送一个在菜单中选择的信号。如果进程被标记,则将信号发送到所有标记的进程。如果没有标记,则发送到当前选定的进程 |
| +, - | 在树视图模式下,展开或折叠子树。 |
| a | (在多 CPU 机器上)设置 CPU 亲和性:标记允许进程使用的 CPU |
| u | 仅显示指定用户拥有的进程 |
| F | “跟随”进程:如果排序顺序导致当前选定的进程在列表中移动,则使选择栏跟随它。这对于监控进程很有用:这样,您可以使进程始终在屏幕上可见。使用移动键时,“跟随”失效。 |
| p | 在适用的情况下显示运行程序的完整路径(这是一个切换键) |
| Ctrl-L | 刷新:重绘屏幕并重新计算数值 |
| Numbers | PID搜索:输入进程ID,选择突出显示将移至它 |
| M | 按内存使用情况排序 (最高兼容性键) |
| P | 按CPU使用情况排序 (最高兼容性键) |
| T | 按时间排序 (最高兼容性键) |
| I | 反转排序顺序 |
| K | 隐藏内核线程 |
| H | 隐藏用户线程 |
| Up, Alt-k | 在流程列表中选择(突出)上一个流程 |
| Down, Alt-j | 在流程列表中选择(突出)下一个流程 |
| Left, Alt-h | 向左滚动流程列表 |
| Right, Alt-l | 向右滚动进程列表 |
| PgUp, PgDn | 将流程列表向上或向下滚动一个窗口 |
| Home | 滚动到流程列表的顶部 选择第一个流程 |
| End | 滚动到流程列表的底部 选择最后一个流程 |
| Ctrl-A, ^ | 向左滚动到流程条目开头 (即行开头) |
| Ctrl-E, $ | 向右滚动到流程条目末尾 (即行尾) |
四、参考实例
# 启动htop:
[root@linuxcool ~]# htop
# 以单色模式启动htop:
[root@linuxcool ~]# htop -C
# 设置显示更新的延迟为3秒:
[root@linuxcool ~]# htop -d 3
# 显示一个给定的用户的进程:
[root@linuxcool ~]# htop -u linuxcool_user
本文介绍了Linux下的Htop命令,一个强大的交互式进程浏览器,提供详细的输出界面说明、基本用法、参数选项以及实用的交互式命令。Htop不仅类似top命令,还支持实时操作和自定义配置,是运维人员必备的工具。
2096





