把终端用顺手:zoxide、eza、bat 这些现代命令行工具值得一试
很多开发者每天都离不开终端。
cd、ls、cat 这些命令当然够用,也足够稳定。但用久了会发现,它们解决的是“能不能完成任务”,不是“做起来顺不顺手”。
比如进入一个深层项目目录,要么手打长路径,要么靠 shell 历史翻;想看目录结构,ls -la 能看,但信息密度和可读性一般;想快速扫一眼 README.md 或配置文件,cat 一下没有语法高亮,长文件还容易刷屏。
这篇文章不讨论复杂的终端美化,也不鼓励把原生命令全都替换掉。只介绍三个很适合日常开发的小工具:zoxide、eza、bat。它们分别改善目录跳转、文件列表、文件查看这三个高频动作。
下面示例都在 Warp Terminal 中演示。Warp 会把命令和输出组织成 block,每条命令的结果边界比较清楚,回看、复制、分享都方便。用它演示命令行工具,视觉上会比传统滚动输出更清楚一些。

Warp Terminal 中组合使用 zoxide、eza、bat 的演示
先安装
macOS 上可以用 Homebrew:
1 | `brew install zoxide eza bat` |
如果你也想用 zoxide 的交互式选择能力,可以额外装 fzf:
1 | `brew install fzf` |
安装完 zoxide 后,还需要让 shell 初始化它。以 zsh 为例:
1 | `echo 'eval "$(zoxide init zsh)"' >> ~/.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 | `alias ll='eza -lah' |
这样既不破坏旧习惯,也能把高频命令变短。
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 | `z warp-terminal-workflow-demo |
在 Warp 里,这几条命令会天然分成几个 block。目录结构是一个 block,README 是一个 block,配置文件是一个 block,Git 状态也是一个 block。回头要复制某条命令或某段输出,不需要在一大片滚动日志里找边界。
这也是 Warp 适合做命令行工具演示的原因:不是因为它让命令本身变强,而是它把“命令”和“输出”的关系展示得更清楚。
如果再配一点相关工具,体验还能继续往前走:
1 | `fd config |
fd 可以看成更顺手的 find,ripgrep 也就是 rg,适合快速搜代码。再往后还有 dust 看目录大小,delta 看 Git diff。它们都不错,但没必要一次装一堆。先把目录跳转、文件列表、文件查看这三个动作顺手化,收益已经很明显。
这些工具适合谁
适合每天在终端里切项目、看文件、查配置的开发者;也适合维护多个 repo、喜欢键盘工作流,但不想配置太重的人。
不太适合很少使用终端的人,也不适合要求只使用系统默认工具的团队环境。
还有一点要注意:如果写的是团队脚本、CI 脚本、部署脚本,最好继续使用系统更常见的命令,比如 cd、ls、cat、find。这些现代工具更适合交互式使用,不适合假设每台机器都已经安装。
不必替代一切,只替代高频摩擦
好的命令行工具不一定要改变工作流。很多时候,它只是把原来有点硌手的地方磨平一点。
zoxide 让你少打路径。
eza 让目录输出更容易读。
bat 让代码和配置文件更适合扫。
它们都不是必须安装,也不是原生命令“不行”。只是当你每天都重复这些动作时,一点点顺手,会慢慢变成很真实的省心。
我的建议是:不要一次改太多。先装这三个,在 Warp Terminal 里用一周。习惯了,就给高频命令加几个 alias;不习惯,就删掉。终端工具的目标不是炫技,而是让你更快回到真正要写的代码里。
延伸资料
- • zoxide:https://github.com/ajeetdsouza/zoxide
- • eza:https://github.com/eza-community/eza
- • bat:https://github.com/sharkdp/bat
- • Warp Blocks:https://docs.warp.dev/terminal/blocks
💬 本文评论区已开启,但暂无读者留言。
本文转载自微信公众号,如有侵权请联系删除。
- 标题: 把终端用顺手: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 进行许可。