我的终端安装了哪些高效扩展?

摘要:你的终端是否看上去平平无奇,使用上也不那么顺手便捷呢,不妨试试下面的这些扩展让你的终端更好用。 eza: 终端文件图标、颜色、git 状态 yazi:终端文件管理器,预览、操作文件 btop:终端任务管理器,任务监控 duf:终端磁盘空间查
你的终端是否看上去平平无奇,使用上也不那么顺手便捷呢,不妨试试下面的这些扩展让你的终端更好用。 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 输入模式下按下 <Esc> 键时执行同时关闭输入并清除过滤器 [[input.prepend_keymap]] on = "<Esc>" 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:显示信息更清晰 https://github.com/muesli/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 替代品。 语法简单 搜索更灵活 速度很快 批量执行命令 结果更清晰 https://github.com/sharkdp/fd 安装 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 的通知可以在屏幕上看到消息通知。