把终端用顺手:zoxide、eza、bat 这些现代命令行工具值得一试

lxiol
📝
cd、ls、cat 这些命令当然够用,也足够稳定。但用久了会发现,它们解决的是“能不能完成任务”,不是“做起来顺不顺手”

原文链接:https://mp.weixin.qq.com/s/b1Q4XcwbTIHa56ExkBEqyw

很多开发者每天都离不开终端。

cdlscat 这些命令当然够用,也足够稳定。但用久了会发现,它们解决的是“能不能完成任务”,不是“做起来顺不顺手”。

比如进入一个深层项目目录,要么手打长路径,要么靠 shell 历史翻;想看目录结构,ls -la 能看,但信息密度和可读性一般;想快速扫一眼 README.md 或配置文件,cat 一下没有语法高亮,长文件还容易刷屏。

这篇文章不讨论复杂的终端美化,也不鼓励把原生命令全都替换掉。只介绍三个很适合日常开发的小工具:zoxideezabat。它们分别改善目录跳转、文件列表、文件查看这三个高频动作。

下面示例都在 Warp Terminal 中演示。Warp 会把命令和输出组织成 block,每条命令的结果边界比较清楚,回看、复制、分享都方便。用它演示命令行工具,视觉上会比传统滚动输出更清楚一些。

Warp Terminal 中组合使用 zoxide、eza、bat 的演示

Warp Terminal 中组合使用 zoxide、eza、bat 的演示

先安装

macOS 上可以用 Homebrew:

1
`brew install zoxide eza bat`

如果你也想用 zoxide 的交互式选择能力,可以额外装 fzf

1
`brew install fzf`

安装完 zoxide 后,还需要让 shell 初始化它。以 zsh 为例:

1
2
`echo 'eval "$(zoxide init zsh)"' >> ~/.zshrc
source ~/.zshrc`

如果用的是 bash、fish、PowerShell,初始化命令会不一样,按官方文档改一下 shell 名称即可。

zoxide:让目录跳转不再依赖长路径

zoxide 可以理解成一个更聪明的 cd

它会记住你经常访问的目录。之后不用再输入完整路径,只要输入目录名里的几个关键词,它就会跳到最可能的那个位置。

比如你平时经常进入这个目录:

1
`cd ~/coding/company/backend-payment-service`

用过几次之后,下次可以直接:

1
`z payment`

或者关键词更细一点:

1
`z backend payment`

如果匹配结果不唯一,可以用交互式选择:

1
`zi`

或者带关键词:

1
`zi payment`

这时候如果安装了 fzf,就可以在候选目录里上下选择。对于同时维护多个项目的人来说,这个体验很实用。你不需要记住项目到底放在 ~/coding~/work 还是某个临时目录里,只要之前进去过,zoxide 大概率能带你回去。

它适合项目多、路径深、经常切 repo 的人。如果只有两三个固定目录,普通 cd 或 shell alias 已经够了,没必要为了工具而工具。

eza:让 ls 的输出更适合人看

eza 是现代版 ls 替代工具。它保留了 ls 的核心用途:列文件。但在默认展示、颜色、文件信息、Git 状态、树形视图上做得更友好。

最常用的命令是:

1
`eza -lah`

这和很多人常用的 ls -lah 很接近:显示隐藏文件、长列表、人类可读的文件大小。

想看项目结构,可以用:

1
`eza --tree --level=2`

这比一屏一屏 ls 更适合快速扫项目。--level=2 表示只看到两层,避免把依赖目录、构建产物、深层源码全部刷出来。

如果在 Git 仓库里,可以看文件的 Git 状态:

1
`eza -lah --git`

Git 状态这类信息在长列表模式下更有意义,所以我更常用 eza -lah --git

不建议一上来就把 ls alias 成 eza。更稳的做法是先保留 ls,单独用 eza。等习惯后,再考虑加几个短 alias:

1
2
3
`alias ll='eza -lah'
alias lt='eza --tree --level=2'
alias lg='eza -lah --git'`

这样既不破坏旧习惯,也能把高频命令变短。

bat:让查看代码和配置文件更舒服

bat 是增强版 cat。它最明显的区别是:支持语法高亮、行号、Git 变更标记,并且长文件会自动分页。

查看 README:

1
`bat README.md`

查看 zsh 配置:

1
`bat ~/.zshrc`

查看 JSON、YAML、TOML、Shell 脚本、Markdown 文件时,bat 的可读性会比 cat 好很多。尤其是你只是想快速确认配置有没有写错、某段代码在哪一行、文件最近改了什么,bat 会更顺眼。

如果只是想把文件原样输出给管道或复制,bat 也支持更接近 cat 的纯文本模式:

1
`bat -p README.md`

日常可以这样分工:脚本里继续用 cat,交互式查看时用 bat

在 Warp Terminal 里走一遍真实工作流

假设要进入一个项目,看目录结构,再检查 README 和 Git 状态。用这几个工具组合起来,可以是这样:

1
2
3
4
5
`z warp-terminal-workflow-demo
eza --tree --level=2
bat README.md
bat config/app.yml
eza -lah --git`

在 Warp 里,这几条命令会天然分成几个 block。目录结构是一个 block,README 是一个 block,配置文件是一个 block,Git 状态也是一个 block。回头要复制某条命令或某段输出,不需要在一大片滚动日志里找边界。

这也是 Warp 适合做命令行工具演示的原因:不是因为它让命令本身变强,而是它把“命令”和“输出”的关系展示得更清楚。

如果再配一点相关工具,体验还能继续往前走:

1
2
`fd config
rg "DATABASE_URL"`

fd 可以看成更顺手的 findripgrep 也就是 rg,适合快速搜代码。再往后还有 dust 看目录大小,delta 看 Git diff。它们都不错,但没必要一次装一堆。先把目录跳转、文件列表、文件查看这三个动作顺手化,收益已经很明显。

这些工具适合谁

适合每天在终端里切项目、看文件、查配置的开发者;也适合维护多个 repo、喜欢键盘工作流,但不想配置太重的人。

不太适合很少使用终端的人,也不适合要求只使用系统默认工具的团队环境。

还有一点要注意:如果写的是团队脚本、CI 脚本、部署脚本,最好继续使用系统更常见的命令,比如 cdlscatfind。这些现代工具更适合交互式使用,不适合假设每台机器都已经安装。

不必替代一切,只替代高频摩擦

好的命令行工具不一定要改变工作流。很多时候,它只是把原来有点硌手的地方磨平一点。

zoxide 让你少打路径。

eza 让目录输出更容易读。

bat 让代码和配置文件更适合扫。

它们都不是必须安装,也不是原生命令“不行”。只是当你每天都重复这些动作时,一点点顺手,会慢慢变成很真实的省心。

我的建议是:不要一次改太多。先装这三个,在 Warp Terminal 里用一周。习惯了,就给高频命令加几个 alias;不习惯,就删掉。终端工具的目标不是炫技,而是让你更快回到真正要写的代码里。

延伸资料


💬 本文评论区已开启,但暂无读者留言。

本文转载自微信公众号,如有侵权请联系删除。

  • 标题: 把终端用顺手:zoxide、eza、bat 这些现代命令行工具值得一试
  • 作者: lxiol
  • 创建于 : 2026-05-06 19:53:12
  • 更新于 : 2026-05-12 16:07:04
  • 链接: https://blog.lxiol.cn/2026/05/06/把终端用顺手zoxideezabat-这些现代命令行工具值得一试/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。