13
0
0

Oh My Zsh 安装 & 配置

2026-11-05
2026-11-05
Oh My Zsh 安装 & 配置
文章摘要
|

摘要:本文介绍 Oh My Zsh 与 Zsh 的基本概念,以及在 macOS 上安装、配置主题、查看主题、卸载与升级 Oh My Zsh 的完整流程。针对国内网络环境(GitHub 访问受限)单独给出镜像与加速方案。全文以表格形式组织,便于速查。

⚠️ 本文全部命令均在 Mac 上实测可用,涉及路径、终端、字体、命令写法都以 macOS 为准;Windows / Linux 的差异见文末对照表。


一、概念说明:Oh My Zsh 与 Zsh

项目

说明

Zsh

一款强大的虚拟终端,既可作为系统终端交互使用,也可作为脚本语言的交互式解析器

Oh My Zsh

社区驱动的 zsh 配置管理框架(不是新的 shell),在 zsh 之上提供主题、插件与大量内置函数

官网

https://ohmyz.sh

仓库

https://github.com/ohmyzsh/ohmyzsh

依赖关系

Oh My Zsh 运行在 zsh 之上,必须先安装 zsh;它不会替换 zsh,只负责加载配置

安装位置

默认克隆到 ~/.oh-my-zsh,主配置为 ~/.zshrc

运行环境

macOS(本文唯一验证环境):macOS Catalina 10.15 起系统默认 shell 已是 zsh,无需额外安装

官网与仓库

名称

地址

内容

官网

https://ohmyz.sh

项目介绍、一键安装命令、特色插件展示、社区入口

仓库

https://github.com/ohmyzsh/ohmyzsh

全部源码、Issue 与 PR、更新日志、插件与主题目录

注意:官网旧地址为 http://ohmyz.sh,现统一跳转 HTTPS;仓库早期地址为 robbyrussell/oh-my-zsh,现已迁移至 ohmyzsh/ohmyzsh,请以新地址为准。

常用子页面:

Oh My Zsh 简介

一句话:它是 zsh 的"配置框架 + 工具箱",把原本需要自己手写的几百行 .zshrc 配置,收敛成几个可开关的变量。

维度

内容

本质

一套开源的 zsh 配置管理框架,不是 shell、不是终端软件,也不改变 zsh 的语法

定位

解决"zsh 很强但默认配置太素、自己配又太难"的问题

起始

2009 年 8 月 28 日由 Robby Russell 发布,最初只是分享给同事的 .zshrc,后发展为社区项目

规模

内置 370+ 插件、140+ 主题,另支持任意第三方插件与自定义主题

理念

"Batteries included"(自带电池),装完即用,零配置也能获得开箱体验

开源协议

MIT,可自由用于个人与商业环境

资源占用

启动时加载全部配置,冷启动约几十毫秒;插件装太多会明显变慢

它到底解决了什么问题

痛点

没有 Oh My Zsh

使用 Oh My Zsh

提示符难看

手写 PROMPT 转义序列,一行行调颜色

改 ZSH_THEME="agnoster" 一行搞定

想要 git 分支提示

自己写函数解析 .git/HEAD

内置 git 插件,装完即有分支、状态、ahead/behind

常用别名

逐个 alias ll='ls -lh' 往 .zshrc 里堆

插件自动带上数百个常用别名

目录跳转

每次 cd 敲完整路径

z 插件(autojump)按访问频率跳转

配置维护

越写越长,改一处怕崩一片

按需 plugins=(...) 开关,易于回滚

发展脉络(了解即可)

时间

事件

2009 年 8 月

Robby Russell 把缠绕多年的 .zshrc 拆成多个小文件,打包成公开仓库发布

发布次日

同事提出"想换自己的提示符",于是把样式代码抽成 themes,主题机制诞生

最初几月

收到十余个社区投稿主题,随后按语言/框架需求演化出插件机制

后续

加入安装脚本、升级脚本、自动更新提示,形成今天"开箱即用"的形态

现在

由社区(含 Marc Cornellà 等核心维护者)持续开发,同时衍生出更轻量的 Prezto 等分支

一句话:它不是自上而下设计出来的框架,而是从"分享配置文件"逐步长成的生态。

核心能力一览

能力

说明

典型用法

主题(Theme)

控制提示符外观,可显示路径、用户、git 分支、执行耗时、时间等

ZSH_THEME="robbyrussell"

插件(Plugin)

扩展命令与自动补全,分为官方内置与第三方两类

plugins=(git z docker)

别名(Alias)

常用命令的短写,随插件自动加载

gst = git status、ll = ls -lh

内置函数

提供大量便捷函数,官方称 "Functions"

mkcd 目录(创建并进入)、extract 包名(自动解压各种格式)

omz 命令

新版内置的管理入口

omz theme set agnoster、omz reload

本文聚焦主题部分;插件与 omz 命令只做速览,详见第八节。

官方内置的高频插件(可装可不装,按需添加)

插件

作用

是否需要额外依赖

git

git 别名与分支提示,几乎人人必开

无

z

按历史访问频率跳转目录,z 项目名 直达

无

sudo

连按两次 Esc 自动在命令前补 sudo

无

extract

extract xxx.zip/tar.gz/rar 自动识别格式解压

对应解压工具

command-not-found

命令打错时提示可安装的包名

macOS 需 brew

brew

Homebrew 别名与补全

已安装 Homebrew

docker / kubectl

容器与 K8s 别名、补全

已安装对应 CLI

vscode

code 命令与常用别名

已安装 VS Code

web-search

终端内直接搜索,google 关键词

无

history

h 查看历史、hs 搜索历史

无

启用方式:编辑 ~/.zshrc,把插件名加进 plugins=(...) 数组(空格分隔,不要逗号),再 omz reload。

三者的关系

层级

角色

Mac 上的具体软件

内核层

真正执行命令的 shell

zsh(/bin/zsh,系统自带)

框架层

组织配置、加载主题与插件

Oh My Zsh

展示层

终端窗口软件

Terminal.app(自带)、iTerm2、Warp、VS Code 内置终端

一句话理解:zsh 是引擎,Oh My Zsh 是改装套件,终端 App 是外壳。换主题只影响提示符外观,不影响命令执行。

适合谁用 / 不适合谁用

场景

建议

原因

刚接触命令行的 Mac 用户

✅ 推荐

装完即有补全、别名、好看的提示符,学习成本接近零

天天用 git 的开发者

✅ 推荐

git 插件与分支提示能省大量重复输入

追求极致启动速度

⚠️ 谨慎

可改用更轻的方案(如手写 zsh 配置、Starship + 少量插件)

服务器生产环境

⚠️ 谨慎

多人共用机器上装框架会增加排查成本,建议只配轻量 .zshrc

想深入学 zsh 语法

❌ 不建议先装

框架会遮蔽很多细节,建议先熟悉原生 zsh 再上框架


二、安装 Oh My Zsh

环境检查

检查项

命令

Mac 上的示例输出

是否已安装 zsh

zsh --version

zsh 5.9 (x86_64-apple-darwin23.0)

当前可用 shell

cat /etc/shells

/bin/bash、/bin/zsh …

当前默认 shell

echo $SHELL

/bin/zsh(Catalina 起默认)

系统版本

sw_vers

ProductVersion: 14.x

Mac 检查技巧:打开「终端」按 ⌘ + 空格 输入 "Terminal" 即可;若 zsh --version 报 command not found,说明系统过旧,执行 xcode-select --install 或 brew install zsh。

安装命令

方式

命令

在 Mac 上的适用场景

curl

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

首选,macOS 自带 curl,无需安装

wget

sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Mac 默认没有 wget,需先 brew install wget

Mac 提示:安装过程要求输入 Mac 登录密码(用于 chsh 切换默认 shell),输入时终端不显示任何字符属正常现象,输完直接回车。

脚本做了什么

安装阶段

脚本行为

克隆仓库

从 GitHub 拉取到 ~/.oh-my-zsh

备份旧配置

现有 ~/.zshrc 备份为 ~/.zshrc.pre-oh-my-zsh

生成新配置

基于 templates/zshrc.zsh-template 生成新 ~/.zshrc

切换默认 shell

询问是否 chsh -s 切换到 zsh(Mac 上需输入登录密码)

Mac 补充:若安装时选择了不切换默认 shell,之后想改可用「系统设置 → 用户与群组 → 按住 ⌃ 点按用户 → 高级选项 → 登录 shell」切换,或终端执行 chsh -s /bin/zsh。

安装输出示例

% sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Cloning Oh My Zsh...
Cloning into '/Users/xxxx/.oh-my-zsh'...
remote: Counting objects: 831, done.
remote: Compressing objects: 100% (700/700), done.
remote: Total 831 (delta 14), reused 775 (delta 10), pack-reused 0
Receiving objects: 100% (831/831), 567.67 KiB | 75.00 KiB/s, done.
Resolving deltas: 100% (14/14), done.
Looking for an existing zsh config...
Found ~/.zshrc. Backing up to ~/.zshrc.pre-oh-my-zsh
Using the Oh My Zsh template file and adding it to ~/.zshrc
​
         __                                     __
  ____  / /_     ____ ___  __  __   ____  _____/ /_
 / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / /
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/
                        /____/                       ....is now installed!
​
Please look over the ~/.zshrc file to select plugins, themes, and options.

三、国内网络安装方案

国内直连 github.com 与 raw.githubusercontent.com 常出现超时、Connection refused 或克隆极慢。安装脚本支持通过 REMOTE 变量指定仓库地址,因此不必改脚本,只需换源。

方案对比

方案

配置变量

优点

缺点

推荐度

Gitee 镜像

REMOTE

国内直连速度快、稳定

镜像同步有延迟

★★★★★

GitHub 加速代理

REMOTE

内容与官方完全一致、最新

公共代理偶有波动

★★★★

手动 clone

ZSH

全程可控,可断点重试

步骤多

★★★

方案一:Gitee 镜像(推荐)

REMOTE=https://gitee.com/mirrors/oh-my-zsh.git \
BRANCH=master \
sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"

要点:脚本从 Gitee 下载,但仓库也必须指向 Gitee,否则脚本内部仍会去克隆 GitHub。REMOTE 缺一不可。

方案二:GitHub 加速代理

REMOTE=https://ghproxy.net/https://github.com/ohmyzsh/ohmyzsh.git \
sh -c "$(curl -fsSL https://ghproxy.net/https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

也可替换为 https://ghfast.top/ 前缀,用法完全一致。注意两处都要加前缀:脚本地址与仓库地址。

方案三:手动克隆

步骤

命令

1. 克隆仓库

git clone https://gitee.com/mirrors/oh-my-zsh.git ~/.oh-my-zsh

2. 备份原配置

cp ~/.zshrc ~/.zshrc.pre-oh-my-zsh

3. 使用模板

cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

4. 重载

source ~/.zshrc

手动方式不执行 chsh,如需把 zsh 设为默认 shell,自行执行 chsh -s $(which zsh)。

选源对照

场景

建议

说明

追求稳定、能接受版本稍旧

Gitee 镜像

国内 CDN,克隆通常在几秒内完成

需要与官方最新一致

ghproxy / ghfast

实测返回文件与官方逐字节一致

公司网络限制严格

手动 clone

可配合内网 Git 服务

后续 omz update

建议保持同一源

混用会导致 git pull 失败

安装后常见问题

问题

处理方式

卡在 Cloning Oh My Zsh...

中断后改用 Gitee 方案

Connection refused(443 端口)

网络阻断 GitHub,换镜像

git clone ... failed

检查 REMOTE 是否与脚本源一致

omz update 报错

确认 ~/.oh-my-zsh 的 origin 是否可访问,必要时 git remote set-url origin <镜像地址>


四、命令速查(安装 → 主题 → 卸载)

场景

命令

生效方式

说明

检查 zsh 版本

zsh --version

—

安装前的前置检查

查看可用 shell

cat /etc/shells

—

确认 zsh 已在列表中

curl 安装(官方)

sh -c "$(curl -fsSL .../install.sh)"

重启终端

海外网络推荐

curl 安装(国内)

REMOTE=... sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"

重启终端

见第三节

编辑配置

open -e ~/.zshrc

—

Mac 用「文本编辑」打开

固定主题

ZSH_THEME="robbyrussell"

重启终端

默认主题即 robbyrussell

随机主题

ZSH_THEME="random"

每次启动

启动时打印当前主题名

查看主题列表

cd ~/.oh-my-zsh/themes && ls

—

列出全部内置主题

升级

upgrade_oh_my_zsh / omz update

—

两种写法等价

重载配置

omz reload

立即

新版内置命令

卸载

uninstall_oh_my_zsh

重启终端

自动还原原配置


五、设置主题

主题模式

配置项

取值

效果

固定主题

ZSH_THEME

主题名,如 "agnoster"

每次启动都用同一主题

默认主题

ZSH_THEME

"robbyrussell"

安装后的出厂值

随机主题

ZSH_THEME

"random"

每次启动随机一个主题

候选随机

ZSH_THEME_RANDOM_CANDIDATES

("robbyrussell" "agnoster")

限定随机范围

操作步骤

步骤

命令 / 操作

说明

1

open -e ~/.zshrc

Mac 专用:用「文本编辑」打开;open -a "Visual Studio Code" ~/.zshrc 可换编辑器

2

找到 ZSH_THEME= 行

安装后默认 ZSH_THEME="robbyrussell"

3

改为目标主题名

如 ZSH_THEME="agnoster"

4

保存并重开终端

或执行 omz reload 立即生效

Mac 提示:~/.zshrc 是隐藏文件,Finder 中按 ⌘ + ⇧ + . 可显示;也可用 code ~/.zshrc(VS Code)、vim ~/.zshrc 直接编辑。

随机主题启动时会打印当前主题名:

[oh-my-zsh] Random theme '/Users/xxxx/.oh-my-zsh/themes/zhann.zsh-theme' loaded...

其中 zhann.zsh-theme 即当前主题名。遇到喜欢的,把 ZSH_THEME 改成 "zhann" 即可固定(注意去掉 .zsh-theme 后缀)。


六、查看主题

目的

命令

列出内置主题

cd ~/.oh-my-zsh/themes && ls

列出可用主题(新版)

omz theme list

查看在线预览

Themes Wiki

预览在线缓慢时

用 omz theme use <名称> 逐个试用,满意后再 set 固定

国内访问 GitHub Wiki 可能较慢,替代做法:先用 omz theme list 拿到全部主题名,再用 omz theme use <名称> 临时切换预览(参数缺省时即为 random)。

主题相关目录

路径

用途

内置主题

~/.oh-my-zsh/themes

官方自带,升级可能被覆盖

自定义主题

~/.oh-my-zsh/custom/themes

第三方/自建主题放这里


七、卸载 Oh My Zsh

步骤

命令

说明

1

uninstall_oh_my_zsh

执行内置卸载脚本

2

Are you sure you want to remove Oh My Zsh? [y/N] Y

输入 Y 确认

3

重启终端

使原配置生效

卸载脚本对文件的处理:

文件

处理方式

~/.oh-my-zsh

整个目录删除

~/.zshrc.pre-oh-my-zsh

还原为 ~/.zshrc

当前 ~/.zshrc

重命名为 ~/.zshrc.omz-uninstalled-<时间戳> 备份

Removing ~/.oh-my-zsh
Looking for original zsh config...
Found ~/.zshrc.pre-oh-my-zsh -- Restoring to ~/.zshrc
Found ~/.zshrc -- Renaming to ~/.zshrc.omz-uninstalled-20170820200007
Your original zsh config was restored. Please restart your session.
Thanks for trying out Oh My Zsh. It's been uninstalled.

说明:以上为 2017 年版本的输出。现行脚本行为一致,仅末句改为 "Don't forget to restart your terminal!",语义相同。


八、Tips

omz 管理命令(新版内置,可替代手改配置)

命令

作用

omz theme list

列出全部主题

omz theme set agnoster

写入 .zshrc 并重载当前会话

omz theme use robbyrussell

仅当前会话临时切换,不改配置

omz update

升级 Oh My Zsh

omz reload

重新加载 .zshrc

omz version

查看版本与当前 commit

常见问题

问题

处理方式

误关了自动更新提示

执行 upgrade_oh_my_zsh 或 omz update 手动升级

改完配置不生效

重开终端,或执行 omz reload / source ~/.zshrc

主题显示乱码方块

agnoster 等主题需安装 Powerline / Nerd Font 字体,Mac 推荐 brew install --cask font-meslo-lg-nerd-font,再到终端设置里把字体改为 MesloLGS NF

主题名报 not found

确认拼写,且不带 .zsh-theme 后缀

国内 omz update 卡住

仓库地址改回国内镜像:git -C ~/.oh-my-zsh remote set-url origin https://gitee.com/mirrors/oh-my-zsh.git

插件源码拉不下来

第三方插件同样走代理,如 git clone https://ghproxy.net/https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

Mac 提示 operation not permitted

系统完整性保护或终端未获「完全磁盘访问权限」,到「系统设置 → 隐私与安全性」中授权

Mac 升级后主题失效

系统大版本升级可能重置默认 shell,echo $SHELL 确认后重新 chsh -s /bin/zsh

分屏与搜索(Mac 终端快捷键)

操作

Terminal.app

iTerm2

新标签页

⌘ + T

⌘ + T

垂直分屏

⌘ + D

⌘ + D

水平分屏

⌘ + ⇧ + D

⌘ + ⇧ + D

搜索历史输出

⌘ + F

⌘ + F

清屏

⌘ + K

⌘ + K

放大 / 缩小字号

⌘ + + / ⌘ + -

⌘ + + / ⌘ + -

终端推荐

软件

说明

地址

Terminal.app

Mac 自带,零配置即可用,配合本文主题已足够

系统内置

iTerm2

功能更强的 macOS 终端,支持分屏、搜索、丰富的配色主题

https://iterm2.com/index.html

Warp

新式终端,内置 AI 命令补全,界面现代化

https://www.warp.dev


九、Mac 与其他系统差异对照

项目

macOS(本文环境)

Windows

Linux

默认 shell

zsh(Catalina 起)

PowerShell / cmd

bash

打开配置文件

open -e ~/.zshrc

无直接对应,用编辑器打开 %USERPROFILE%\.zshrc

xdg-open ~/.zshrc 或 vim ~/.zshrc

切换默认 shell

chsh -s /bin/zsh

需 WSL,chsh 在 WSL 内使用

chsh -s $(which zsh)

安装 wget

brew install wget

自带(Win10+)

apt install wget

Nerd Font 安装

brew install --cask font-meslo-lg-nerd-font

手动下载字体文件安装

手动放入 ~/.local/share/fonts

推荐终端

Terminal.app / iTerm2

Windows Terminal + WSL

GNOME Terminal / Konsole

配置文件路径

~/.zshrc

WSL 内同为 ~/.zshrc

~/.zshrc


支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!