gtop 介绍与选型指南

讲清 gtop(aksakalli/gtop,Node.js 终端系统监控仪表盘)的定位、界面构成、数据来源与维护现状,并与 htop、btop、bottom、glances 做量化选型对比,帮助读者判断"什么场景该选 gtop、什么场景不该选"。本文为认知篇,全部事实性内容(版本、星数、提交历史、界面构成、维护状态)均来自官方仓库与 npm 仓库联网溯源,溯源来源与查询日期见「一、环境信息」。

gtop系统监控LinuxNode.js命令行2026/10/23

gtop 介绍与选型指南

目标:讲清 gtop(aksakalli/gtop,Node.js 终端系统监控仪表盘)的定位、界面构成、数据来源与维护现状,并与 htop、btop、bottom、glances 做量化选型对比,帮助读者判断"什么场景该选 gtop、什么场景不该选"。本文为认知篇,全部事实性内容(版本、星数、提交历史、界面构成、维护状态)均来自官方仓库与 npm 仓库联网溯源,溯源来源与查询日期见「一、环境信息」。

一、环境信息

本文为认知篇,不涉及本地实验;以下为本篇联网溯源的信息来源清单(查询日期统一为 2026-10-23):

溯源项来源用途
项目主页https://github.com/aksakalli/gtop定位、安装方式、快捷键、排障说明(README)
GitHub Releaseshttps://github.com/aksakalli/gtop/releases最新 Release 版本号(v1.1.5)
提交历史https://github.com/aksakalli/gtop/commits/master维护活跃度判定
Star 徽章https://shields.io/github/stars/aksakalli/gtopStar 数(9.9k)
npm 仓库https://registry.npmjs.org/gtop(`npm view gtop` 同源)最新版本、发布时间、依赖清单
源码文件 lib/gtop.js、lib/monitor/*.js(v1.1.5)npm 包内源码界面布局、刷新间隔、退出键位
官方 man 手册源 CLI.md(随 v1.1.5 npm 包分发)npm 包内文件官方声明的交互命令

对比组件(htop/btop/bottom/glances)的版本与 Star 数同样取自 shields.io 徽章(查询日期 2026-10-23),详见「七、同类选型对比」。

二、软件概述

gtop("graphic top")是 Can Güney Aksakalli(GitHub ID:aksakalli)开发的终端系统监控仪表盘,官方 README 一句话定位为 "System monitoring dashboard for terminal"。它在同一个字符终端画面里,用图形化的趋势图、环形图与表格同时呈现 CPU、内存、Swap、网络、磁盘、进程六类指标,形态介于传统 top/htop(以进程列表为中心)与 glances(多形态监控工具)之间——它不追求"进程管理",而是把"一眼看清整机状态"做成了一张终端里的仪表盘。

项目关键事实(2026-10-23 实查):

项目值来源
仓库aksakalli/gtopGitHub
许可证MIT仓库 LICENSE
开发语言JavaScript(Node.js)npm 仓库 package.json
最新稳定版v1.1.5(npm 发布时间 2023-08-11,与 GitHub Releases 最新 tag 一致)npm registry + GitHub Releases
首个版本0.0.1(npm 发布时间 2017-08-09)npm registry
Star 数9.9kshields.io 徽章
官方支持的运行环境Linux / macOS / Windows(部分支持),Node.js >= v8官方 README
安装方式npm install gtop -g(官方推荐)、Snap(见下方维护状态说明)官方 README

维护状态(选型前必须知道):gtop 的版本节奏已经长期放缓——npm 发布史显示 1.0.2(2020-02)→ 1.1.0(2020-12)→ 1.1.1(2021-06)→ 1.1.2(2021-11)→ 1.1.3(2022-01)→ 1.1.5(2023-08-11);提交历史显示最后一次成规模的提交在 2023-08-11(与 1.1.5 发布同日),此后仅 2025-11-06 有一次单独提交。也就是说,1.1.5 已是三年多未更新的版本,项目实质处于低频维护/半停滞状态。对使用者的直接影响是:新出现的系统环境兼容问题不会被官方修复,选型时应把它当作"功能稳定但不再演进"的工具看待(本组 gtop 系列文档中的兼容性实测也印证了这一点,详见《gtop 1.1.5 常用 CLI 命令与工具详解》的常见问题节)。

💡 说明:官方 README 还挂有 Snap 徽章(snapcraft.io/gtop),但 2026-10-23 通过 Snap Store API(api.snapcraft.io)实查,gtop 这个 snap 名称下"没有已发布的 revision"(返回 resource-not-found: has no published revisions),即 Snap 渠道当前实际不可用,选型时不要把 Snap 当作可行安装路径。

三、核心架构

gtop 是一个纯 Node.js 单进程应用,安装后由 /usr/local/bin/gtop(npm bin 入口)启动,内部依赖链只有三个核心包(v1.1.5 package.json 实查:blessed ^0.1.81、blessed-contrib ^4.11.0、systeminformation ^5.18.15,连同传递依赖共 61 个 npm 包):

gtop(Node.js 进程)
├── blessed            终端 UI 框架:全屏画面、键盘事件、屏幕缓冲管理
├── blessed-contrib    仪表盘组件:折线图(line)、环形图(donut)、迷你图(sparkline)、表格(table)、网格布局(grid)
└── systeminformation  数据采集:读取 /proc 等系统接口,提供 CPU/内存/网络/磁盘/进程指标

界面构成(v1.1.5 源码 lib/gtop.js 实查):整个画面是一个 12×12 的 blessed-contrib 网格,共 7 个图块,从上到下、从左到右依次为:

图块组件类型网格位置(行,列,宽,高)展示内容刷新间隔(源码实测值)
CPU Historyline 折线图(0, 0, 12, 4)逐核 CPU 使用率历史曲线(纵轴 0–100%),图例逐核显示实时百分比1 秒
Memory and Swap Historyline 折线图(4, 0, 8, 4)内存与 Swap 使用率历史曲线(图例两项)1 秒
Memorydonut 环形图(4, 8, 4, 2)内存使用率百分比1 秒
Swapdonut 环形图(6, 8, 4, 2)Swap 使用率百分比1 秒
Network Historysparkline 迷你图(8, 0, 6, 2)默认网卡的收发速率序列,附 "Receiving"/"Total received" 文本1 秒
Disk usagedonut 环形图(10, 0, 6, 2)文件系统使用率百分比10 秒
Processestable 表格(8, 6, 6, 4)进程列表(PID、Command、%CPU、%MEM 四列),支持按列排序3 秒

💡 技术拓展:终端里的"图形"本质是字符画布,业界主要有三类绘制方案——

方案原理代表取舍
Braille 盲文字符点阵用 ⣿⣾⠉ 等 2×4 点阵盲文字符拼出高分辨率折线/圆弧gtop(blessed-contrib/drawille)精细、无需额外依赖,依赖终端支持 UTF-8
ncurses 窗口绘制C 库直接操作终端缓冲区画线/填色htop、btop性能极高、控制精细,需系统 ncurses
纯文本表格不做图形,仅字符表格与着色top、glances 的 TUI 模式兼容性最好,信息密度靠排版

gtop 采用的是第一种:曲线与环形图全部由 Braille 字符拼出,边框则使用终端的 ACS 线条字符集。这也是它对 UTF-8 locale 与终端类型敏感的原因(官方 README 为此专门给了排障环境变量,见「六、适用场景与限制」)。

数据流:每个图块对应 lib/monitor/ 下的一个采集模块(cpu.js、mem.js、net.js、disk.js、proc.js),模块内部调用 systeminformation 对应接口(si.currentLoad/si.mem/si.networkStats/si.fsSize/si.processes),按上表间隔轮询并回调刷新画布。源码注释明确标注 Cpu 与 Proc 两个模块"no Windows support"(Windows 下不采集这两项)。

四、功能特性

基于官方 README、随包 CLI.md 与 v1.1.5 源码的溯源,gtop 的能力边界如下:

具备的能力:

  1. 整机仪表盘:CPU(逐核曲线+实时百分比图例)、内存与 Swap(曲线+双环形图)、默认网卡流量(迷你图+累计接收量)、文件系统使用率(环形图)、进程列表(表格),七块同屏。
  2. 进程表排序:官方 CLI.md(随包 man 手册源)声明三个交互命令——p 按 Process Id 排序、c 按 CPU usage 排序、m 按 Memory usage 排序。
  3. 快捷退出:源码 screen.key(['escape', 'q', 'C-c']) 同时绑定 Esc、q、Ctrl+C 三键退出。
  4. 跨平台运行:Linux/macOS 完整支持;Windows 可运行但 CPU 与进程两个模块不工作(源码注释明示)。

明确不具备的能力(选型时逐条对照需求):

  1. 只读监控,不能管理进程:没有杀进程(kill)、renice、树状视图,进程交互仅"排序"一项。
  2. 无配置文件、无命令行参数:不提供任何配置文件或启动参数,布局、配色、刷新间隔全部硬编码在源码中(要改只能改 lib/ 下源码文件)。
  3. 无告警、无历史持久化、无远程/Web 形态:数据只在内存里画到屏幕上,退出即失;不能像 glances 那样导出 CSV/InfluxDB/Prometheus 或走 C/S 模式。
  4. 单机视角:只看本机,没有多节点聚合能力。

五、快速开始(最小可用示例)

以下命令序列来自官方 README(2026-10-23 实查原文),是 gtop 的完整最小用法——安装、启动、退出共三步:

# 1. 前置:具备 Node.js >= 8 环境后,全局安装(官方推荐方式)
npm install gtop -g

# 2. 启动仪表盘
gtop

# 3. 退出:按 q(多数终端环境也可用 Ctrl+C)

官方 README 同时给出的排障提示:若界面出现问号或乱码字符,用以下环境变量启动:

LANG=en_US.utf8 TERM=xterm-256color gtop

安装步骤的完整实测(含 Node 版本兼容矩阵、离线安装、非 root 用户排障)见《Ubuntu 24.04 安装 gtop 1.1.5 指南》;启动后的键位与界面逐块解读见《gtop 1.1.5 常用 CLI 命令与工具详解》。

六、适用场景与限制

适合用 gtop 的场景:

  1. 临时巡检/演示:想在 SSH 会话里快速看一眼整机各维度状态,且希望画面"图形化、好看、一屏全览"——gtop 无需任何配置,装完就跑。
  2. 已有 Node.js 运行时的开发机:Node 环境现成时,npm install -g gtop 一条命令即装(实测 61 个包、十余秒装完)。
  3. 轻量监控画面的"装饰性"需求:大屏/录屏/教学演示中需要一张终端仪表盘,gtop 的 Braille 曲线视觉效果好且零配置。

不适合或需谨慎的场景:

  1. 需要进程管理:要 kill/renice 进程请直接用 htop。
  2. 需要告警/导出/远程监控:需要持久化、Web 界面、API 或对接 Prometheus 时,glances 是同生态位的对口工具(站内实测文档见 《glances 介绍与选型指南》)。
  3. 长期无人维护不可接受的生产环境:gtop 上游自 2023-08 后无实质开发(见「二、软件概述」),遇到新系统兼容问题只能自行改源码或换工具。
  4. 无 Node.js 运行时且不愿为此装 Node 的服务器:gtop 必须有 Node.js >= 8;追求零依赖时应选 btop(单二进制,C++ 编译)或 htop。

七、同类选型对比

对 gtop 同生态位的四款终端监控工具做量化对比。版本号与 Star 数均为 2026-10-23 通过 shields.io 徽章实查(shields.io/github/stars/<owner>/<repo> 与 shields.io/github/v/tag/<owner>/<repo>),gtop 的维护状态依据其 GitHub 提交历史与 npm 发布史实查:

维度gtophtopbtopbottomglances
开发语言/运行时JavaScript(需 Node.js >= 8)CC++(单二进制)Rust(单二进制 btm)Python(>= 3.8)
最新版本(2026-10-23 实查)v1.1.5(2023-08-11 发布)v3.5.3v1.4.7最新 tag 为 nightly 滚动构建v4.5.8
GitHub Star9.9k8.4k35k14k34k
形态全屏 TUI 仪表盘全屏 TUI(进程为中心)全屏 TUI 仪表盘全屏 TUI 仪表盘(可自定义布局)TUI / Web / C-S / REST API 多形态
图形化程度Braille 曲线+环形图,开箱即用条形图为主,表格为中心字符画布曲线+图表,丰富图表丰富,支持自定义小组件TUI 模式以表格为主,Web 模式有图
配置能力无配置文件(改源码定制)配置文件 + 界面内设置主题/配置文件丰富配置文件丰富(TOML)配置文件 + 模块开关 + 告警阈值
进程管理仅排序(p/c/m)kill/renice/树状/过滤kill/菜单树完整进程排序与查看进程排序/kill(部分平台)
导出/远程无无无支持数据导出CSV/InfluxDB/Prometheus/Cassandra 等,支持 C/S 远程
额外依赖Node.js + 61 个 npm 包无(系统包管理器直装)无(单二进制)无(单二进制)Python + psutil(pip 安装)
维护状态(2026-10-23 实查)低频维护:最后实质提交 2023-08-11,2025-11 仅一次提交活跃活跃活跃(nightly 持续滚动)活跃(v4.5.8 与站内 glances 系列文档版本一致)

关键差异与选型建议:

  • 表格解读:gtop 与 btop/bottom 同为"仪表盘形态",差异在依赖与维护——gtop 拖着 Node.js 运行时和 61 个 npm 包,且上游基本停更;btop/bottom 是零依赖单二进制且持续活跃。gtop 相对它们的唯一显著优势是"Node 环境现成时的安装路径最短"与"画面风格轻快"。
  • 如果服务器已有 Node.js 且只想临时看一张图形化整机仪表盘 → gtop 合适,安装与上手成本最低。
  • 如果需要进程管理(kill/树状视图) → htop,gtop 明确不做这件事。
  • 如果追求长期维护、零依赖、强图形化 → btop(Star 35k,持续发版)或 bottom(可定制性更强)。
  • 如果需要告警、导出、Web/远程监控 → glances,它是五者中唯一具备"监控数据出口"的工具,站内已有完整实测系列:《glances 介绍与选型指南》、《Ubuntu 24.04 安装 glances 4.5.8 指南》、《glances 4.5.8 配置参数详解》、《glances 4.5.8 常用 CLI 命令与工具详解》。
  • 如果环境无法满足 Node.js >= 8(老内网机器)→ 只能在 htop/btop 中选,gtop 直接排除。

八、参考链接

  1. gtop 项目主页(README、安装与排障说明):https://github.com/aksakalli/gtop
  2. gtop GitHub Releases(版本清单):https://github.com/aksakalli/gtop/releases
  3. gtop npm 仓库页(版本与依赖):https://www.npmjs.com/package/gtop
  4. 官方 man 手册源 CLI.md(随 v1.1.5 npm 包分发,包内路径 CLI.md)
  5. 本系列安装实测:《Ubuntu 24.04 安装 gtop 1.1.5 指南》
  6. 本系列命令实测:《gtop 1.1.5 常用 CLI 命令与工具详解》
  7. 同生态位站内文档:《glances 介绍与选型指南》