htop安装和使用详解(Linux上更好用的top)

htop 是一款运行于 Linux 系统监控与进程管理软件,与 top 只提供最消耗资源的进程列表不同,htop 提供所有进程的列表,并且使用彩色标识出处理器、swap 和内存状态。

在 Linux 系统中,top 命令用来显示系统中正在运行的进程的实时状态,它显示了一些非常有用的信息,比如 CPU 利用情况、内存消耗情况,以及每个进程情况等。而 htop,它类似于 top 命令,但可以让你在垂直和水平方向上滚动,所以你可以看到系统上运行的所有进程,以及他们完整的命令行,可以不用输入进程的 PID 就可以对此进程进行相关的操作 (killing, renicing)。

安装 htop

Ubuntu 16.04

1
2
sudo apt-get update
sudo apt-get install -y htop

Fedora 27

1
sudo dnf install htop

CentOS or RedHat

1
sudo yum install htop

源码编译安装

1
2
3
4
5
$ wget -qO- wget http://hisham.hm/htop/releases/2.2.0/htop-2.2.0.tar.gz | tar xvz -C .
$ cd htop-2.2.0/
$ ./configure
$ make
$ make install

如果在源码编译过程中遇到错误,意味着你需要先安装相关的一些依赖。下面介绍如何安装这些依赖。

如果是 Ubuntu 或 debian 系列的 Linux, 运行如下命令:

1
sudo apt-get install build-essential libssl-dev libncurses5

如果是 Fedora,运行如下命令:

1
sudo dnf install @development-tools ncurses

CentOS 或 RedHat 系列 Linux,运行:

1
2
sudo yum groupinstall "Development Tools"
sudo yum install ncurses-devel

htop 的使用

界面概述

安装完成后,命令行中直接敲击 htop 命令,即可进入 htop 的界面

各项从上至下分别说明如下:

左边部分从上至下,分别为,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:进程启动的启动命令名称

操作说明

htop 界面底部给出了 F1 ~ F10 按键的简单说明。

F1:显示帮助信息

快捷键
快捷键对应描述
h, ?F1查看htop使用说明
SF2htop 设定
/F3搜索进程
\F4增量进程过滤器
tF5显示树形结构
<, >F6选择排序方式
[F7可减少nice值可以提高对应进程的优先级
]F8可增加nice值,降低对应进程的优先级
kF9可对进程传递信号
qF10结束htop
u只显示一个给定的用户的过程
U取消标记所有的进程
H显示或隐藏用户线程
K显示或隐藏内核线程
F跟踪进程
P按CPU 使用排序
M按内存使用排序
T按Time+ 使用排序
l显示进程打开的文件
I倒转排序顺序
s选择某进程,按s:用strace追踪进程的系统调用

F2 Htop设定
鼠标点击 Setup 或者按下 F2 之后进入 htop 设定的页面。

Setup 选项下的:

  1. Meters
    设定顶端的 显示信息,分为左右两侧,Left column 表示左侧的显示的信息,Right column 表示右侧显示的信息,如果要新加选项,可以选择 Available meters 添加,F5 新增到上方左侧,F6 新增到上方右侧。Left column 和 Right column 下面的选项,可以选定信息的显示方式,有 LED、Bar(进度条)、Text(文本模式),可以根据个人喜好进行设置。

  2. Display options
    选择要显示的内容,按空格 x表示显示,选择完后,按 F10 保存

  3. Colors
    设定界面以什么颜色来显示。

  4. Columns
    作用是增加或取消要显示的各项内容,选择后 F7(向上移动)、F8(向下移动)、F9(取消显示、F10(保存更改))此处增加了 PPID、PGRP,根据各人需求,显示那些信息。

F3 搜索进程
在界面下按 F3 或直接输入 ”/” 就可以直接进入搜索模式,是按照进程名进行搜索的。搜索到的进程会用设定的颜色标记出来,方便查看。

F4:过滤器
相当于模糊查找,不区分大小写,下方输入要搜索的内容后,则界面只显示搜索到的内容,更加方便查看。

F5: 以树形方式显示

F6:排序方式

F7,F8:调整进程 nice 值
F7 表示减小 nice 值(增大优先级),F8 增大 nice 值(减小优先级),选择某一进程,按 F7 或 F8 来增大或减小 nice 值,nice 值范围为 -20 ~ 19。

F9:杀死进程
选择某一进程按 F9 即可杀死此进程,很方便。

F10: 退出htop

标注进程条目

在系统中运行着的实时进程视图中,要追踪某个进程是个大问题。因为整个列表在不停的刷新着,进程的排列顺序也在变动着。为了这个问题, htop 提供了一个很简单的解决方案:颜色标注。是的,你可以标注一个进程条目,它会以不同的颜色显示,因此要追踪它就变得容易了。

要标注某个进程条目,需要做的就是选中此条目,然后按下空格键。例如,在下面的截图示例中,我已经颜色标注了两个进程条目(黄色高亮显示的两行):

命令行选项

除了上面介绍的一些热键,htop 还提供了很有用的命令行选项。下面是其中一部分:

  • -s 选项 : 按指定的列排序。例如,htop -s PID 命令会按 PID 列的大小排序来显示。
  • -u 选项 : 显示指定的用户的进程信息列表。例如,htop -u vagrant 命令会只显示出用户名为 vagrant 的相关进程。
  • -d 选项 : 设置刷新的延迟时间。例如,htop -d 100 命令会使输出在 1 秒后才会刷新(参数 -d 的单位是 10 微秒)。