如何使用 eza 與 zoxide:現代 ls、智能 cd 與 shell 別名入門

裝好 eza 和 zoxide,用別名替代 ls、用 z 跳常去目錄。

终端里每天重复 ls -la 和 cd ../../../projects/foo,信息密度低又费脑。eza 用彩色列目录、Git 状态与树形视图替代传统 ls;zoxide 记住你常去的目录,用 z foo 模糊跳转,不必再背完整路径。

搜尋 eza 安裝 zoxide 智能 cd shell 別名 的人,通常要:在 macOS/Linux 装好两个 CLI、在 zsh/bash 里 init、用几条 alias 把 ls/ll 换成 eza。步骤以 GitHub eza-community/eza 与 ajeetdsouza/zoxide README 为准。

安裝 eza · zoxideinit shell · 试 z / eza別名 ll · tree · 与 fzf 分工

这对谁有用

01

多仓库的开发者

eza 的 --git 一眼看未跟踪文件;zoxide 在 ~/src/acme/web 与 ~/work/acme-api 之间跳目录不用 tab 补全到底。

02

刚换机器的人

把别名写进 ~/.zshrc,新终端自动有「现代 ls + 智能 cd」;zoxide 数据库在本地,可随 dotfiles 备份。

03

仍用默认 ls/cd 的人

不必一次改习惯:先装 eza 只当 ll,zoxide 与 cd 并存;确认稳定后再 alias cd='z'(可选)。

安装 eza 与 zoxide

  1. 1

    macOS:Homebrew

    brew install eza zoxide。装完新开终端,运行 eza --version 与 zoxide --version。

  2. 2

    Debian / Ubuntu

    较新发行版可能提供 eza 包;若无,按 eza README 用 cargo 或发布页二进制安装。zoxide 可用 curl -sSf https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh(以 README 当前说明为准)或 apt install zoxide(若仓库有)。

  3. 3

    Fedora / Arch

    常见路径:sudo dnf install eza zoxide 或 sudo pacman -S eza zoxide。装完同样用 --version 验证。

  4. 4

    启用 zoxide(必做)

    在 ~/.zshrc 或 ~/.bashrc 末尾加 eval "$(zoxide init zsh)" 或 eval "$(zoxide init bash)",然后 source 该文件。fish 用 zoxide init fish | source。

把 eza 当现代 ls 用

常用标志(详见 eza README):

eza -l --git --icons          # 长列表 + Git 状态 + 图标(需终端字体)
eza -T --level=2              # 两层树形
eza -la --sort=modified       # 按修改时间

建议别名写在 rc 文件里,避免覆盖系统脚本对 ls 的依赖:

# ~/.zshrc 片段
alias ls='eza --icons'
alias ll='eza -la --git --icons'
alias lt='eza -T --level=2 --icons'

zoxide:智能 cd 基础

  1. 1

    先正常 cd 几次

    zoxide 根据你访问过的路径打分。进入项目根几次后,z 项目名片段 才会准。

  2. 2

    z 与 zi

    z web 跳到最匹配的目录;zi 打开交互选择(需 fzf 等,见 zoxide 文档)。

  3. 3

    可选:alias cd

    alias cd='z' 会让所有 cd 走 zoxide;脚本里若依赖 cd 语义,请谨慎或只对交互 shell 启用。

  4. 4

    查询与维护

    zoxide query 看排名;zoxide remove 路径 删掉错误条目。数据库默认在用户目录,换机可导出/备份(见 FAQ)。

工具替代习惯典型命令
ezals -lall、eza -T
zoxide长路径 cdz foo、zi
alias重复打长参数alias ..='cd ..'(仍可用)

zoxide 管目录跳转,不替代 find 或 fzf 搜文件。历史命令仍用 Atuin/fzf;三者分工:eza 看当前夹、zoxide 跳常去夹、fzf 选文件或历史。

结对改 dotfiles 或对齐项目路径时,可从 wbroom 首页 开浏览器房间共享终端,见 建立與加入房間。

还想核对的问题

eza 和 exa 是什么关系?

eza 是 exa 的社区延续分支,目标仍是现代 ls。若系统仍装 exa,不要混用两个别名,只保留一个。

zoxide 在 SSH 远程机也要装吗?

是的,z 是本地 shell 函数,远程会话需要在远端安装 zoxide 并 init。各机数据库独立,除非你用同步方案(非默认)。

别名写在 zsh 还是 bash?

看你默认登录 shell:echo $SHELL。zsh 用 ~/.zshrc,bash 用 ~/.bashrc(macOS bash 登录 shell 可能读 ~/.bash_profile)。

和 autojump / fzf Alt+C 冲突吗?

autojump 与 zoxide 二选一即可。fzf 的 Alt+C 是临时选目录,zoxide 是学你常去的排名;可以同时保留,按键不同。

開始一場會議