119 lines
4.5 KiB
Markdown
119 lines
4.5 KiB
Markdown
<div align="center">
|
||
<img src="./assets/logo/logo.png" width="20%" />
|
||
|
||
![](https://img.shields.io/github/v/release/xxxserxxx/gotop?display_name=tag&sort=semver)
|
||
|
||
</div>
|
||
<br><br>
|
||
|
||
一个基于终端的图形活动监视器, 基于[xmtop](https://github.com/xxxserxxx/gotop) 使用Go语言编写
|
||
|
||
看看 [更新日志](/更新日志.md) 最新版本都带来那些变化
|
||
|
||
<img src="./assets/screenshots/demo.gif" />
|
||
|
||
</div>
|
||
|
||
## 安装
|
||
|
||
目前xmtop主要适配 龙架构 和 x86架构 的linux系统
|
||
|
||
如果您手动安装xmtop,或者您下载或创建新的布局或配色方案,则需要将布局文件放在xmtop可以找到的地方。要查看xmtop查找文件的目录列表,请运行`xmtop -h`。第一个目录始终是运行xmtop的目录。
|
||
|
||
- **二进制安装**:
|
||
```
|
||
wget
|
||
|
||
```
|
||
|
||
|
||
### 控制台(Console)用
|
||
|
||
xmtop需要一些特殊符合和Unicode代码点的字体;一些发行版不提供此功能。在xmtop存储库中有一种字体,使用此字体可能会改善xmtop在终端中的呈现方式。使用方法如下:
|
||
|
||
```shell
|
||
curl -O -L https://raw.githubusercontent.com/xxxserxxx/gotop/master/fonts/Lat15-VGA16-braille.psf
|
||
setfont Lat15-VGA16-braille.psf
|
||
```
|
||
|
||
### 编译
|
||
|
||
xmtop需要使用go1.21或以后的版本编译
|
||
|
||
```shell
|
||
git clone ssh://git@gitea.whlug.cn:33262/LK/xmtop.git && cd xmtop
|
||
# This ugly SOB gets a usable version from the git tag list
|
||
# 这个丑陋的SOB从git标签列表中获取可用版本
|
||
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
|
||
```
|
||
|
||
如果您想在Linux上尽可能压缩可执行文件,请将`ldflags`行更改为:
|
||
|
||
```
|
||
-ldflags "-X main.Version=v${VERS} -X main.BuildDate=${DAT} -extldflags '-s -w'" \
|
||
```
|
||
|
||
编译完成后将`xmtop`可执行文件移动到$PATH中的某个位置。
|
||
|
||
如果Go没有安装或者是错误的版本,并且您没有root访问权限或不想升级Go,则会提供一个脚本来下载Go和gotops源,编译gotops,然后进行清理。请参见`scripts/install_without_root.sh`。
|
||
|
||
## 使用
|
||
|
||
运行`-h`可以获取帮助菜单。其中许多功能都可以通过创建配置文件来配置; 有关更多信息,请参见下一节。键绑定可以在xmtop运行时通过按`?`键,或者可以使用`——list keys`命令打印出来。
|
||
|
||
除了键绑定之外,还可以使用鼠标来控制进程列表:
|
||
|
||
- 点击选择流程
|
||
- 鼠标滚轮滚动浏览进程
|
||
|
||
有关其他主题的更多信息,请参阅
|
||
|
||
- [Layouts](./docs/layouts.md)
|
||
- [Configuration](./docs/configuration.md)
|
||
- [Color schemes](./docs/colorschemes.md)
|
||
- [Device filtering](./docs/devices.md)
|
||
- [Extensions](./docs/extensions.md)
|
||
|
||
## 监控远程机器
|
||
--------------------------
|
||
|
||
gotops可以监视在远程计算机上运行的gotops,并在单个实例中显示 (某些) 指标。Gottop希望在代理后面,或者在安全的内部网内。文档中提供了一个
|
||
[远程监控实例](./docs/remote-monitoring.md)
|
||
设置
|
||
|
||
## 截图
|
||
|
||
#### '-l kitchensink' + colorscheme
|
||
<img src="./assets/screenshots/kitchensink.gif" />
|
||
|
||
#### "-l battery"
|
||
<img src="./assets/screenshots/battery.png" />
|
||
|
||
#### "-l minimal"
|
||
<img src="./assets/screenshots/minimal.png" />
|
||
|
||
#### Custom (layouts/procs)
|
||
<img src="./assets/screenshots/procs.png" />
|
||
|
||
## Built With
|
||
|
||
- [gizak/termui](https://github.com/gizak/termui)
|
||
- [nsf/termbox](https://github.com/nsf/termbox-go)
|
||
- [exrook/drawille-go](https://github.com/exrook/drawille-go)
|
||
- [shirou/gopsutil](https://github.com/shirou/gopsutil)
|
||
- [goreleaser/nfpm](https://github.com/goreleaser/nfpm)
|
||
- [distatus/battery](https://github.com/distatus/battery)
|
||
- [VictoriaMetrics/metrics](https://github.com/VictoriaMetrics/metrics) 看看这个!该API干净、优雅,引入的间接依赖比Prometheus客户端少得多,并且将二进制文件的大小减少了50%。
|
||
- [lingo](https://github.com/xxxserxxx/lingo) 基于 [jdkeke142's](https://github.com/jdkeke142/lingo-toml) 派生于 [kortemy's](https://github.com/kortemy/lingo) 的lingo.
|
||
|
||
|
||
## 项目历史
|
||
|
||
gotop的最初作者在Rust中启动了一个名为[ytop](https://github.com/cjbassi/ytop)的新工具,并弃用了他的Go版本。这个项目是基于[gotop项目的xxxserxxx分支](https://github.com/xxxserxxx/gotop)制作的。主要目的是用来优化龙架构的使用体验和添加更丰富的功能。
|
||
|
||
|