简介
procs 是一个用 Rust 编写的现代化进程查看工具,作为传统 ps 命令的增强替代品。它提供彩色输出、人类可读的格式、关键字搜索以及丰富的进程信息展示,让查看和管理系统进程变得更加轻松直观。
相比 ps 需要记忆各种参数标志(如 ps aux、ps -ef 等),procs 默认就能展示最有用的信息,包括 CPU 使用率、内存占用、TCP/UDP 端口、读写速率等。它支持按关键字搜索进程、树形视图展示进程关系,还能以 Docker 容器维度聚合显示进程,是系统管理和调试排查的得力助手。
安装
# macOS
brew install procs
# Ubuntu/Debian (snap)
sudo snap install procs
# Cargo
cargo install procs
核心特性
- 彩色输出: 不同类型的信息以不同颜色展示
- 关键字搜索: 直接用关键字搜索进程,无需
grep - 丰富信息: 默认显示端口、读写速率等扩展信息
- 树形视图: 以树状结构展示进程父子关系
- Docker 集成: 识别并显示进程所属的 Docker 容器
- 分页器支持: 内容过多时自动调用分页器
使用示例
# 显示所有进程(默认带彩色输出)
procs
# 关键字搜索进程
procs node
# 精确匹配搜索
procs --or "exact_name"
# 树形视图显示进程
procs --tree
# 按 CPU 使用率排序
procs --sortd cpu
# 按内存使用率排序
procs --sortd mem
# 显示特定 PID 的进程
procs --pid 1234
# 显示监听特定端口的进程
procs --port 8080
# 以 watch 模式实时刷新(每 2 秒)
procs --watch 2
# 仅显示特定用户的进程
procs --user root
# 输出为 JSON 格式(方便脚本处理)
procs --json
配置文件
# ~/.config/procs/config.toml
# 自定义显示的列
[[columns]]
kind = "Pid"
style = "BrightYellow"
[[columns]]
kind = "Username"
style = "BrightGreen"
[[columns]]
kind = "Command"
style = "BrightWhite"
典型场景
场景一:快速找出占用特定端口的进程
不需要 netstat -tlnp | grep 的复杂管道:
# 找出占用 8080 端口的进程
procs --port 8080
# 找出占用多个端口的进程
procs --port 3000 --port 5432
场景二:排查高负载进程
应用变慢,快速找出消耗 CPU 或内存最多的进程:
# 按 CPU 倒序排列
procs --sortd cpu
# 按内存倒序排列
procs --sortd mem
# 搜索特定应用的所有相关进程
procs python # 查看所有 Python 进程
procs --tree node # 以树形查看 Node.js 进程及其子进程
场景三:在脚本中处理进程数据
procs 支持 JSON 输出,便于在 Shell 脚本或与 jq 配合使用:
# 以 JSON 格式输出并用 jq 处理
procs --json | jq '.[] | select(.cpu > 10) | {pid, name, cpu}'
# 获取特定进程的 PID(供脚本使用)
procs nginx --json | jq -r '.[0].pid'
# 实时监控(watch 模式)
procs --watch 2 python # 每 2 秒刷新 Python 进程状态
推荐搭配
- htop / btop — 交互式进程管理和系统监控
- jq — 处理 procs 的 JSON 输出
- fd — 查找进程相关的文件