你的终端是否看上去平平无奇,使用上也不那么顺手便捷呢,不妨试试下面的这些扩展让你的终端更好用。
- eza: 终端文件图标、颜色、git 状态
- yazi:终端文件管理器,预览、操作文件
- btop:终端任务管理器,任务监控
- duf:终端磁盘空间查看工具,磁盘信息
- bat:终端文件查看工具,语法高亮
- fastfetch:终端系统信息查看
- fzf:终端模糊查找器,模糊匹配
-
fd:终端查找器,替代
find - ripgrep:终端文本搜索工具
- zoxide:终端记忆跳转路径,记住敲过的路径快速跳转
- lazygit:终端Git界面
- lazydocker:终端Docker界面
- zellij:终端复用器,分屏、Session 管理
- cmux:垂直标签页和通知功能的终端软件,适用于 AI 编码代理
eza
在使用
ls 之类查看文件时,很难区分文件还是目录,
eza 可以列出文件列表的图标、颜色、git 状态。
https://github.com/eza-community/eza
安装
brew install eza
集成
打开
~/.zshrc,把下面这些别名追加到文件末尾:
# 使用 eza 代替传统的 ls,添加图标、显示 Git 状态、按目录优先排序 alias ls='eza --icons --git --group-directories-first' alias ll='eza -lh --icons --git --group-directories-first' alias lt='eza --tree --level=2 --icons' # 树状显示,洞察项目结构
也可以对日期时间格式化的显示:
--time-style='default', ' iso', ' long-iso', ' full-iso', ' relative’
自定义格式化:例如,' +%Y-%m-%d %H:%M' => ' 2023-09-30 13:00’
参考: https://docs.rs/chrono/latest/chrono/format/strftime/index.html
alias ls='eza --icons --git --group-directories-first --time-style="+%Y-%m-%d %H:%M:%S %a"' alias ll='eza -lh --icons --git --group-directories-first --time-style="+%Y-%m-%d %H:%M:%S %a"'
保存之后执行
source ~/.zshrc 生效。
用法
ls ll lt


yazi
yazi 终端里的文件管理器,可以在终端里浏览、打开、操作文件。
https://github.com/sxyazi/yazi
安装
brew install yazi ffmpeg-full sevenzip jq poppler fd ripgrep fzf zoxide resvg imagemagick-full font-symbols-only-nerd-font brew link ffmpeg-full imagemagick-full -f --overwrite
如果你的 Mac 终端输入
yazi 无法预览图片,报错:
failed to spawn chaa: no such file or directory
需要安装以下依赖:
# macOS brew install chafa # Ubuntu/Debian sudo apt-get install -y chafa ueberzugpp # 检查命令 # 检查终端图像协议支持 echo $TERM # 验证图像支持 yazi --version | grep -i image
集成(可选)
打开
~/.zshrc,把下面这段追加到文件末尾(可选):
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d '' cwd < "$tmp"
[ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
保存之后执行
source ~/.zshrc 生效。
然后就可以在终端输入
y 替代
yazi 来启动 Yazi。
配置
Yazi 共有三个配置文件:
-
yazi.toml- 常规配置。 -
keymap.toml- 按键绑定配置。 -
theme.toml- 颜色方案配置。
- 新建文件
~/.config/yazi/yazi.toml
显示隐藏文件
在文件名之后显示符号链接指向的路径
[mgr] show_hidden = true show_symlink = true
- 新建文件
~/.config/yazi/keymap.toml
输入模式下按下
键时执行同时关闭输入并清除过滤器
[[input.prepend_keymap]] on = "" run = ["close", "mgr:escape --filter"] desc = "Close input and cancel the filter"
用法
参考: https://yazi-rs.github.io/docs/quick-start#selection
导航
| 绑定 | 备用键 | 行动 |
| ---- | ------ | -------------------------- |
| k | ↑ | 向上移动光标 |
| j | ↓ | 向下移动光标 |
| l | → | 进入鼠标悬停的目录 |
| h | ← | 离开当前目录,进入其父目录 |
文件操作
| 绑定 | 行动 |
|---|---|
| o | 打开选定的文件 |
| O | 以交互方式打开选定的文件 |
| Enter | 打开选定的文件 |
| Shift+Enter | 以交互方式打开选定文件(某些终端尚不支持此功能) |
| Tab | 显示文件信息 |
| y | 复制选定文件 |
| x | 剪切选定文件 |
| p | 粘贴已复制的文件 |
| P | 粘贴复制的文件(如果目标位置已存在则覆盖) |
| Y或者X | 取消 yank 状态 |
| d | 将选定的文件删除到垃圾桶 |
| D | 永 久删除选定文件 |
| a | 创建一个文件(目录以 / 结尾) |
| r | 重命名选定文件 |
| . | 切换隐藏文件的可见性 |
复制路径
c⇒d表示先按下一个c键,然后再按下另一个d键。
| 绑定 | 行动 |
|---|---|
| c⇒c | 复制文件路径 |
| c⇒d | 复制目录路径 |
| c⇒f | 复制文件名 |
| c⇒n | 复制文件名(不带扩展名)。 |
过滤文件
| 绑定 | 行动 |
|---|---|
| f | 过滤文件 |
查找文件
| 绑定 | 行动 |
|---|---|
| / | 查找下一个文件 |
| ? | 查找上一个文件 |
| n | 前往下一个找到的 |
| N | 转到上一个找到的 |
搜索文件
| 绑定 | 行动 |
|---|---|
| s | 使用fd按名称搜索文件 |
| S | 使用ripgrep按内容搜索文件 |
| Ctrl+s | 取消正在进行的搜索 |

btop
btop 一个更好看的终端任务管理器。
-
top/htop:老式监控 -
btop: 更直观好用 + 图形化
https://github.com/aristocratos/btop
安装
brew install btop
用法
# 默认 btop # 显示/隐藏布局 1 / 2 / 3 / 4 # 选择进程 ↑ ↓ # 搜索进程 / # kill进程 k

duf
duf 一个更好看的磁盘空间查看工具。
-
df:普通列表信息 -
duf:显示信息更清晰
安装
brew install duf
集成
打开
~/.zshrc,把下面这些别名追加到文件末尾:
# 替代 df alias df='duf'
保存之后执行
source ~/.zshrc 生效。
用法
# 默认 duf # 指定设备/路径 duf /home # 只看特定类型 duf --only local # 排除某些类型 duf --hide-mp /proc,/sys # 输出格式 duf --json # 按大小排序 duf --sort size

bat
bat 一个更好看的
cat 文件查看工具。
- 语法高亮
- Git 集成
- 显示不可打印字符
- 自动分页
https://github.com/sharkdp/bat
安装
brew install bat
集成
打开
~/.zshrc,把下面这些别名追加到文件末尾:
# 替代 cat alias cat='bat'
保存之后执行
source ~/.zshrc 生效。
用法
# 显示单个文件 bat [xxx] # 显示多个文件 bat [src/*.rs] # 输入读取 curl -s https://sh.rustup.rs | bat # 输入读取,显式指定语言 yaml2json .travis.yml | json_pp | bat -l json # 显示不可打印字符 bat -A [/etc/hosts] # 不分页输出 bat --paging=never [xxx] # 查看支持语言 bat --list-languages

fastfetch
获取系统信息并以美观的方式呈现,更快更现代的
Neofetch。
-
Fastfetch:启动极快 -
Neofetch:启动相对慢
https://github.com/fastfetch-cli/fastfetch
安装
brew install fastfetch
用法
fastfetch

fzf
fzf 一个通用的命令行模糊查找器。
https://github.com/junegunn/fzf
搭配 fd、ripgrep(rg) 使用更强大
安装
brew install fzf
集成
打开
~/.zshrc,把下面这段追加到文件末尾:
# Set up fzf key bindings and fuzzy completion source <(fzf --zsh)
保存之后执行
source ~/.zshrc 生效。
用法
# 选文件 # 会列出当前目录所有文件 # 输入关键词过滤 → 回车选中 fzf # 管道 ls | fzf ps aux | fzf # 搭配 fd fd | fzf # 配合 rg rg keyword | fzf
fd
fd 一个简单 + 快的
find 替代品。
- 语法简单
- 搜索更灵活
- 速度很快
- 批量执行命令
- 结果更清晰
安装
brew install fd
使用
# 模糊匹配(递归查找) find [xxx] # 区分大小写 fd -s [xxx] # 某种文件类型 find -e [py] # 正则匹配 fd '^test$' # 隐藏文件 fd -H [.xx] # 仅目录 fd -t d [xxx] # 仅文件 fd -t f [xxx] # 搜索深度 fd keyword -d 2 [xxx] # 接执行命令 fd py -x python [xxx] # 批量操作 fd log -X rm [xxx] # 配合 fzf fd | fzf

ripgrep
ripgrep(rg) 超快的代码/文本搜索工具(
grep 的升级版)。
- 速度极快(Rust)
- 递归搜索
- 自动忽略(遵循 .gitignore 规则)
https://github.com/BurntSushi/ripgrep
安装
brew install ripgrep
使用
# 搜关键词 rg [xxx] # 正则搜索 rg ["h.*o"] # 指定目录搜索 rg [xxx] [/src] # 忽略大小写 rg -i [xxx] # 文件类型搜索 rg [xxx] -g ["*.py"] # 只显示匹配内容 rg -o [xxx] # 完全匹配 rg -w [xxx] # 目录深度 rg [xxx] --max-depth 2 # 包含隐藏文件 rg [xxx] --hidden # 包含 gitignored 文件(慎用) rg [xxx] -uuu # 列出文件名 rg -l [xxx] # 列没有匹配的文件 rg -L [xxx] # 统计匹配行数 rg -c [xxx] # 配合fzf rg [xxx] | fzf

zoxide
zoxide 是一个
更智能的
cd 命令,其灵感来源于
z 和
autojump。
它会记住你最常用的目录,这样你只需按几下键就能“跳转”到这些目录。
-
cd: 只能“精确路径” -
zoxide: 支持模糊匹配、支持关键词跳转
https://github.com/ajeetdsouza/zoxide
安装
brew install zoxide
集成
打开
~/.zshrc,把下面这些别名追加到文件末尾:
eval "$(zoxide init zsh)" # 替换/增强(可选) alias cd='z'
保存之后执行
source ~/.zshrc 生效。
用法
# 基础跳转 z [目录] # 精确路径 z [~/xxx] # 查看记录 zoxide query # 删除记录 zoxide remove [/xxx] # 手动更新记录 zoxide add [/xxx]

lazygit
一个简单的 git 命令终端界面。
- 用“界面操作”代替手打 git 命令
- 可以查看 commit、分支、diff、stash
- 支持 提交、合并、切换分支、解决冲突
https://github.com/jesseduffield/lazygit
安装
brew install lazygit
集成(可选)
打开
~/.zshrc,把下面这些别名追加到文件末尾:
lg() {
export LAZYGIT_NEW_DIR_FILE=~/.lazygit/newdir
lazygit "$@"
if [ -f $LAZYGIT_NEW_DIR_FILE ]; then
cd "$(cat $LAZYGIT_NEW_DIR_FILE)"
rm -f $LAZYGIT_NEW_DIR_FILE > /dev/null
fi
}
保存之后执行
source ~/.zshrc 生效。
用法
# 启动 lazygit lg # 默认相当于git status # 添加文件(git add) 用 ↑ ↓ 选文件 按:space # 提交 commit c 输入 commit message → 回车提交 # push / pull P / p # 切换分支 进入 branch 面板 ↑ ↓ 选分支 按:enter # 新建分支 n # 删除分支 d # 查看 diff 选文件 按:enter # stash s

lazydocker
一个简单的终端用户界面,支持
docker 和
docker-compose。
- 用界面操作替代 docker 命令
- 可以查看 容器、镜像、日志、卷(volumes)
- 支持 启动 / 停止 / 删除容器
https://github.com/jesseduffield/lazydocker
安装
brew install lazydocker
集成(可选)
打开
~/.zshrc,把下面这些别名追加到文件末尾:
alias lzd='lazydocker'
保存之后执行
source ~/.zshrc 生效。
用法
# 启动 lazydocker lzd # 切换面板 ← → # 选择容器 / 镜像 ↑ ↓ # 启动 / 停止容器 s # 重启容器 r # 删除容器 d # 查看日志 选中容器 → 进入 Logs 面板 # 删除镜像 d # 搜索功能 /

zellij
Zellij 是一个面向开发者、运维人员以及所有热爱终端的用户的工作空间。类似的程序有时也被称为“终端复用器”。
- 可以在一个终端里 多窗口分屏
- 每个 pane 可以跑不同命令(像 tmux)
- 支持 保存会话、断线恢复、布局管理
- 更现代好上手的 tmux 替代品(终端分屏工具)
https://github.com/zellij-org/zellij
安装
brew install zellij
集成(可选)
打开
~/.zshrc,把下面这些别名追加到文件末尾:
# 方式一:普通方式 eval "$(zellij setup --generate-auto-start zsh)" # 方式二:如果你电脑安装其它例如 Ghostty,只想打开 Mac 终端启动 zellij,打开 Ghostty 不启动 zellij if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then if [[ -z "$ZELLIJ" ]]; then eval "$(zellij setup --generate-auto-start zsh)" fi fi
保存之后执行
source ~/.zshrc 生效。
配置
参考: https://zellij.dev/documentation/configuration.html
编辑文件
~/.config/zellij
// 主题
theme "catppuccin-macchiato"
// 滚动缓冲区大小
scroll_buffer_size 10000
// 圆角
ui {
pane_frames {
rounded_corners true
}
}
用法
# 打开面板 Ctrl + p # 底部栏会有各种命令提示 n:新建面板 r:向右分割 d:向下分割 x:关闭面板 Alt + f:悬浮面板 # session zellij -s demo # 重新打开 zellij attach demo # 打开sesion面板 Ctro + O w:进入session管理

cmux
一个基于
Ghostty 的
macOS 终端,带有垂直标签页和通知功能,适用于
AI 编码代理。
https://github.com/manaflow-ai/cmux
安装
brew install --cask cmux
使用
Command + D:左右分屏 Command + Shift + D:上下分屏 Command + W:关闭分屏 Command + N:新建工作区

通知
在终端使用
Claude 生成代码时,不想无聊等待而是切出去干别的,在生成完毕时并不会通知到你,那么
cmux 有一个通知功能,配合
Mac 的通知可以在屏幕上看到消息通知。
