Oh My Zsh 使用指南

March 13, 2026 shell zsh ai-gen

Oh My Zsh 使用指南

本文介绍 Oh My Zsh 的基本用法,包括安装、主题配置、常用插件的推荐与配置。

1. 安装

前置条件

  • macOS 或 Linux
  • 已安装 zsh(macOS 从 Catalina 起默认自带)
  • curlwget
  • git

安装 Oh My Zsh

# 通过 curl 安装
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 或通过 wget 安装
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

安装完成后,Oh My Zsh 位于 ~/.oh-my-zsh,Shell 配置文件为 ~/.zshrc

原有的 .zshrc 会被备份为 ~/.zshrc.pre-oh-my-zsh

卸载(如有需要)

uninstall_oh_my_zsh

2. 主题配置

如何设置主题

编辑 ~/.zshrc,修改 ZSH_THEME 这一行:

ZSH_THEME="agnoster"

然后重新加载配置:

source ~/.zshrc

浏览可用的内置主题

所有内置主题位于 ~/.oh-my-zsh/themes/。你可以在以下页面预览: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes

热门主题

主题 描述
robbyrussell 默认主题,简约风格,显示 git 分支
agnoster Powerline 风格,显示用户名、目录、git 状态、错误码
af-magic 双行提示符,简洁且信息丰富
refined 简约优雅,无需特殊字体
random 每次启动加载随机主题(适合探索新主题)

Powerline 主题所需字体(agnoster 等)

agnoster 这类主题使用了特殊的箭头/图标字符,需要 Powerline 兼容字体。如果未安装,你会看到乱码符号,如 ?

推荐字体MesloLGS NF

在 macOS 上安装:

# 通过 Homebrew 安装
brew install font-meslo-lg-nerd-font

然后设置终端字体:

  • iTerm2:Preferences → Profiles → Text → Font → 选择 “MesloLGS NF”
  • Terminal.app:Preferences → Profiles → Font → Change → 选择 “MesloLGS Nerd Font”
  • VS Code:Settings → Terminal > Integrated: Font Family → MesloLGS NF

3. 插件配置

插件工作原理

插件通过 ~/.zshrc 中的 plugins=() 数组加载:

plugins=(git z zsh-autosuggestions zsh-syntax-highlighting)

插件分为两种类型:

类型 位置 安装方式
内置插件 ~/.oh-my-zsh/plugins/ 直接将名称添加到 plugins=() 即可
自定义/第三方插件 ~/.oh-my-zsh/custom/plugins/ 先克隆仓库,再添加到 plugins=()

注意:不要安装过多插件,每个插件都会增加 Shell 启动时间。只保留你真正使用的插件。

安装第三方插件

通用步骤:

# 克隆到自定义插件目录
git clone <repo-url> ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/<plugin-name>

# 然后将 <plugin-name> 添加到 ~/.zshrc 中的 plugins=() 数组
# 最后重新加载配置
source ~/.zshrc

4. 已安装插件 - 介绍与用法

git(内置)

提供 200 多个别名,简化常用 git 命令的输入。

常用别名

别名 完整命令 说明
gst git status 查看工作区状态
ga git add 暂存文件
gaa git add --all 暂存所有更改
gc git commit 提交
gcmsg "msg" git commit -m "msg" 带消息提交
gco git checkout 切换分支
gcb git checkout -b 创建并切换到新分支
gp git push 推送到远程
gl git pull 从远程拉取
gd git diff 查看差异
glog git log --oneline --decorate --graph 美化的 git 日志
gb git branch 列出分支
gm git merge 合并
grb git rebase 变基
gsta git stash push 暂存更改
gstp git stash pop 弹出暂存

示例工作流

# 原来的写法:
git checkout -b feature/login
git add --all
git commit -m "add login page"
git push

# 使用别名后:
gcb feature/login
gaa
gcmsg "add login page"
gp

查看所有别名

alias | grep git

z(内置)

一个目录跳转工具,它会学习你最常访问的目录,并允许你通过部分名称匹配快速跳转。

安装

已内置,只需将 z 添加到 plugins=() 即可。

工作原理

z 会追踪你 cd 进入的每个目录,并根据访问频率最近访问时间(两者的综合指标称为”frecency”)进行排名。在正常使用 Shell 一段时间后,你可以通过关键词跳转到任意目录。

用法

# 假设你经常访问以下目录:
#   /Users/chenkun/projects/my-app
#   /Users/chenkun/documents/reports

# 通过部分匹配跳转:
z my-app          # → /Users/chenkun/projects/my-app
z reports         # → /Users/chenkun/documents/reports
z proj            # → /Users/chenkun/projects(frecency 最高的匹配)

# 多个关键词(必须全部匹配,且按顺序):
z proj app        # → /Users/chenkun/projects/my-app

# 列出所有已追踪的目录及其分数:
z                 # 显示排名列表

使用技巧

  • 你需要先正常使用 cd 进入目录,z 才能学习这些路径
  • 访问某个目录的次数越多,它的分数就越高
  • 只需访问几次就能生效——正常使用 cd 即可,z 会很快学会

zsh-autosuggestions(第三方)

在你输入命令时,根据历史命令自动给出建议。建议以灰色文字显示在光标后方。

安装

git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

然后将 zsh-autosuggestions 添加到 ~/.zshrcplugins=() 中。

工作原理

当你开始输入时,插件会搜索你的 Shell 历史记录,并将最近匹配的命令以灰色虚影文字的形式显示为建议。

快捷键

按键 操作
(右方向键) 接受整条建议
End 接受整条建议
Ctrl + → 接受建议中的下一个单词
Ctrl + E 接受整条建议(Emacs 风格)

示例

# 你之前执行过:docker compose up -d --build
# 现在你输入:dock
# 你会看到:  dock|er compose up -d --build   (灰色文字)
#                 ^ 光标在此处
# 按 → 接受完整命令

自定义配置(可选,添加到 ~/.zshrc

# 修改建议高亮颜色(默认:fg=8,即灰色)
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#808080,underline"

# 修改建议策略(默认:history)
# "match_prev_cmd" 会考虑前一条命令的上下文
ZSH_AUTOSUGGEST_STRATEGY=(history completion)

zsh-syntax-highlighting(第三方)

在你输入命令时提供实时语法高亮。有效命令显示为绿色,无效命令显示为红色,字符串也会被高亮显示,等等。

安装

git clone https://github.com/zsh-users/zsh-syntax-highlighting \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

然后将 zsh-syntax-highlighting 添加到 ~/.zshrcplugins=() 中。

重要提示:为了获得最佳效果,此插件应放在 plugins=() 数组的最后一个位置。

高亮内容

元素 颜色 示例
有效命令 绿色 lsgitdocker
无效/未知命令 红色 gti(拼写错误)
内置命令 粗体绿色 cdechoexport
别名 绿色 gstll
字符串(带引号) 黄色 "hello world"
选项/参数标志 青色 --verbose-la
路径(存在) 下划线 ~/Documents
路径(不存在) 无下划线 ~/nonexistent

示例

# 输入有效命令 → 文字在输入时变为绿色
ls -la ~/Documents

# 输入无效命令 → 文字立即变为红色
lss -la ~/Documents
#^^^ 红色!按回车之前就知道命令有误

为什么实用

  • 在按下回车之前就能发现拼写错误
  • 即时确认命令是否存在
  • 输入路径时即可验证路径是否存在
  • 直观地区分字符串、选项和命令

无需任何配置——开箱即用。


5. 快速参考:你的当前配置

你的 ~/.zshrc 插件配置行:

plugins=(git z zsh-autosuggestions zsh-syntax-highlighting)
插件 类型 用途
git 内置 Git 命令别名(gstgcogp 等)
z 内置 通过关键词跳转目录
zsh-autosuggestions 第三方 根据历史记录显示命令建议
zsh-syntax-highlighting 第三方 实时命令着色(绿色=有效,红色=无效)

6. 常用命令备忘

# 编辑 ~/.zshrc 后重新加载配置
source ~/.zshrc

# 列出所有活动的别名
alias

# 查看当前主题
echo $ZSH_THEME

# 更新 Oh My Zsh
omz update

# 列出所有可用的内置插件
ls ~/.oh-my-zsh/plugins/

# 查看某个插件的帮助信息
#(大多数插件都有 README)
cat ~/.oh-my-zsh/plugins/<plugin-name>/README.md