htop

C/C++ 2025-08-11

介绍

htop是跨平台交互式过程查看器。

htop允许在垂直和水平滚动过程列表,以查看其完整的命令行和相关信息,例如内存和CPU消耗。还显示了系统广泛的信息,例如负载平均值或互换使用。

显示的信息是可以通过图形设置进行配置的,可以进行交互分类和过滤。

可以在不进入PID的情况下完成与过程(例如杀戮和重新恢复)有关的任务。

运行htop需要ncurses库,通常称为libncurses(w)。

htop用C写成。

有关更多信息和详细信息,请访问htop .dev。

建立说明

先决条件

构建时间依赖性列表:

  • 标准GNU Autotools基于C工具链
    • C99符合编译器
    • autoconf
    • automake
    • autotools
  • ncurses

关于ncurses的注意:

htop需要ncurses 6.0。请注意,适当的软件包有时仍称为libncurses5(在debian/ubuntu上)。 ncurses通常有两种口味:

  • 在Unicode支持下。
  • 没有Unicode支持。

这也是在Debian/Ubuntu上的软件包名称中反映的东西(通过附加的“ w' - 'w'ide字符支持)。

额外的构建时间依赖项列表(基于功能标志):

  • pkg-config
  • sensors
  • hwloc
  • libcap (v2.21或更高版本)
  • libnl-3libnl-genl-3

pkg-config是可选的,但建议使用。 htop的配置脚本可能会利用pkg-config获得库所需的编译器和链接标志。一些OS分布通过诸如pkgconf等替代实现提供pkg-config功能。在您的软件包管理器中查找两个名称。

安装这些和其他必需的软件包,以从软件包管理器中进行C开发。

Debian/Ubuntu

sudo apt install libncursesw5-dev autotools-dev autoconf automake build-essential

软呢帽/RHEL

sudo dnf install ncurses-devel automake autoconf gcc

Archlinux/Manjaro

sudo pacman -S ncurses automake autoconf gcc

macos

brew install ncurses automake autoconf gcc

从来源编译:

要从源头编译,请从GIT存储库中下载( git clone或从GitHub版本下载),然后运行:

./autogen.sh && ./configure && make

安装

在本地系统运行上make install 。默认情况下, make install安装到/usr/local中。要更改此路径使用./configure --prefix=/some/path

构建选项

htop具有多种构建时间选项,可以启用/禁用其他功能。

通用的

  • --enable-unicode :启用Unicode支持
    • 依赖性: libncursesw
    • 默认值:是的
  • --enable-affinity :enable sched_setaffinity(2)sched_getaffinity(2)以获得亲和力支持;与HWLOC发生冲突
    • 默认值:检查
  • --enable-hwloc :启用HWLOC支持CPU亲和力;禁用亲和力支持
    • 依赖性: libhwloc
    • 默认:
  • --enable-static :构建静态htop二进制;不支持HWLOC和延迟会计
    • 默认:
  • --enable-debug :启用断言和内部理智检查;意味着绩效处罚
    • 默认:

绩效副驾驶

  • --enable-pcp :通过新的PCP- htop实用程序启用性能副驾驶支持
    • 依赖性: libpcp
    • 默认:

Linux

  • --enable-sensors :启用libsensor(3)支持阅读温度数据
    • 依赖项: libsensors-dev (构建时间),在运行时通过dlopen(3)加载libsensors (3)
    • 默认值:检查
  • --enable-capabilities :启用Linux功能支持
    • 依赖性: libcap
    • 默认值:检查
  • --with-proc :与Linux兼容的PROC文件系统的位置
    • 默认值: /proc
  • --enable-openvz :启用OpenVZ支持
    • 默认:
  • --enable-vserver :启用VServer支持
    • 默认:
  • --enable-ancient-vserver :启用古代vserver支持(暗示--enable-vserver
    • 默认:
  • --enable-delayacct :启用Linux延迟会计支持
    • 依赖项: libnl-3-dev (构建时间)和libnl-genl-3-dev (构建时间),在运行时libnl-3libnl-genl-3通过dlopen(3)加载并请求,并请求
    • 默认值:检查

运行时依赖性:

htop具有一组固定的最小运行时依赖关系,尽可能保持最小。

  • ncurses库用于终端处理(广泛的字符支持)。

运行时可选依赖性:

htop具有一组固定的可选依赖项,具体取决于使用的构建/配置选项:

Linux

  • 当存在对可选依赖关系(即libsensorslibsystemd )的支持时, libdl始终需要静态二进制。
  • libcap是POSIX 1003.1E功能的用户空间接口,当使用--enable-capabilities配置htop时,总是需要使用。
  • libsensors ,温度和CPU速度的读数,即使使用--enable-sensors用于配置htop ,也是可选的。
  • libsystemd是可选的,当时不使用--enable-static来配置htop 。如果未通过configure找到静态的构建和libsystemd ,则完全禁用对SystemD仪表的支持。
  • libnl-3libnl-genl-3 ,如果htop配置了--enable-delayacct和延迟会计过程字段,则有效。
  • 当内核与CONFIG_TASK_IO_ACCOUNTING=Y编译时,可以使用I/O计数器。

htop检查htop运行时实际运行时库的可用性。

BSD

在大多数BSD系统上, kvm是阅读内核信息的要求。

有关所需和可选依赖项的更多信息,请参见configure.ac。

用法

有关支持的密钥命令的列表,请参见“手册”页面( man htop )或“ HTOP”( htop内部的F1H )。

支持

如果您运行htop遇到困难,请咨询您的操作系统 / Linux分发文档,以获取支持和提交错误。

错误,开发反馈

我们有一个开发邮件列表。随时订阅发布公告或询问有关htop开发的问题。

您也可以在Libera.Chat上加入我们的IRC频道htop ,并与那里的开发人员交谈。

如果您在htop的来源中发现了问题,请检查是否已经在我们的GitHub Diseage Tracker中进行了报告。如果没有,请提交一个新问题,描述您发现的问题,您所引用的源代码中的潜在位置以及可能的修复程序。

历史

htop是2004年至2019年由Hisham Muhammad发明,开发和维护的。他的遗产存储库已被存档以保护历史。

在2020年,一个团队友好地接管了该开发项目,并继续协作维持htop

执照

GNU通用公共许可证,版本2(GPL-2.0)或您的选项,任何以后的版本。

下载源码

通过命令行克隆项目:

git clone https://github.com/htop-dev/htop.git