gotop:终端图形化系统监控工具
gotop 是一个用 Go 编写的终端图形化系统活动监视器,受 gtop 和 vtop 启发,可在终端里用图表查看 CPU、内存、磁盘、网络与进程等资源占用。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v4.2.0
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
gotop 是一个用 Go 编写的终端图形化系统活动监视器,灵感来自 gtop 和 vtop。它在终端中以图表形式展示系统资源使用情况,适合习惯在终端里工作的开发者和运维人员使用。
<img src="https://raw.githubusercontent.com/xxxserxxx/gotop/master/assets/screenshots/demo.gif" />
项目在 Linux、FreeBSD 和 macOS 上经过测试;提供 Windows 二进制文件,但测试有限;OpenBSD 可用但有部分限制,且不提供二进制文件。
主要功能
- 终端内的图形化仪表盘,支持自定义布局(layout)和配色方案(colorscheme)。
- 内置多套布局,可通过
-l切换,例如-l kitchensink、-l battery、-l minimal。 - 进程列表支持鼠标操作:单击选中进程,滚轮滚动查看进程。
- nvidia 支持:使用
--nvidia参数启用,需要系统安装nvidia-smi且 gotop 能找到该可执行文件。 - remote:允许 gotop 从导出 Prometheus 指标的应用(包括远程 gotop 实例本身)拉取传感器数据。
- 运行中按
?键查看快捷键,或用--list keys打印按键绑定。 - 支持多语言翻译(例如荷兰语)。
'-l kitchensink' + colorscheme
<img src="https://raw.githubusercontent.com/xxxserxxx/gotop/master/assets/screenshots/kitchensink.gif" />
"-l battery"
<img src="https://raw.githubusercontent.com/xxxserxxx/gotop/master/assets/screenshots/battery.png" />
"-l minimal"
<img src="https://raw.githubusercontent.com/xxxserxxx/gotop/master/assets/screenshots/minimal.png" />
自定义 layout / procs
<img src="https://raw.githubusercontent.com/xxxserxxx/gotop/master/assets/screenshots/procs.png" />
安装与使用
按平台安装:
- Arch:从 AUR 安装,例如
yay -S gotop-bin,另有gotop和gotop-git。 - Gentoo:在 guru overlay 中提供:
sudo layman -a guru sudo emerge gotop - Nix:
nix-shell -p gotop --run gotop,或把gotop包加入环境。 - OSX:
brew install gotop。安装前需卸载并 untap 之前的安装或 tap。 - Windows:在 Scoop 的 Main bucket 中,
scoop install gotop。 - 预编译二进制:可从 GitHub Releases 页面 下载,同时提供 RPM 和 DEB 包。
- 源码安装(需要 Go >= 1.16):
go install github.com/xxxserxxx/gotop/v4/cmd/gotop@latest
手动下载编译:
git clone https://github.com/xxxserxxx/gotop.git
cd gotop
# This ugly SOB gets a usable version from the git tag list
VERS="$(git tag -l --sort=-v:refname | sed 's/v\([^-].*\)/\1/g' | head -1 | tr -d '-' ).$(git describe --long --tags | sed 's/\([^-].*\)-\([0-9]*\)-\(g.*\)/r\2.\3/g' | tr -d '-')"
DAT=$(date +%Y%m%dT%H%M%S)
go build -o gotop \
-ldflags "-X main.Version=v${VERS} -X main.BuildDate=${DAT}" \
./cmd/gotop
编译完成后把 gotop 可执行文件放到 $PATH 中的某个目录。如果没有安装 Go 或版本不符,又没有 root 权限,可使用仓库提供的 scripts/install_without_root.sh 脚本下载 Go 与源码并编译。
运行 gotop -h 可查看完整的命令行参数列表,其中许多参数也可以通过配置文件设置。更多主题的文档:
监控远程机器:gotop 可以监控运行在其他机器上的 gotop 实例,并在单个实例中展示部分指标。该用法预期运行在代理之后或安全内网中,配置示例见 Remote Monitoring 文档。
注意事项
- 手动安装 gotop,或下载/创建新的 layout 与 colorscheme 时,需要把文件放到 gotop 能找到的目录。运行
gotop -h可以查看搜索目录列表,第一个目录始终是运行 gotop 时所在的目录。 - 终端需要支持盲文(braille)和方块字符的 Unicode 码点,部分发行版不提供。仓库中附带了一个包含这些字符的
pcf字体,可使用以下命令安装:curl -O -L https://raw.githubusercontent.com/xxxserxxx/gotop/master/fonts/Lat15-VGA16-braille.psf setfont Lat15-VGA16-braille.psf - 部分平台特性只支持特定系统:nvidia 仅在有 NVIDIA GPU 的系统上可用;SMART NVMe 硬盘温度仅支持 Linux 与 Darwin。
- 扩展已并入主代码库:go plugin 在实际使用中不可行,nvidia 与 remote 功能现内置于主程序。
- 源码构建需要 Go 1.16 或更高版本;如需用更早版本构建,请检出 v4.2.0 之前的 tag。
本作品整理自 GitHub 开源项目 xxxserxxx/gotop,原作者 @xxxserxxx。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v4.2.0当前版本
以修复 bug 为主:gotop 上架 Nix;简化并改进 getTemps() 逻辑,修正 NVMe 温度的开尔文到摄氏度换算;修复 macOS 构建问题;新增荷兰语翻译;进程列表支持 PageUp/PageDown 滚动与按命令排序;重写排序代码带来约 10% 性能提升。
评论