bottom 磁盘表怎么过滤条目并显示未挂载设备?
【免费下载链接】bottomYet another cross-platform graphical process/system monitor.项目地址: https://gitcode.com/GitHub_Trending/bo/bottom
bottom(命令名btm)的磁盘组件默认是一张只显示已挂载设备的表格:设备一多,/dev/sda*、/boot之类的条目就会把表挤满。bottom 的配置文件提供了两个能力来解决这个问题:
- 用
[disk.name_filter]和[disk.mount_filter]按设备名、挂载点过滤掉不想要的条目; - 在 Linux 上用
include_unmounted = true把未挂载的设备也显示出来。
下文的配置都写在 bottom 的 TOML 配置文件里,改完后重新运行btm即可在磁盘组件中看到效果。
配置文件写在哪里
bottom 启动时自动查找配置文件,Linux 上的默认位置是:
$HOME/.config/bottom/bottom.toml$XDG_CONFIG_HOME/bottom/bottom.toml
如果该路径下没有配置文件,bottom 首次启动时会尝试自动创建一份带默认值的文件(各平台的位置详见 配置文档)。仓库中的 default_config.toml 展示了完整的[disk]段,所有条目默认注释掉,需要时取消注释并修改即可。
如果你不想改默认位置的配置,也可以用命令行参数-C(--config_location <PATH>)指定配置文件路径,例如btm -C /path/to/your_config.toml(路径替换为你自己的配置位置)。
过滤条目:name_filter 与 mount_filter
过滤通过两个表配置:[disk.name_filter]按磁盘名过滤,[disk.mount_filter]按挂载点过滤。两者都支持同一组选项:
| 选项 | 默认值 | 作用 |
|---|---|---|
list | — | 要匹配的过滤项列表 |
is_list_ignored | true | 是否忽略匹配到的条目(字段含义为 "Whether to ignore any matches") |
regex | false | 是否把list中的条目当作正则表达式 |
case_sensitive | false | 是否区分大小写 |
whole_word | false | 是否要求整词匹配 |
官方文档给出的例子是忽略名称匹配/dev/sda的条目(disk-table 文档):
[disk.name_filter] # Whether to ignore any matches. Defaults to true. is_list_ignored = true # A list of filters to try and match. list = ["/dev/sda"] # Whether to use regex. Defaults to false. regex = true # Whether to be case-sensitive. Defaults to false. case_sensitive = false # Whether to require matching the whole word. Defaults to false. whole_word = false效果(文档示例):
如果同时使用两个过滤条件,把两个表一起写入即可。文档的组合示例:
[disk.name_filter] is_list_ignored = false list = ["/dev/sda"] regex = true case_sensitive = false whole_word = false [disk.mount_filter] is_list_ignored = true list = ["/mnt/.*", "/"] regex = true case_sensitive = false whole_word = true效果(文档示例):
default_config.toml 里还给了一个常见的list写法,用正则匹配一整类分区:
#[disk.name_filter] list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] regex = true/dev/sda\d+可以一次匹配sda1、sda2这类带分区号的设备,适合用来清理分区条目。
显示未挂载设备(仅 Linux)
磁盘表默认只显示已挂载设备。在 Linux 上启用include_unmounted后可以显示未挂载设备:
[disk] include_unmounted = true需要注意文档明确说明的行为:
- 未挂载设备会显示 I/O 活动,但没有已用/剩余空间数据(这些数据依赖实时挂载状态),对应的 Used/Free 列会显示为
N/A; - 伪设备(
loop*、ram*、zram*)会被自动跳过,无法通过名称过滤再隐藏; - 其他“噪音”设备则需要用上一节的
name_filter自行过滤。
include_unmounted只在 Linux 上有效,macOS 和 Windows 不受该选项影响。
验证配置是否生效
- 把上面需要的
[disk]、[disk.name_filter]、[disk.mount_filter]配置写入配置文件(默认路径或-C指定的路径)。 - 重新运行
btm,打开磁盘组件查看表格内容。 - 判断标准来自文档展示的结果:被过滤的条目不再出现在表中(上面三张截图均为文档示例,实际条目取决于你机器上的设备);开启
include_unmounted后,未挂载设备出现在表中,且 Used/Free 列显示N/A。
如果不想每次都改布局,也可以直接在磁盘组件里按列排序核对条目:d按磁盘名、m按挂载点、u/n/t/p按已用/剩余/总量/已用百分比、r/w按读写速率排序,再按一次可反转排序方向(键位说明见 磁盘组件文档)。
可选:同时调整列与默认排序
过滤之外,[disk]段还支持控制显示哪些列以及启动时的默认排序:
[disk] columns = ["Disk", "Mount", "Used", "Free", "Total", "Used%", "R/s", "W/s"] default_sort = "R/s" sort_order = "Ascending"default_sort可以填任何有效列名(如"Disk"、"Mount"、"R/s");文档特别提醒:如果填了一个实际未显示的列名,默认排序会退回表格的第一个列。
到此,磁盘表的条目过滤和未挂载设备显示就配置完成了:过滤只作用于显示,不改变系统状态;未挂载设备因缺少挂载点只能看到 I/O,看不到容量数据——这两点在使用include_unmounted时要有预期。
【免费下载链接】bottomYet another cross-platform graphical process/system monitor.项目地址: https://gitcode.com/GitHub_Trending/bo/bottom
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考