惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
Security Latest
Security Latest
P
Proofpoint News Feed
GbyAI
GbyAI
PCI Perspectives
PCI Perspectives
博客园 - Franky
N
Netflix TechBlog - Medium
博客园_首页
WordPress大学
WordPress大学
K
Kaspersky official blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
T
Threatpost
The Hacker News
The Hacker News
H
Help Net Security
S
Securelist
Recent Announcements
Recent Announcements
腾讯CDC
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Engineering at Meta
Engineering at Meta
C
Cisco Blogs
V
V2EX
C
Check Point Blog
S
Schneier on Security
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Jina AI
Jina AI
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
博客园 - 叶小钗
A
Arctic Wolf
AWS News Blog
AWS News Blog
Latest news
Latest news
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
Last Week in AI
Last Week in AI
The GitHub Blog
The GitHub Blog
小众软件
小众软件
B
Blog
aimingoo的专栏
aimingoo的专栏
C
Cyber Attacks, Cyber Crime and Cyber Security
V
Visual Studio Blog
P
Palo Alto Networks Blog
Spread Privacy
Spread Privacy

阮一峰的网络日志

科技爱好者周刊(第 396 期):互联网通信的替代方案 科技爱好者周刊(第 396 期):互联网通信的替代方案 - 阮一峰的网络日志 科技爱好者周刊(第 395 期):软件开发的第三种方式 科技爱好者周刊(第 395 期):软件开发的第三种方式 - 阮一峰的网络日志 科技爱好者周刊(第 393 期):脑腐状态 科技爱好者周刊(第 392 期):axios 投毒与好莱坞式骗术 科技爱好者周刊(第 391 期):AI 的贫富分化 科技爱好者周刊(第 390 期):没有语料,大模型就是智障 套壳中国大模型撑起500亿美元估值?扒一扒 Cursor 的"套壳"疑云 科技爱好者周刊(第 389 期):未来如何招聘程序员 科技爱好者周刊(第 388 期):测试是新的护城河 零安装的"云养虾":ArkClaw 使用指南 科技爱好者周刊(第 387 期):你是领先的 科技爱好者周刊(第 386 期):当外卖员接入 AI 字节全家桶 Seed 2.0 + TRAE 玩转 Skill 科技爱好者周刊(第 385 期):马斯克害怕中国车企吗? 智谱旗舰 GLM-5 实测:对比 Opus 4.6 和 GPT-5.3-Codex 科技爱好者周刊(第 384 期):为什么软件股下跌 科技爱好者周刊(第 383 期):你是第几级 AI 编程 Kimi 的一体化,Manus 的分层 科技爱好者周刊(第 382 期):独立软件的黄昏 AI native Workspace 也许是智能体的下一阶段 科技爱好者周刊(第 381 期):中国 AI 大模型领导者在想什么 科技爱好者周刊(第 380 期):为什么人们拥抱"不对称收益" 科技爱好者周刊(第 379 期):《硅谷钢铁侠》摘录 我如何用 AI 处理历史遗留代码:MiniMax M2.1 升级体验 科技爱好者周刊(第 378 期):预测是新的互联网热点 科技爱好者周刊(第 377 期):14万美元的贫困线 科技爱好者周刊(第 376 期):太空数据中心的争议 科技爱好者周刊(第 375 期):一扇门的 Bug 终于有人做了 Subagent,TRAE 国内版 SOLO 模式来了 科技爱好者周刊(第 374 期):6GHz 的问题 VS Code 使用国产大模型 MiniMax M2 教程 科技爱好者周刊(第 373 期):数据模型是新产品的核心 国产大模型接入 Claude Code 教程:以 Doubao-Seed-Code 为例 科技爱好者周刊(第 372 期):软件界面如何设计 大模型比拼:MiniMax M2 vs GLM 4.6 vs Claude Sonnet 4.5 科技爱好者周刊(第 371 期):一个乐观主义者的专访 科技爱好者周刊(第 370 期):正确的代码高亮 错误处理:异常好于状态码 科技爱好者周刊(第 369 期):Tim 与罗永浩的对谈 科技爱好者周刊(第 368 期):不要这样管理软件团队 一天之内,智谱和 Anthropic 都发了最强编程模型 科技爱好者周刊(第 367 期):Nano Banana 的几个妙用 科技爱好者周刊(第 366 期):旧金山疯狂的 AI 广告 科技爱好者周刊(第 365 期):流量变现正在崩塌 科技爱好者周刊(第 364 期):最难还原的魔方 科技爱好者周刊(第 363 期):最好懂的神经网络解释 科技爱好者周刊(第 362 期):GitHub 工程师谈系统设计 科技爱好者周刊(第 361 期):暗网 Tor 安全吗? 科技爱好者周刊(第 360 期):Dan Wang 的新书 科技爱好者周刊(第 359 期):Palantir 值得关注 科技爱好者周刊(第 358 期):如何拯救一家濒临倒闭的创业公司 扣子空间网页设计,是在挑战 V0 吗? 《唐纵日记》摘录 科技爱好者周刊(第 357 期):稳定币的博弈 科技爱好者周刊(第 356 期):公司强推 AI 编程,我该怎么办 科技爱好者周刊(第 355 期):两本《芯片战争》 科技爱好者周刊(第 354 期):8000mAh 手机电池,说明了什么? 国产 AI 网页开发工具:豆包 AI 编程简单测评 科技爱好者周刊(第 353 期):苹果的"液态玻璃"是为了 AR 科技爱好者周刊(第 352 期):Bug 追踪系统的正确样子 科技爱好者周刊(第 351 期):GitHub Issues(几乎)是最好的笔记应用 科技爱好者周刊(第 350 期):Java 三十周年 科技爱好者周刊(第 349 期):神经网络算法的发明者 科技爱好者周刊(第 348 期):李飞飞,从移民到 AI 明星 科技爱好者周刊(第 347 期):冷启动的破解之道 谷歌的 NotebookLM 能生成中文播客了 科技爱好者周刊(第 346 期):未来就是永恒感的丧失 巨头的新战场:AI 编程 IDE(暨 字节 Trae 调用 MCP 教程) 办公类 AI 初探:扣子空间 科技爱好者周刊(第 345 期):HDMI 2.2 影音可能到头了 科技爱好者周刊(第 344 期):制造业正在"零工化" 科技爱好者周刊(第 343 期):如何阻止 AI 爬虫 科技爱好者周刊(第 342 期):面试的 AI 作弊----用数字人去面试 科技爱好者周刊(第 341 期):低代码编程,恐怕不会成功 科技爱好者周刊(第 340 期):技术炒作三十年 Trae 国内版出来了,真的好用吗? 科技爱好者周刊(第 339 期):代币是什么 科技爱好者周刊(第 338 期):重新思考 6G 科技爱好者周刊(第 337 期):互联网创业几乎没了 科技爱好者周刊(第 336 期):面对 AI,互联网正在衰落 科技爱好者周刊(第 335 期):年底的未来已来 科技爱好者周刊(第 334 期):年终笔记四则 AI 搞定微信小程序 科技爱好者周刊(第 333 期):一切都要支付两次 科技爱好者周刊(第 332 期):西蒙·威利森的年终总结,梁文锋的访谈 科技爱好者周刊(第 331 期):你可能是一个 NPC 科技爱好者周刊(第 330 期):李开复梳理人工智能 科技爱好者周刊(第 329 期):示意图利器 D2 科技爱好者周刊(第 328 期):AI 模型不是一门好生意 AI 应用无代码开发教程:工作流模式详解 科技爱好者周刊(第 327 期):没有链接的互联网 科技爱好者周刊(第 326 期):世界没有那么多财富 科技爱好者周刊(第 325 期):VS Code 编辑器的下一站是 Zed? 科技爱好者周刊(第 324 期):人类已知的最大质数 科技爱好者周刊(第 323 期):技术公司的口号比拼 AI 开发的捷径:工作流模式 科技爱好者周刊(第 322 期):内容行业的内幕 科技爱好者周刊(第 321 期):傅盛回忆录
命令行常用工具的替代品
阮一峰 · 2022-01-28 · via 阮一峰的网络日志

程序员离不开命令行,许多经典命令是每天必用的,比如lscd

虽然它们很好用,但是由于历史原因,往往也有一些缺点,比如用法不符合直觉、难以配置,有些速度也不快。

这些年,它们的替代品开始出现,而且越来越多,大家开始尝试使用现代语言,重新实现这些经典命令。本文总结一下这些替代品,其中有些真的很不错,值得你在自己的计算机上安装。

一、exa

exals命令的替代品,可以彩色输出目录内容,更容易辨识。


$ exa --long --git

上面命令中,参数--git表示输出文件的 Git 状态。

  • N:新文件
  • M:文件有变动
  • I:该文件被忽略

除了平铺显示,exa还支持目录的树状显示。


$ exa --tree --level=2

exa本身是一个二进制文件,不需要安装,下载后直接使用,速度也相当快。

同类软件还有 lsd,这里就不详细介绍了。

二、broot

broot 可以看作增强版的ls替代品,实际是一个终端里面的文件管理器。

使用时,可以先列出当前目录的文件信息。


$ br -sdph

上面命令中,参数含义如下。

  • -s:显示文件体积
  • -d:显示文件时间
  • -p:显示文件权限
  • -h:显示隐藏文件。

可以看到,它默认以树状结构,展开子目录。

然后,在这个界面中,可以完成各种文件操作。

  • 搜索:输入搜索词
  • 复制:输入:cp <复制后的文件名>
  • 删除:输入:rm
  • 改名:输入:mv <新文件名>
  • 退出:输入:q

甚至还可以预览文件:通过上下箭头选中文件,然后按下右箭头,就会打开外部关联程序;按下ctrl + →,则在当前窗口预览文件。

三、zoxide

zoxide 是 cd 命令的替代品,用来切换目录。

它的用法与cd完全一样,进入目录/tmp就是下面的命令。


$ z /tmp

它的特色是部分匹配,可以只写路径的一部分,它自动找到最经常使用的匹配项。

比如,你经常用它进入目录/tmp,那么以后只要输入z t,它就会自动将t匹配为/tmp,从而进入该目录。


$ z t

四、bat,fx,hexyl

batcat命令的替代品,输出文本文件的内容,并且带有cat所没有的代码高亮和行号。


$ bat README.md

如果浏览的是 JSON 文件,还可以使用 fx 或者 jq


$ fx data.json

如果浏览的是二进制文件,使用 hexyl


$ hexyl example.jpg

五、diff-so-fancy

diff-so-fancy 是 git diff 的替代品,使得命令行的 diff 操作具有类似 GitHub 的页面效果。

安装后,参考官方文档,将它配置为 Git 的默认 diff 工具就可以了。以后每次执行git diff,就会输出它的执行结果。

同类项目还有 delta

六、fd,fzf

fdfind命令的替代品,用于文件名搜索。

它的用法比find更符合直觉。下面例子是搜索目录/tmp里面(包括子目录),所有含有dog的文件名。


# find 的写法
$ find /tmp -iname '*dog*'

# fd 的写法
$ fd dog /tmp

上面两条命令一比较,就会发现fd简单很多。

fd内部采用正则搜索,如果想使用模糊搜索,比如找出包含三个字符dog的文件名,则需要另外安装fzf


$ find . -type f | fzf

执行上面命令以后,再输入dog就可以了。

七、ripgrep

ripgrepgrep命令的替代品,用来搜索文件内容。

它跟grep的用法类似。下面例子是搜索当前目录里面,所有内容包含字符串foo的 Markdown 文件。


# grep 的写法
$ grep foo *.md

# ripgrep 的写法
$ rg foo *.md

ripgrep的主要优势在于,默认带有行号和搜索词高亮,速度也更快。

同类项目还有 ag

八、McFly

McFlyctrl-r的替代品,用来搜索 Shell 的操作历史。

安装以后,只要按下ctrl-r,就会出现一个更好用的搜索界面。

九、choose

choosecut命令的替代品,用来选中指定的栏位。

它的优势主要是语法更简单,比如输出文件的第一列。


# cut 的写法
$ cat data.txt | cut -d " " -f 1
# or
$ cut -d " " -f 1 data.txt

# choose 的写法
$ cat data.txt | choose 0
# or
$ choose 0 -i data.txt

更多例子看下图。

十、duf,ncdu

dufdf命令的替代品,用来显示磁盘占用情况。


$ duf

它是彩色的表格输出,更容易查看。

ncdudu命令的替代品,用来显示每个目录占用的大小。


$ ncdu

你还可以上下移动,选中指定目录查看。

同类项目还有 dust

十一、htop,procs

htoptop命令的替代品,用来显示系统的实时状态。它带有高亮输出,并可以切换不同的选项卡。


$ htop

同类项目还有 glancesgtopbottom

procsps命令的替代品,用来高亮显示进程信息。


$ procs

十二、httpie,dog

httpie 是 curl 的替代品,用来发出 HTTP 请求。

它的特点是语法更简单,并且服务器的返回内容会格式化高亮显示。

下面是发出 PUT 请求的例子。


# curl 的写法
$ curl -X PUT -d hello=world example.com

# httpie 的写法
$ http PUT example.com hello=world 

同类项目还有 curliexh

dogdig命令的替代品,用来发出 DNS 查询。它的用法比dig简单多了。


# 默认查询 A 记录
$ dog example.net

# 查询多个记录
$ dog example.net A NS MX

(完)