网站搜索

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 procs

Arch Linux:

sudo pacman -S procs

Fedora :

sudo dnf install procs

拍照 :

sudo snap install procs

Windows :

winget install procs

Mac(通过 MacPorts):

sudo port install procs

以及 Homebrew:

brew install procs

duf:df,但带有漂亮的颜色


duf 命令非常简单。它功能不多,但解决了一个简单的问题:可读性。df 命令是另一个自 Linux 早期就存在的命令,至今仍然保留着古老的黑白用户界面。是的,这里强调的是颜色(双关语),而 duf 是另一个超现代命令,支持多达 256 种颜色。

不过,这并不仅仅关乎颜色;将信息组织成相关的组别是良好用户体验设计的基本原则之一——称为接近性法则。我们的大脑会将紧密排列的项目联系在一起。一眼看过去,这使得解读细节更加容易。

鉴于输出的表格性质,你可能在想如何对它们进行 grep。很简单:将路径作为参数列表提供即可。

duf /dev /dev/shm

你也可以对元素进行排序、设置样式、主题和隐藏,但对我来说,最出色的功能是 JSON 输出。我非常喜欢 jq 命令,因为它让我可以只提取所需的字段,并串联复杂的命令。

duf --json | head -n 17

duf --json | jq '.[].device' | sort -u

它可在 Ubuntu 22.04 及以上版本和 Debian 12 及以上版本使用:

sudo apt install duf

Arch Linux:

sudo pacman -S duf

飞利浦:

sudo dnf install duf

Windows(通过 Chocolatey):

choco install duf

Windows(通过 Scoop):

scoop install duf

Mac(通过 Homebrew):

brew install duf

Mac(通过 MacPorts):

sudo port install duf

HTTPie:比 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 httpie

Arch Linux:

sudo pacman -S httpie

拍照 :

sudo snap install httpie

Windows(通过 Chocolatey):

choco install httpie

Mac(通过 Homebrew):

brew install httpie

Mac(通过 MacPorts):

sudo port install httpie

这些是我的三大推荐,你可能从未听说过。不得不说,最后一个(HTTPie)对网页开发者更有用,但它也适合任何编写与 REST API 接口脚本的人——这并不罕见。

订阅精选现代 CLI 工具推荐

订阅精选现代命令行工具推荐

订阅即表示您同意接收新闻通讯和营销邮件,并接受 Valnet 的使用条款和隐私政策。您可以随时取消订阅。

我还要补充一点,GNU 工具不会消失。它们存在于每个基本系统中,而且 curl 也非常通用。它们是很棒的工具,而且每个人都知道如何使用它们。只是它们看起来有点过时,而所建议的工具则提供了急需的更新。

相关文章