3 个已经取代我使用的 ps、df 和 curl 的现代 CLI 工具
你可能已经使用 ps、df 和 curl 很多年了,但总有改进的空间。我知道我自己总是在寻找新工具,也许你也是?如果是这样的话,我有三款现代化的工具可以替代它们,你可能会喜欢。
GNU 工具非常多;有成百上千个,几乎安装在每个基础系统上。它们自古以来就存在(好吧,有点夸张),而且大多数情况下,它们只需要一次视觉上的更新——也许还有一两个功能改进。以下工具就是这样的例子,拥有丰富多彩的用户界面,并包含一些从古老版本中极度缺失的基本生活质量改进。
处理器:对一台看起来老旧的PS的升级
第一个需要替换的命令是看起来很疲惫的 ps,它自 1992 年以来一直存在于 Linux 上,而且从外观上可以看出来。虽然难以扩展它的功能,但它迫切需要一次现代化更新,而 procs 就带来了这种更新。
它的升级简单但令人欢迎。首先是一个彩色的界面,我不得不承认在阅读复杂输出时颜色是多么有用。从日志文件到源代码,普通的(无色)文本很难区分。虽然听起来很肤浅,但我在命令中首先关注的就是彩色显示,因为它们更容易阅读。
列表中的下一个是分屏支持——是的,less 自九十年代初就已经存在,不,ps 没有这个功能。我因为频繁使用 Shift+| 键已经在左手小指上长期患上了重复性应力损伤(RSI)。procs 的首选分页器是 less,但会回退到 more。要专注于特定进程,你不再需要使用 grep;只需提供进程名称即可:procs bash。如果你需要多个关键字,可以使用 procs --or bash zsh。此外,它还支持 --and、--nand 和 --nor 标志。
此外,procs 支持设置自定义列,可以通过标志或其全面的配置文件来实现。有几十种列选项,包括 Docker 容器、TCP/UDP、内存等。
哦,我提到过它也支持 Windows 和 macOS 吗?
它可在 Debian Trixie 及以上版本使用:
sudo apt install procsArch Linux:
sudo pacman -S procsFedora :
sudo dnf install procs拍照 :
sudo snap install procsWindows :
winget install procsMac(通过 MacPorts):
sudo port install procs
以及 Homebrew:
brew install procsduf:df,但带有漂亮的颜色
duf 命令非常简单。它功能不多,但解决了一个简单的问题:可读性。df 命令是另一个自 Linux 早期就存在的命令,至今仍然保留着古老的黑白用户界面。是的,这里强调的是颜色(双关语),而 duf 是另一个超现代命令,支持多达 256 种颜色。
不过,这并不仅仅关乎颜色;将信息组织成相关的组别是良好用户体验设计的基本原则之一——称为接近性法则。我们的大脑会将紧密排列的项目联系在一起。一眼看过去,这使得解读细节更加容易。
鉴于输出的表格性质,你可能在想如何对它们进行 grep。很简单:将路径作为参数列表提供即可。
duf /dev /dev/shm你也可以对元素进行排序、设置样式、主题和隐藏,但对我来说,最出色的功能是 JSON 输出。我非常喜欢 jq 命令,因为它让我可以只提取所需的字段,并串联复杂的命令。
duf --json | head -n 17duf --json | jq '.[].device' | sort -u它可在 Ubuntu 22.04 及以上版本和 Debian 12 及以上版本使用:
sudo apt install duf
Arch Linux:
sudo pacman -S duf飞利浦:
sudo dnf install dufWindows(通过 Chocolatey):
choco install dufWindows(通过 Scoop):
scoop install dufMac(通过 Homebrew):
brew install dufMac(通过 MacPorts):
sudo port install dufHTTPie:比 curl 更易用
曾经,Curl 是我命令工具集中的主力,但我现在觉得它可能需要让位给更强大的命令。我经常使用 curl 来查询 REST API。对于不熟悉的人来说,REST API 是一种基于文本的接口,网页开发人员用它来获取数据。你还记得上一节中的 JSON 输出吗?那就是 REST API 的样子。
每个 URL 都由若干段组成,其中有一段专门用来向服务器传递信息——称为 GET 参数(也叫查询字符串)。如果我们来看一个典型 URL 的结构:
https://www.example.com/?foo=bar&baz=foobar
你看到这两个片段“foo=bar”和“baz=foobar”了吗?它们是 GET 参数,通常用于控制服务器如何生成网页。
当你使用 curl 发出请求时,你需要输入完整的 URL,但与 HTTPie 请求相比:
https GET example.com foo=bar baz=foobar没有尴尬的字符,并且意图("GET")是明确的。它还支持 JSON(REST API),而不需要指定相应的 HTTP 头,而且我可以告诉你,敲这些内容几打之后会非常无聊。
curl 'https://example.com/?foo=bar&baz=foobar' -H 'Content-Type: application/json'结果也是彩色的!这使得阅读它们更容易,因为 JSON 在没有颜色时尤其难读:
这还不是全部;HTTPie 支持多部分文件上传、表单提交、会话,甚至还有一个方便的 --download 功能:
https --download ash-speed.hetzner.com/10GB.bin要在 Debian、Ubuntu 及所有其他衍生版本上安装它,您首先需要添加 HTTPie 仓库:
curl -SsL https://packages.httpie.io/deb/KEY.gpg \
| sudo gpg --dearmor -o /usr/share/keyrings/httpie.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/httpie.gpg] https://packages.httpie.io/deb ./" \
| sudo tee /etc/apt/sources.list.d/httpie.list > /dev/null
sudo apt update
sudo apt install httpie联邦
sudo dnf install httpieArch Linux:
sudo pacman -S httpie拍照 :
sudo snap install httpieWindows(通过 Chocolatey):
choco install httpieMac(通过 Homebrew):
brew install httpieMac(通过 MacPorts):
sudo port install httpie这些是我的三大推荐,你可能从未听说过。不得不说,最后一个(HTTPie)对网页开发者更有用,但它也适合任何编写与 REST API 接口脚本的人——这并不罕见。
订阅精选现代 CLI 工具推荐
订阅精选现代命令行工具推荐
订阅即表示您同意接收新闻通讯和营销邮件,并接受 Valnet 的使用条款和隐私政策。您可以随时取消订阅。
我还要补充一点,GNU 工具不会消失。它们存在于每个基本系统中,而且 curl 也非常通用。它们是很棒的工具,而且每个人都知道如何使用它们。只是它们看起来有点过时,而所建议的工具则提供了急需的更新。







