procs:Rust写的ps替代工具,终端进程管理清晰了
procs:Rust写的ps替代工具,终端进程管理清晰了
经常在终端里敲ps aux的人都知道,传统ps的输出就是一堵白字墙,密密麻麻挤在一起,眼睛扫过去很难锁定目标行。端口信息靠netstat另查,IO情况要翻/proc,想看容器归属还得记docker命令。procs 把这些散落在各处的信息汇总到一起,彩色展示,自动对齐,不用手工拼接。
procs 是一个用Rust写的ps替代工具,GitHub上六千多星,支持Linux、macOS、Windows和FreeBSD。它默认输出的彩色方案会依据终端背景自动适配明暗主题,不需要另外配置。

ps查不到的信息,它直接内置
传统ps命令能展示的信息有限。procs 在此基础上增加了几项实用数据:
- TCP/UDP端口绑定情况,一眼看到哪个进程监听了哪些端口
- 磁盘读写吞吐量,排查IO问题时参考
- Docker容器名称,服务器上跑着多个容器时能快速区分
- 细分内存指标,包括虚拟内存、常驻内存、Swap占用等
这些数据在传统工具链里需要多个命令配合才能获取,procs 一次性全部展示。
三种实用模式
procs 支持三种运行模式,分别对应不同的使用场景。
关键字搜索:数字精确匹配(默认匹配PID),字符串模糊匹配(匹配用户名、命令名),还能用--and、--or、--nand、--nor做多条件逻辑组合。procs zsh直接过滤出zsh相关的所有进程,省掉手动grep的步骤。
Watch监控模式:加--watch参数进入实时刷新,默认每秒更新一次,效果类似top。监控时可以用键盘快捷键操作:n和p切换排序列,a和d切换升降序,q退出。交互逻辑和top一致,几乎不需要适应期。
树形视图:加--tree后进程按父子关系排列,左侧画出依赖树。查服务进程的子进程关系时比较直观。

用TOML配置文件定制每一列
procs 的配置文件是TOML格式,放在系统的标准配置目录下。如果觉得默认列太多或太少,可以直接修改[[columns]]段,增删列、调顺序、换颜色。每一列都支持独立设置:
- 颜色样式(16种基础色加256色调色板)
- 对齐方式(左中右)
- 最大最小宽度
- 是否参与数字/文字搜索,是否作为排序键
颜色支持按值动态变化。ByPercentage样式可以用红黄绿渐变标记CPU或内存的使用率区间,ByState样式按照进程状态(运行中、休眠、僵尸等)标注不同颜色。
如果不熟悉配置语法,用--gen-config输出一份完整示例文件,照着改就行。配置文件还支持分页器设置,输出超过终端高度时自动调用less(Linux/macOS)或内置分页器(Windows),浏览长列表不需要额外管道。
覆盖几乎所有包管理器
procs 对不同平台和包管理器的适配把覆盖面拉得很宽:
- Arch Linux:
pacman -S procs - Fedora:
dnf install procs - Alpine:
apk add procs - macOS:
brew install procs或MacPorts - Windows:
winget install procs或Scoop - 通用方案:Cargo、Snap、Nix、RPM
基本覆盖了开发者常用的所有环境和包管理器。
两个实用细节
一是权限问题。读取其他用户进程的端口和IO信息需要root权限,用sudo procs运行,或者在sudoers中配置该命令免密执行。
二是平台兼容性。macOS和FreeBSD目前标记为实验性支持,CI只做了基础测试。日常使用如果遇到问题,作者表示欢迎提issue。
procs 解决的是一个具体而高频的需求:在终端里更高效地查看和管理进程信息。Rust语言保证了运行效率,TOML配置提供了灵活性,彩色输出和关键字搜索让日常操作更快定位目标。对于每天和终端打交道的开发者来说,它是一个增量改进,但这个改进覆盖了ps命令长期积累的多数不便。
浙公网安备 33010602011771号