上一篇《不仅是快!这几个Rust替代工具的高阶用法带你起飞》我们介绍了fdrg,它们作为Rust语言重写的命令行工具,已经彻底改变了我的开发体验。今天,我将带大家深入探索更多Rust编写的命令行神器,它们不仅能提升效率,还能让终端体验变得赏心悦目。

一、替代lseza:让文件列表变得美丽又实用

ls是Linux/Unix系统中最常用的命令,但默认的ls输出往往单调乏味,信息量有限。eza作为ls的Rust替代品,不仅速度快,还带来了全新的视觉体验。

GitHub地址

https://github.com/eza-community/eza

为什么选择eza?

  1. 美观的图标:自动为不同类型的文件显示图标(如文件夹、图片、代码文件等)
  2. 颜色高亮:根据文件类型自动高亮显示
  3. 信息丰富:显示文件大小、时间、权限等详细信息
  4. 支持树形结构eza -T可以以树状结构展示目录
  5. 性能提升:比ls快30%以上

eza vs ls:直观对比

# 传统ls
$ ls -l
total 24
drwxr-xr-x  2 user group 4096 Mar 25 14:20 docs
-rw-r--r--  1 user group 1024 Mar 25 14:20 README.md
-rwxr-xr-x  1 user group 2048 Mar 25 14:20 script.sh
# eza
$ eza -l
drwxr-xr-x  2 user group 4.0K Mar 25 14:20 docs/  
-rw-r--r--  1 user group 1.0K Mar 25 14:20 README.md
-rwxr-xr-x  1 user group 2.0K Mar 25 14:20 script.sh

高级用法

# 带图标、颜色和详细信息
# 有些linux 终端的文件图标可能无法正常展示
eza -l --icons --color=always
# 长格式 + Git 状态
# 自动忽略 .gitignore 文件中忽略的文件和文件夹
eza --git-ignore             
eza --git -l          
# 按修改时间排序
eza -l --sort=modified

# 树形结构显示
eza -T
# 树状视图,只展开2层
eza -T --level=2              
# 显示所有文件(包括隐藏文件)
eza -a


# 仅显示文件
eza -f
eza --color-scale  -l           # 文件按大小颜色渐变(超酷)

# -s 排序参数可以指定的排序规则: name, Name, size, extension, Extension, modified, changed, accessed, created, inode, type, none
eza -l -s size -r                # 按大小倒序
eza -s size -r                # 按大小倒序


别名设置:无缝替换ls、ll、lt、la

# 在~/.bashrc或~/.zshrc中添加
echo "alias ls='eza --git'" >> ~/.bashrc
echo "alias ll='eza -l --git'" >> ~/.bashrc
echo "alias lt='eza -T' --git" >> ~/.bashrc
echo "alias la='eza -la --git'" >> ~/.bashrc
source ~/.bashrc

安装方法

# macOS (Homebrew)
brew install eza

# Ubuntu/Debian
sudo apt install eza

# Windows (Scoop)
scoop install eza

二、替代cdzoxide:让目录跳转如闪电般迅速

cd命令是日常使用最频繁的命令之一,但传统方式需要输入完整路径。zoxide通过智能记忆最近和最常访问的目录,让你的目录跳转变得极其快速。

GitHub地址

https://github.com/ajeetdsouza/zoxide

为什么选择zoxide?

  1. 智能记忆:自动记录你最常访问的目录
  2. 快速跳转:只需输入目录名的一部分,即可跳转
  3. 支持模糊匹配:即使输入不完整,也能找到匹配项
  4. 与shell无缝集成:支持bash、zsh、fish等

zoxide vs cd:直观对比

# 传统cd
$ cd /home/user/projects/my_project/src/main/java/com/example

# zoxide
$ z my_project  # 只需输入部分名称,即可跳转

高级用法

# 添加到shell配置文件(推荐)
# for zsh
echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc

# for bash
echo 'eval "$(zoxide init bash)"' >> ~/.bashrc


# 添加当前目录到记录
z .  # 或 z -a

# 删除特定目录记录
z -r /path/to/directory

安装方法

# macOS (Homebrew)
brew install zoxide

# Ubuntu/Debian
sudo apt install zoxide

# Windows (Scoop)
scoop install zoxide

三、替代catbat:让文件内容阅读变得赏心悦目

cat命令用于显示文件内容,但默认输出没有任何格式,对于代码文件尤其难以阅读。batcat的Rust替代品,提供了语法高亮、行号、文件分隔等高级功能。

GitHub地址

https://github.com/sharkdp/bat

为什么选择bat?

  1. 语法高亮:自动为不同编程语言提供语法高亮
  2. 行号显示:默认显示行号,方便代码定位
  3. 文件分隔:多个文件时自动分隔
  4. 支持分页:配合less使用,可分页查看大文件
  5. 性能优异:比cat更快,尤其在处理大文件时

bat vs cat:直观对比

# 传统cat
$ cat Dockerfile

# bat
$ bat Dockerfile

Ubuntu/Debian安装注意事项

在Ubuntu/Debian上,bat的包名是batcat,需要创建别名:

# 安装batcat
sudo apt install batcat

# 创建别名(推荐)
echo "alias bat='batcat'" >> ~/.bashrc
source ~/.bashrc

高级用法

# 显示行号
bat -n file.txt

# 显示行号和语法高亮
bat -n --theme=ansi file.py

# 按指定主题显示
bat --theme=ansi file.py

# 仅显示文件内容,不显示文件名
bat -f file.py

# 配合less分页查看
bat file.py | less

# 以十六进制显示文件
bat -H file.bin

安装方法

# macOS (Homebrew)
brew install bat

# Ubuntu/Debian
sudo apt install batcat
echo "alias bat='batcat'" >> ~/.bashrc && source ~/.bashrc

# Windows (Scoop)
scoop install bat

四、Rust命令行工具的终极组合:让终端体验全面升级

将这些Rust命令行工具组合使用,可以创建一个高效、美观、易用的终端环境:

# 查找并打开文件(用eza查看,用bat打开)
eza -l | grep "main"
bat main.py

# 快速跳转到项目目录
z my_project

# 搜索代码中的TODO
fd -e py | xargs rg TODO

五、安装建议:一键配置你的高效终端

为了让你快速体验这些工具,我整理了一个一键配置脚本:

# macOS
brew install fd ripgrep eza bat zoxide
echo 'eval "$(zoxide init bash)"' >> ~/.bashrc
source ~/.bashrc

# Ubuntu/Debian
sudo apt install fd-find ripgrep eza batcat zoxide
echo "alias bat='batcat'" >> ~/.bashrc
echo "alias fd=fd-find" >> ~/.bashrc
echo "alias rg=ripgrep" >> ~/.bashrc
echo 'eval "$(zoxide init bash)"' >> ~/.bashrc
source ~/.bashrc

重要提示

  • macOS用户:确保已安装Homebrew,且使用bashzsh作为默认shell
  • Ubuntu/Debian用户:batcat是实际安装包名,别名bat已自动配置
  • zoxide初始化命令已包含在脚本中,无需额外操作

结语

fdrg,到ezazoxidebat,Rust编写的命令行工具正在彻底改变我们与终端的交互方式。它们不仅速度快,而且设计精良,让我们的日常工作变得更加高效和愉悦。

在技术快速迭代的今天,拥抱这些现代工具,就是拥抱更高效的工作方式。不要被传统命令行的"习惯"束缚,尝试这些Rust工具,你会发现终端体验的质的飞跃。

你最喜欢哪个Rust命令行工具?在评论区分享你的使用体验吧!如果觉得这篇文章对你有帮助,别忘了点赞、转发,让更多开发者体验到这些效率神器。


Q.E.D.


寻门而入,破门而出