如果你是个命令行爱好者,或者像我一样,觉得终端是电脑的“灵魂”,那你一定会对最近几年涌现的新兴命令行工具感到兴奋!这些工具大多是用 Rust 这种高性能语言开发的,不仅速度快得像飞一样,还带来了现代化的功能和超棒的用户体验。今天,我要带你认识几款用 Rust(以及其他高性能语言)开发的命令行神器,比如 eza、fzf、ripgrep 和 bat,分享它们的强大功能和我的使用体验。
这篇文章会用亲切的语言,带你从零了解这些工具的背景、功能、安装方法到实际应用场景。希望看完后,你也能被它们的魅力“圈粉”,让你的终端操作变得更高效、更有趣!
在介绍具体工具之前,先聊聊为什么 Rust 成了命令行工具开发的“新宠”。Rust 是一种由 Mozilla 发起的系统编程语言,以高性能、安全性和现代化著称。它的优点包括:
这些特性让 Rust 特别适合开发命令行工具。相比传统的 Bash 脚本或 Python 工具,Rust 开发的工具不仅速度更快,还能提供更现代化的界面和功能,比如彩色输出、异步处理和智能补全。接下来,我将重点介绍几款 Rust 开发的命令行工具,以及一个用 Go 开发的经典工具(fzf),看看它们如何让我们的终端“焕然一新”!
eza(GitHub)是一个用 Rust 开发的现代化文件列表工具,可以看作是 Linux/Unix 经典命令 ls
的“升级版”。它不仅继承了 ls
的核心功能(列出目录内容),还增加了彩色输出、图标支持、Git 状态显示等现代特性。eza 的口号是:“A modern, maintained replacement for ls.”(一个现代化、持续维护的 ls 替代品)。
--tree
)、详细列表(-l
)、文件权限和大小显示等。在 Linux/macOS 上,可以用包管理器安装:
sudo apt install eza
brew install eza
winget install eza
或从 GitHub Release 下载二进制文件。安装后,建议设置别名,比如在 ~/.bashrc
或 ~/.zshrc
中添加:
alias ls='eza'
alias ll='eza -l'
我第一次用 eza 时,简直被它的“颜值”惊艳了!相比 ls
那单调的黑白输出,eza 的彩色界面和图标让目录看起来赏心悦目。比如,运行 eza --icons
后,文件夹会显示一个小文件夹图标,Python 文件会显示,瞬间让终端变得“活泼”起来。
更实用的是它的 Git 集成。平时开发项目时,我经常用 eza -l --git
检查文件状态,一眼就能看到哪些文件被修改或未提交,省去了运行 git status
的麻烦。唯一的小缺点是,eza 的图标支持需要终端支持 Nerd Fonts,如果你的终端没配置好,可能看不到图标(不过网上有详细的配置教程,很简单)。
fzf(GitHub)虽然是用 Go 语言开发的(不是 Rust,但同样高性能),却是命令行工具界的“常青树”。它是一个交互式的模糊搜索工具,可以快速查找文件、命令历史、进程等,被誉为“终端的 Ctrl+F”。fzf 的全称是 fuzzy finder,意思是“模糊查找器”。
find
或 fd
)、命令历史(Ctrl+R
)、Git 分支、Docker 容器等。# 通过 Homebrew
brew install fzf
# 或者手动下载
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
winget install fzf
或 Scoop 安装。安装后,运行 fzf
即可进入模糊搜索模式。建议启用 fzf 的 shell 集成,比如在 ~/.zshrc
中添加:
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
fzf 是我用过的最“丝滑”的命令行工具之一!比如,我经常用 fzf
查找文件:运行 find . -type f | fzf
,然后输入几个关键词,fzf 就会快速列出匹配的文件,按回车直接打开,效率爆棚!更厉害的是它的命令历史搜索(Ctrl+R
),以前翻 Bash 历史得按无数次上箭头,现在用 fzf 几秒钟就能找到想用的命令。
fzf 的学习曲线稍微有点陡,尤其是想用它写脚本时,需要了解一些管道和 shell 知识。但一旦上手,你会发现它简直是“效率神器”。我现在几乎每天都在用 fzf,无论是找文件、切换 Git 分支还是清理 Docker 容器,都离不开它!
ripgrep(GitHub)是用 Rust 开发的超快文本搜索工具,旨在取代传统的 grep
命令。它的速度比 grep
快几倍到几十倍,同时支持更现代化的功能,比如正则表达式、忽略 Git 忽略文件等。
.gitignore
中的文件,减少无关结果。brew install ripgrep
或 sudo apt install ripgrep
。winget install ripgrep
或下载二进制文件。ripgrep 的速度真的让我惊叹!有一次我在一个包含几千个文件的项目中搜索某个函数名,用 grep
要等好几秒,而 rg
几乎是秒出结果。它的默认配置也很聪明,比如自动跳过二进制文件和 .git
目录,搜索结果干净又精准。
我特别喜欢用 rg
结合 Vim:运行 :Rg 关键词
,就能在 Vim 中快速跳转到匹配的代码行。唯一的“缺点”是,ripgrep 的选项非常多,初学者可能需要查文档才能用好高级功能。不过,日常使用只需要 rg 关键词
就够了,简单又高效。
bat(GitHub)是用 Rust 开发的现代化 cat
替代品,号称“A cat(1) clone with wings”(一个带翅膀的 cat 命令)。它不仅能像 cat
一样显示文件内容,还支持语法高亮、行号、Git 修改标记等。
--paging=auto
自动调用 less
浏览长文件。brew install bat
或 sudo apt install bat
。winget install bat
。安装后,建议设置别名:
alias cat='bat'
bat 完全颠覆了我对 cat
的认知!以前用 cat
看代码文件,只能看到一堆黑白文字,完全没有可读性。现在用 bat
,代码自动高亮,行号一目了然,感觉像在用 VS Code 查看文件。尤其是看 JSON 或 YAML 文件时,bat 的格式化显示让我省了不少心。
我还喜欢用 bat --style=changes
检查 Git 修改,新增和删除的行会用绿色和红色高亮,超级直观。唯一的小问题是,bat 在显示超大文件时可能会稍微慢一点,但日常使用完全无压力。
这些新兴命令行工具(eza、fzf、ripgrep、bat)有一个共同点:它们都以现代化和高效为核心,解决了传统工具(如 ls、grep、cat)的痛点。相比之下:
更重要的是,这些工具大多是开源的,背后有活跃的社区支持。无论是提交 Bug、提出新功能,还是自己动手贡献代码,你都可以参与其中,让工具变得更好。
为了让这些工具发挥最大作用,我总结了一些安装和配置的小技巧:
rg . | fzf
,效果惊艳!用了这些工具快一年,我已经彻底抛弃了传统的 ls
、grep
和 cat
。以下是我在几个场景下的真实体验:
以前找文件要靠 ls
和 find
,效率低下。现在我用 eza --tree
查看目录结构,用 fzf
模糊搜索文件,几秒钟就能定位到目标。eza 的图标和颜色让导航变得赏心悦目,fzf 的实时过滤则让我“指哪打哪”。
在大型代码库中搜索关键字,ripgrep 是我的救星。比如,运行 rg "function_name" -g "*.rs"
,就能快速找到 Rust 文件中的目标函数。结合 bat 查看结果,代码高亮显示,阅读体验一级棒!
我经常写一些小脚本,用 fzf 实现交互式选择。比如,写一个清理 Docker 镜像的脚本,用 docker images | fzf --multi
让用户选择要删除的镜像,简单又实用。
这些工具虽然强大,但也有一些小缺点:
不过,这些问题都瑕不掩瑜。只要稍微花点时间上手,你就会发现它们带来的效率提升完全值得!
从 eza 的美观输出,到 fzf 的模糊搜索,再到 ripgrep 的超快速度和 bat 的代码高亮,这些新兴命令行工具彻底改变了我的终端体验。它们不仅让操作更高效,还让枯燥的命令行变得有趣起来。
如果你也想让终端“焕然一新”,强烈建议试试这些工具!它们全部免费,安装简单,功能强大,绝对能让你爱上命令行。快去 GitHub 下载(eza、fzf、ripgrep、bat),解锁你的终端“魔法”吧!
最后,欢迎在评论区分享你的使用心得,或者推荐其他好玩的命令行工具!让我们一起把终端玩出花样!