bottom 0.14.9 常用 CLI 命令与工具详解

bottom 0.14.9 命令行全解:btm 九组启动参数全量实测(默认值/边界报错/退出码)、键盘鼠标交互键位、进程搜索语法、SSH 远程使用实测与无头环境能力边界。

bottom系统监控Linux命令行2026/10/23

bottom 0.14.9 常用 CLI 命令与工具详解

目标:讲清终端监控 bottom(命令 btm)0.14.9 的命令行用法——全量启动参数(含默认值与边界行为实测)、键盘/鼠标交互键位、SSH 远程服务器使用方式,并明确其无头环境与自动化场景的能力边界。所有命令与回显均在 Ubuntu 22.04.5 LTS(x86_64,bottom 0.14.9)环境实测通过。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64),内核 6.8.0-138-generic,12 核 / 32 GB 内存(free -m 实测 total 32050 MB)
  • 软件版本:bottom 0.14.9(btm -V 实测),安装方式为官方 deb 包(安装过程见《Ubuntu 22.04 安装 bottom 0.14.9 指南》)
  • 键位佐证来源:应用内帮助菜单实测渲染(按 ? 打开)+ 官方文档 usage/general-usage.md、usage/widgets/process.md(2026-10-23 拉取核对)
  • 远程实测拓扑:两台同网段 Ubuntu 22.04 主机,被监控端 bottom-remote(安装 openssh-server + bottom 0.14.9),监控端通过 ssh 远程运行 btm

二、工具概览

bottom 是「单命令」工具:所有功能都通过 btm [OPTIONS] 一个入口 + TUI 内键盘交互完成,没有子命令体系(区别于 systemctl 类多子命令工具),也没有独立的辅助命令行工具。

btm -V 实测:

bottom 0.14.9

帮助命令有轻量与详细两档,实测 -h 输出 95 行紧凑参数表,--help 输出 238 行含逐参数详细说明(同一段帮助头):

btm -h        # 紧凑参数表(实测 95 行)
btm --help    # 详细帮助(实测 238 行,含每参数说明与示例)

两者均正常返回,退出码 0。--help 帮助头实测:

bottom 0.14.9
Clement Tsang <cjhtsang@uwaterloo.ca>

A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux,
macOS, and Windows.

Usage: btm [OPTIONS]

退出码约定(实测归纳),可用于脚本判断:

退出码含义实测触发
0正常(含 -V/-h/正常退出)btm -V、TUI 中按 q 退出
1运行期错误(参数值越界/配置非法/无终端)btm -t 10s、btm --rate 100ms、无 TTY 运行
2命令行参数本身不合法btm -x、btm --theme bogus

三、前置条件

  1. 已安装 bottom 0.14.9(见《Ubuntu 22.04 安装 bottom 0.14.9 指南》)。
  2. 在真实终端(TTY)中运行——cron/CI 等无终端环境会直接报错(实测见第八章)。
  3. 追加的配置联动能力:熟悉 ~/.config/bottom/bottom.toml 的段结构(逐参数详解见《bottom 0.14.9 配置参数详解》)。

四、btm 启动参数详解

btm --help 将参数分为九组。以下按组给出全量参数表,默认值列均来自详细帮助/官方配置注释,标注「实测」的条目附实测证据。

4.1 General(通用行为)

参数默认值作用
-b, --basicoff基础模式:隐藏图形曲线,htop 风格条形布局
-C, --config_location <PATH>~/.config/bottom/bottom.toml指定配置文件路径;文件/父目录不存在时自动创建(实测 -C /root/newdir/sub/bottom.toml 自动建出两级目录并生成默认配置)
-t, --default_time_value <TIME>60s(最小 30s)图表默认时间窗口。实测 -t 10s 报错:Error: Argument error: '--default_time_value' must be greater than 30s(退出码 1)
-r, --rate <TIME>1s(最小 250ms)刷新率。实测 --rate 100ms 报错:Error: Argument error: '--rate' must be greater than 250ms(退出码 1)
-d, --time_delta <TIME>15s(最小 1s)每次缩放的时间步长
--retention <TIME>10m(最小 1 分钟)内存中时序数据保留时长
--default_widget_type <WIDGET>proc(默认布局)启动默认选中组件;可选 cpu/mem/net/network/proc/process/processes/temp/temperature/disk/batt/battery。实测非法值 foo 报错(退出码 2)并列出全部可选值
--default_widget_count <N>1同类组件第 N 个设为默认(配合自定义布局中的重复组件)
-e, --expandedoff启动即展开默认组件(basic 模式下无效)
-m, --dot_markeroff图表用点状标记替代盲文点阵
--autohide_timeoff缩放后短暂显示时间刻度再隐藏
--hide_timeoff完全隐藏时间刻度
--show_table_scroll_positionoff表格标题显示滚动位置
--disable_clickoff禁用鼠标点击
--disable_keysoff禁用键盘快捷键(含退出键,慎用)

4.2 Process(进程组件)

参数默认值作用
-S, --case_sensitiveoff搜索默认大小写敏感
-W, --whole_wordoff搜索默认整词匹配
-R, --regexoff搜索默认启用正则
-g, --group_processesoff默认按进程名分组(tree 模式下无效)
-T, --treeoff默认树模式展示进程父子关系
--tree_collapseoff树模式默认折叠
-u, --current_usageoff进程 CPU% 按当前用量而非总量计
-n, --unnormalized_cpuoffCPU% 不按核数归一化
--process_memory_as_valueoff进程内存按数值而非百分比显示
--process_commandoff显示完整命令行而非进程名
--disable_advanced_killoffkill 只保留简单确认框(Unix 下默认可选信号)
--read_onlyoff只读模式:禁用 kill 等一切影响系统的操作
--hide_k_threadsoff隐藏内核线程
--get_threadsoff采集线程信息
--process_default_sort <COLUMN>配置或 CPU%启动排序列,覆盖配置文件的 default_sort

💡 说明:--read_only 适合把 btm 交给他人临时查看的场合(救火时互相看屏),避免误按 dd 杀进程。

4.3 Temperature(温度单位,三选一)

参数默认值作用
-c, --celsius默认摄氏度
-f, --fahrenheitoff华氏度
-k, --kelvinoff开尔文

4.4 CPU

参数默认值作用
-a, --hide_avg_cpuoff隐藏 AVG 均值条目
-l, --cpu_left_legendoffCPU 图例放左侧
--default_cpu_entry <ENTRY>all默认选中 all(逐核)/avg(均值)

4.5 Memory

参数默认值作用
--enable_cache_memoryoff显示缓存/缓冲内存曲线(仅 Linux)
--free_arcoff扣减可回收 ZFS ARC 内存(需构建特性)
--memory_legend <POSITION>top-right内存图例位置;可选 none/top-left/top/top-right/left/right/bottom-left/bottom/bottom-right
--short_gpu_namesoffGPU 条目用短名

4.6 Network

参数默认值作用
--network_use_bytesoff(默认 bits)速率按字节而非比特显示
--network_use_binary_prefixoff(默认十进制)二进制前缀(Kib/Mib)
--network_use_logoff对数刻度
--network_start_zeroedoffAll 累计值从 btm 启动起算(默认自开机起算)
--show_packetsoff显示包速率与平均包大小
--network_legend <POSITION>top-right网络图例位置(九宫格同上)
--use_old_network_legend已废弃旧图例,官方注明未测试可能损坏,勿用

4.7 Battery

参数默认值作用
--batteryoff显示电池组件(有电池的机器;自定义布局需显式声明 batt 组件)

4.8 Style

参数默认值作用
--theme <SCHEME>default内置主题六选一:default、default-light、gruvbox、gruvbox-light、nord、nord-light。实测 --theme bogus 报错(退出码 2):error: invalid value 'bogus' for '--theme <SCHEME>' 并列出全部可选值;--theme nord 实测正常启动渲染

4.9 Other

参数作用
-h, --help紧凑帮助(实测 95 行,退出码 0)
-V, --version版本输出 bottom 0.14.9

参数组合实测:btm -b -T(基础模式 + 树模式)实测可同时启用、正常渲染(帧 12,586 字节,无冲突报错)。

五、键盘与鼠标交互

5.1 应用内帮助菜单(?)

运行中按 ? 打开帮助菜单。实测渲染(按 ? 后抓帧,ANSI 剥离照抄):

┌ Help ────────────────────────────────────────────────────────────────── Esc to close ┐
│Scroll to browse or press the number key to go to the corresponding help menu section:│
│1 - General                                                                           │
│2 - CPU widget                                                                        │
│3 - Process widget                                                                    │
│4 - Process search widget                                                             │
│5 - Process sort widget                                                               │
│6 - Temperature widget                                                                │
│7 - Disk widget                                                                       │
│8 - Battery widget                                                                    │
│9 - Basic memory widget                                                               │
│Press 'Ctrl-f' or '/' to search for a keyword in the help text.                       │

帮助菜单分 9 个分区,数字键直达,Ctrl-f 或 / 可在帮助文本内搜索。

5.2 全局键位表(分区 1 - General,实测渲染 + 官方文档核对)

按键动作
q / Q / Ctrl-c退出
esc关闭弹窗/搜索/退出展开模式
Ctrl-r重置显示与已采集数据
f冻结/恢复刷新
?打开帮助菜单
e展开/收起当前选中组件(全屏单组件)
Shift+方向 或 Ctrl+方向 或 H/J/K/S(大写)在组件间移动焦点(左右上下)
h/j/k/l(小写)或方向键组件内移动
gg / home、G / end跳到表首/表尾
page-up / page-down翻页滚动
Ctrl-u / Ctrl-d半页滚动

鼠标:左键点击选中组件;进程表头点击可排序(见 5.4)。

5.3 组件间导航与展开的典型工作流

  1. 启动后默认焦点在进程表(default_widget_type 默认 proc);
  2. Shift+←/→/↑/↓ 把焦点切到目标组件(如 CPU 图);
  3. e 全屏展开该组件细看曲线,再按 e 或 esc 收回;
  4. f 冻结画面后慢慢核对数值,再按 f 恢复;
  5. 怀疑数据异常按 Ctrl-r 清空重采。

5.4 进程组件专属键位(官方 process.md 核对)

按键动作
/ 或 Ctrl-f打开/关闭搜索栏(esc 关闭但保留过滤)
s 或 F6打开排序菜单(方向键选择排序列)
tab同名进程分组切换(PID 列变为组内数量)
t 或 F5树模式切换(父子进程关系;-/+/左右键/空格 折叠展开)
dd 或 F9终止选中进程(Unix 下高级菜单可选 SIGKILL/SIGTERM 等信号)
P显示完整命令行替代进程名
I(大写)反转图表方向

搜索栏内编辑键:Ctrl-a/Ctrl-e 跳到查询首/尾,Ctrl-u 清空查询。

5.5 进程搜索语法(进阶)

搜索支持列条件关键字与逻辑组合(关键字大小写不敏感;与进程名撞车时给词加引号如 "cpu"):

关键字示例匹配列
cpu / cpu%cpu > 0.5CPU 列,支持比较运算符
mem / mem%mem < 0.5内存百分比
membmemb > 1000 b内存字节数
read / r/s / rpsread = 1 mb每秒读
write / w/s / wpswrite >= 1 kb每秒写
tread / t.readtread <= 1024 gb累计读
twrite / t.writetwrite > 1024 tb累计写
gmem / gmem% / gpu%gpu% > 0GPU 内存/利用率(需 GPU 支持)
() 组合(cpu > 10 AND mem < 0.5) OR name条件分组

组合运算符:AND、OR、NOT(官方文档 usage/widgets/process.md,2026-10-23 核对)。例如排查「CPU 高但内存小」的进程:cpu > 10 AND mem < 0.5。

六、配置文件联动(-C)

命令行参数与配置文件是同一套能力的两个入口,优先级为命令行 > 配置文件。三件常配合的事:

  1. 指定/初始化配置:btm -C /etc/bottom/bottom.toml——路径不存在时自动创建父目录与默认配置(实测见 4.1 表)。
  2. 临时覆盖:配置里写了 basic = true 时,临时想看图形模式可 btm -b=false(或改回配置)——反向同理,命令行显式给的值覆盖配置。
  3. 验证配置生效:改完配置先 btm -C <配置> 启动观察渲染(布局/列/过滤变化立即可见);配置错误时 btm 会给出带键名的报错(实测三类错误回显见《bottom 0.14.9 配置参数详解》第三章)。

七、远程服务器使用(SSH 场景实测)

bottom 没有 C/S 监控模式(对比 glances 的 client-server 模式),远程监控的标准用法是 SSH 登录目标机后在其会话里运行 btm——btm 的 TUI 经 SSH 终端透传,交互与本地一致。本节在两台 Ubuntu 22.04 主机间实测。

被监控端(bottom-remote)准备:安装 openssh-server 并启动 sshd,安装 bottom 0.14.9(过程见《Ubuntu 22.04 安装 bottom 0.14.9 指南》)。演示账号 root / q1w2e3r4(sshd_config 中 PermitRootLogin yes)。

监控端发起远程监控(-t 强制分配 TTY 是关键,否则 btm 报无终端错误):

sshpass -p q1w2e3r4 ssh -tt -o StrictHostKeyChecking=no root@bottom-remote btm

实测:远程 btm 正常渲染完整仪表盘,进程表显示的是远端主机的进程(btm 自身 PID 3540、init sleep PID 1,与本机进程号不同,证明数据来自远端):

│PID(p)   Name(n)  CPU%(c)▼ Mem%(m)  R/s      W/s      T.Read   T.Write  User  State     │
│3540     btm      0.1%     0.0%     0B/s     0B/s     0B       8KB      root  Sleeping  │
│1        sleep    0.0%     0.0%     0B/s     0B/s     0B       0B       root  Sleeping  │

交互透传实测:远程会话中按 ? 同样打开帮助菜单(渲染帧与本地一致),q 正常退出并回到本地 shell。

⚠️ 注意:ssh host btm(不带 -tt)不为远程命令分配 TTY,btm 会报 Error: No such device or address (os error 6) 退出——必须 -tt 或先登录再运行。sshpass 需监控端自行安装(apt install sshpass);生产环境建议改用 SSH 密钥认证,避免命令行明文密码。

多台服务器的日常巡检建议:在 ~/.ssh/config 里为主机配别名,巡检时 ssh 别名 btm 逐台查看;需要一屏同时看多台时应选 glances C/S 模式或 Prometheus 体系(选型分析见《bottom 介绍与选型指南》第七章)。

八、无头环境与自动化边界

bottom 定位「人看着的仪表盘」,以下边界均实测确认:

  1. 无终端不可运行:cron/CI/无 -t 的 ssh 远程命令中运行 btm,实测警告后退出(退出码 1):
Warning: bottom is not being output to a terminal. Things might not work properly.
If you're stuck, press 'q', 'Q', or 'Ctrl-c' to quit the program.
Error: No such device or address (os error 6)
  1. 无数据导出/日志能力:btm 不提供任何把采集数据导出文件、写日志或对接外部的命令行开关(--help 全量参数核对,2026-10-23)。需要无人值守采集、阈值告警、历史存储的场景,直接选 glances(Web/REST API/导出)或 Prometheus + node_exporter,不要试图用脚本「录制」btm 的 TUI 输出。
  2. 唯一的「脚本化」用法是启动参数:btm -b(轻量渲染)配合自定义配置,可以降低它在老终端/低带宽 SSH 链路里的渲染压力,但仍需人交互查看。

九、注意事项

  1. --disable_keys 会连退出键一起禁用(官方帮助明确说明),只能靠杀进程退出,慎用。
  2. --retention 调大(如 2h)会明显增加 btm 自身内存占用,低配机器先观察再定。
  3. GPU 相关参数在无 NVIDIA/AMD GPU 的机器上无效果;温度组件在无传感器的虚拟机里为空(No data 属正常)。
  4. kill 操作(dd/F9)对 root 会话无额外确认门槛,公共机器上建议固定用 --read_only 启动。
  5. 参数值的时间写法支持人类可读形式(60s/10m/1h)与毫秒整数两种,-t/-r/-d/--retention 通用。

十、常见问题

Q1:btm 报 unexpected argument '-x' found?

拼错了参数或使用了本版本不存在的 flag。实测退出码 2,并回显 Usage 提示。先跑 btm -h 对照参数表。

Q2:--theme 报 invalid value?

主题只有六个合法值(default、default-light、gruvbox、gruvbox-light、nord、nord-light),实测报错会列出全部可选值,照抄即可。

Q3:SSH 远程运行 btm 报 os error 6?

SSH 命令未分配 TTY。用 ssh -tt(实测通过),或先 ssh 登录再运行 btm(见第七章)。

Q4:按 q 退不掉?

多半是 --disable_keys 或配置里 disable_keys = true 生效了。换终端窗口 killall btm 后修正配置(官方帮助明确 disable_keys 包含退出快捷键)。

Q5:冻结(f)之后数据不动了?

那是冻结特性在生效(防止刷新打断读数),再按一次 f 恢复;要彻底重置数据按 Ctrl-r。

十一、参考链接

  1. 官方命令行参数文档:https://clementtsang.github.io/bottom-stable/configuration/command-line-options/
  2. 官方通用键位文档:https://github.com/ClementTsang/bottom/blob/main/docs/content/usage/general-usage.md
  3. 官方进程组件文档(搜索/排序/kill 键位与语法):https://github.com/ClementTsang/bottom/blob/main/docs/content/usage/widgets/process.md
  4. 站内本组件系列:《bottom 介绍与选型指南》、《Ubuntu 22.04 安装 bottom 0.14.9 指南》、《bottom 0.14.9 配置参数详解》