witr 强大的命令行工具,能帮您快速追踪任何进程、端口、容器或文件的来源,回答这到底是什么在运行
witr 的核心价值在于,它将 ps、lsof、ss、systemctl 等多个命令的信息关联起来,直接呈现一个进程的完整因果链(例如,systemd → pm2 → node),让您一眼就能理解系统状态。它提供简洁的 CLI 输出和交互式 TUI(终端用户界面),并支持 JSON 输出,适用于脚本和自动化场景。
📥 安装 witr
witr 是一个单一静态二进制文件,支持 Linux、macOS、Windows 和 FreeBSD。您可以通过多种方式安装。
方式一:快速安装脚本
这是最快捷的方式,适合所有平台。
Unix (Linux, macOS, FreeBSD):在终端中执行以下命令。脚本会自动检测系统架构,下载最新版本并安装到
/usr/local/bin。1
curl -fsSL https://raw.githubusercontent.com/pranshuparmar/witr/main/install.sh | bash
Windows (PowerShell):在 PowerShell 中执行以下命令。脚本会下载并安装到
%LocalAppData%\witr\bin,并自动将其添加到用户PATH环境变量中。1
irm https://raw.githubusercontent.com/pranshuparmar/witr/main/install.ps1 | iex
方式二:使用包管理器(推荐)
如果您习惯使用包管理器,可以更方便地安装和更新。
| 操作系统/生态系统 | 包管理器命令 |
|---|---|
| Debian/Ubuntu | sudo apt install witr |
| macOS (Homebrew) | brew install witr |
| macOS (MacPorts) | sudo port install witr |
| Arch Linux (AUR) | yay -S witr-bin (或使用 paru) |
| Windows (Winget) | winget install -e --id PranshuParmar.witr |
| Windows (Chocolatey) | choco install witr |
| Windows (Scoop) | scoop install main/witr |
| 跨平台 (Conda) | conda install -c conda-forge witr |
| 跨平台 (NPM) | npm install -g @pranshuparmar/witr |
| FreeBSD | pkg install witr |
注意:通过官方仓库安装的版本可能落后于 GitHub 最新版。如需最新功能,可使用安装脚本或从 Releases 页面下载。
方式三:从源码安装 (Go)
适合 Go 开发者。
1 | go install github.com/pranshuparmar/witr/cmd/witr@latest |
请确保 $GOPATH/bin 或 $HOME/go/bin 在您的 PATH 中。
验证安装
安装完成后,运行以下命令验证:
1 | witr --version |
启用 Shell 自动补全(可选):
1 | # Bash |
🚀 核心用法与示例
witr 的基本用法非常简单。在终端中输入 witr <进程名> 即可。
查询运行中的进程
1 | # 查询名为 'node' 的进程 |
输出示例:
1 | Target : node |
按端口查询
想知道哪个程序占用了 3000 端口?
1 | witr --port 3000 |
按文件查询
想知道哪个进程锁定了某个文件?
1 | witr --file /var/lib/dpkg/lock |
按容器查询
查询名为 redis 的容器(自动搜索 Docker、Podman 等运行时):
1 | witr --container redis |
同时查询多个目标
可以混合使用不同参数,结果将按顺序显示。
1 | witr nginx --port 5432 --pid 1234 |
简短输出(仅显示因果链)
如果只想快速看到进程来源,可以使用 --short 或 --tree。
1 | witr --port 5000 --short |
JSON 格式输出
适合在脚本中解析和处理。
1 | witr node --json |
🎮 交互式 TUI 模式
直接输入 witr 或 witr -i 即可启动一个实时仪表板。
- 进程 (Processes) 标签页:列出所有进程,高亮进程可查看其祖先树和详细信息。
- 端口 (Ports) 标签页:显示所有监听端口及其所属进程。
- 容器 (Containers) 标签页:显示所有运行中的容器(Docker, Podman 等)。
- 文件锁 (Locks) 标签页:显示系统中的文件锁。
- 操作:您可以在 TUI 中直接对进程发送信号(如 Kill、Terminate)或调整优先级 (
renice)。 - 交互:支持鼠标操作,颜色主题会自动适应您的终端背景。
⚙️ 关键配置与提示
- 权限:为了获取最完整的信息(特别是系统进程),您可能需要使用
sudo运行 witr(Windows 需以管理员身份运行)。 - 精确匹配:默认使用子串模糊搜索。如需精确匹配进程名,使用
--exact标志,如witr nginx -x。 - 多个结果:如果查询匹配到多个进程,witr 会列出所有匹配项,并提示您使用 PID 进行精确查询。
- 退出码:witr 有明确的退出码(0=成功,1=有警告,2=未找到等),便于在脚本中使用。
🧹 卸载
- 包管理器:使用相应的卸载命令,如
brew uninstall witr。 - 脚本/手动安装:
- Unix:
sudo rm -f /usr/local/bin/witr /usr/local/share/man/man1/witr.1 - Windows:
Remove-Item -Recurse -Force "$env:LocalAppData\witr"
- Unix:
🆘 获取帮助
- 内置帮助:
witr --help - 在线教程:项目提供了一个 浏览器中的交互式教程,让您可以在模拟环境中试用。
- 问题反馈:如果遇到问题或有功能建议,请在 GitHub Issues 提交。


