htop-dev/htop

GitHub: htop-dev/htop

htop 是一个用 C 语言编写的跨平台交互式进程查看器,提供了比传统 top 更直观的彩色终端界面和便捷的进程管理功能。

Stars: 7983 | Forks: 577

# [![htop logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7c15a1c75e064219.png)](https://htop.dev) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/16145e7496064220.svg)](https://github.com/htop-dev/htop/actions) [![Coverity Scan Build Status](https://scan.coverity.com/projects/21665/badge.svg)](https://scan.coverity.com/projects/21665) [![Mailing List](https://img.shields.io/badge/Mailing%20List-htop-blue.svg)](https://groups.io/g/htop) [![IRC #htop](https://img.shields.io/badge/IRC-htop-blue.svg)](https://web.libera.chat/#htop) [![GitHub Release](https://img.shields.io/github/release/htop-dev/htop.svg)](https://github.com/htop-dev/htop/releases/latest) [![Packaging status](https://repology.org/badge/tiny-repos/htop.svg)](https://repology.org/project/htop/versions) [![License: GPL v2+](https://img.shields.io/badge/License-GPL%20v2+-blue.svg)](COPYING?raw=true) ![htop 截图](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/bc622c3038064222.png) ## 简介 `htop` 是一个跨平台的交互式进程查看器。 `htop` 允许垂直和水平滚动进程列表,以查看其完整的命令行和相关信息,如内存和 CPU 消耗。 此外,还显示系统级信息,如平均负载或交换空间使用情况。 显示的信息可以通过图形设置进行配置,并且可以进行交互式排序和过滤。 与进程相关的任务(例如终止和调整优先级)可以在不输入其 PID 的情况下完成。 运行 `htop` 需要 `ncurses` 库,通常命名为 libncurses(w)。 `htop` 是用 C 语言编写的。 有关更多信息和详细信息,请访问 [htop.dev](https://htop.dev)。 ## 用法 有关支持的按键命令列表,请参阅手册页(`man htop`)或帮助菜单(`htop` 内按 `h` 或 `F1`)。 ### 快速开始 一些常见操作可帮助您开始使用 `htop` - 搜索进程:按 `/` - 过滤进程:按 `\` - 切换树形视图:按 `t` - 更改进程排序列:按 `.` - 终止进程:选择进程并按 `k` ## 构建说明 ### 前置条件 构建时依赖项列表: * 标准的基于 GNU autotools 的 C 工具链 - 符合 C99 标准的编译器 - `autoconf` - `automake` - `autotools` * `ncurses` **关于 `ncurses` 的说明:** 基于功能标志的其他构建时依赖项列表: * `pkg-config` * `sensors` * `hwloc` * `libcap`(v2.21 或更高版本) * `libnl-3` 和 `libnl-genl-3` `pkg-config` 是可选的,但建议使用。`htop` 的 configure 脚本可能会利用 `pkg-config` 来获取库所需的编译器和链接器标志。某些操作系统发行版通过替代实现(如 `pkgconf`)提供 `pkg-config` 功能。请在您的软件包管理器中查找这两个名称。 从您的软件包管理器安装这些以及其他 C 开发所需的软件包。 **Debian/Ubuntu** ``` sudo apt install libncursesw5-dev autotools-dev autoconf automake build-essential ``` **Fedora/RHEL** ``` sudo dnf install ncurses-devel automake autoconf gcc ``` **OpenSUSE/SLES** ``` sudo zypper install ncurses-devel ncurses-devel-static automake autoconf gcc make glibc-devel glibc-devel-static ``` **Archlinux/Manjaro** ``` sudo pacman -S --needed base-devel ncurses ``` **macOS** ``` brew install ncurses automake autoconf gcc ``` ### 从源代码编译: 要从源代码编译,请从 Git 仓库下载(`git clone` 或从 [GitHub releases](https://github.com/htop-dev/htop/releases/) 下载),然后运行: ``` ./autogen.sh && ./configure && make ``` ### 安装 要在本地系统上安装,请运行 `make install`。默认情况下,`make install` 安装到 `/usr/local`。要更改此路径,请使用 `./configure --prefix=/some/path`。 ### 构建选项 `htop` 有几个构建时选项用于启用/禁用附加功能。 #### 通用选项 * `--enable-unicode`: 启用 Unicode 支持 - 依赖项:*libncursesw* - 默认值:*yes* * `--enable-affinity`: 启用 `sched_setaffinity(2)` 和 `sched_getaffinity(2)` 以支持亲和性;与 hwloc 冲突 - 默认值:*check* * `--enable-hwloc`: 启用 hwloc 以支持 CPU 亲和性;禁用 affinity 支持 - 依赖项:*libhwloc* - 默认值:*no* * `--enable-backtrace`: 启用显示进程的回溯 - 默认值:*no* - 可能的值: - unwind-ptrace:使用 **libunwind-ptrace** 获取回溯 * `--enable-demangling`: 为回溯启用 demangle 支持 - 默认值:*check* - 可能的值: - libiberty:使用 **libiberty** (GNU) 对函数名进行 demangle - libdemangle:使用 **libdemangle** (Solaris) 对函数名进行 demangle * `--enable-static`: 构建静态 htop 二进制文件;不支持 hwloc 和延迟统计 - 默认值:*no* * `--enable-debug`: 启用断言和内部健全性检查;意味着性能损失 - 默认值:*no* #### Performance Co-Pilot * `--enable-pcp`: 通过新的 pcp-htop 实用程序启用 Performance Co-Pilot 支持 - 依赖项:*libpcp* - 默认值:*no* #### Linux * `--enable-sensors`: 启用 libsensors(3) 支持以读取温度数据 - 依赖项:*libsensors-dev*(构建时),运行时如果可用则通过 `dlopen(3)` 加载 *libsensors* - 默认值:*check* * `--enable-capabilities`: 启用 Linux capabilities 支持 - 依赖项:*libcap* - 默认值:*check* * `--with-proc`: Linux 兼容的 proc 文件系统位置 - 默认值:*/proc* * `--enable-openvz`: 启用 OpenVZ 支持 - 默认值:*no* * `--enable-vserver`: 启用 VServer 支持 - 默认值:*no* * `--enable-ancient-vserver`: 启用旧版 VServer 支持(意味着 `--enable-vserver`) - 默认值:*no* * `--enable-delayacct`: 启用 Linux 延迟统计支持 - 依赖项:*libnl-3-dev*(构建时)和 *libnl-genl-3-dev*(构建时),运行时如果可用且被请求,则通过 `dlopen(3)` 加载 *libnl-3* 和 *libnl-genl-3* - 默认值:*check* ## 运行时依赖项: `htop` 有一组固定的最小运行时依赖项,并保持尽可能最小: * 用于终端处理的 `ncurses` 库(宽字符支持)。 ### 运行时可选依赖项: `htop` 有一组固定的可选依赖项,具体取决于使用的构建/配置选项: #### Linux * `libdl`,如果未构建静态二进制文件,当存在可选依赖项(即 `libsensors`、`libsystemd`)的支持时,始终是必需的。 * `libcap`,POSIX 1003.1e capabilities 的用户空间接口,当使用 `--enable-capabilities` 配置 `htop` 时始终是必需的。 * `libsensors`,读取温度和 CPU 速度,即使使用 `--enable-sensors` 配置了 `htop` 也是可选的。 * `libsystemd`,当未使用 `--enable-static` 配置 `htop` 时是可选的。如果构建静态版本且 `configure` 未找到 `libsystemd`,则完全禁用 systemd 计量表的支持。 * `libnl-3` 和 `libnl-genl-3`,如果 `htop` 配置了 `--enable-delayacct` 且延迟统计进程字段处于活动状态。 - 当内核编译时带有 `CONFIG_TASK_IO_ACCOUNTING=Y` 时,I/O 计数器可用。 `htop` 会在运行时检查实际运行时库的可用性。 #### BSD 在大多数 BSD 系统上,`kvm` 是读取内核信息所必需的。 有关必需和可选依赖项的更多信息,可以在 [configure.ac](configure.ac) 中找到。 ## 支持 如果您在运行 `htop` 时遇到问题,请查阅您的操作系统 / Linux 发行版文档以获取支持和提交错误报告。 ## 错误、开发反馈 我们有一个 [开发邮件列表](https://htop.dev/mailinglist.html)。欢迎订阅以获取发布公告或在 `htop` 的开发方面提问。 您也可以加入我们的 IRC 频道 [#htop on Libera.Chat](https://web.libera.chat/#htop) 并与那里的开发者交流。 如果您在 `htop` 源代码中发现了一个问题,请检查我们的 [GitHub issue tracker](https://github.com/htop-dev/htop/issues) 中是否已经报告过该问题。 如果没有,请新建一个 issue,描述您发现的问题、您所指的源代码中的潜在位置,以及可能的修复方法(如果有)。 ## 历史 `htop` 由 [Hisham Muhammad](https://hisham.hm/) 于 2004 年至 2019 年期间发明、开发和维护。他的 [legacy 仓库](https://github.com/hishamhm/htop/) 已被归档以保留历史记录。 2020 年,一个 [团队](https://github.com/orgs/htop-dev/people) 友好地接管了开发,并继续协作维护 `htop`。 ## 许可证 GNU General Public License,版本 2 (GPL-2.0) 或(由您选择)任何更高版本。
标签:Awesome, CPU监控, DevOps工具, ncurses, Qt, renice, Swap监控, Unix, 内存监控, 客户端加密, 开源, 性能监控, 数字足迹, 杀进程, 树形视图, 系统管理, 终端工具, 负载监控, 运维工具, 进程排序, 进程查看器, 进程过滤