oh-my-zsh
Zsh 是一款功能强大且高度可定制的 Shell, 通过提供更多的便利功能和扩展, 使命令行操作更加高效和愉快。它是许多开发人员和系统管理员喜爱的命令行工具之一
Oh My Zsh 是 zsh 的配置管理框架: 负责加载主题、插件和补全, 让 zsh 开箱即用。本文结构: 安装配置 → 常用设置 → 插件命令速查 → 防忘自查
# 安装 / 更新 / 卸载
# 安装 (via curl)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 安装 (via wget)
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"
# 更新
omz update # oh-my-zsh 内置更新命令
upgrade_oh_my_zsh # 同义函数
# 卸载
uninstall_oh_my_zsh # omz 内置卸载命令(会还原 .zshrc)
sudo apt --purge remove zsh # ubuntu 上卸载 zsh 本体
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 目录与配置结构
| 路径 | 作用 |
|---|---|
~/.zshrc | zsh 配置文件, omz 入口: 主题(ZSH_THEME)、插件(plugins=(...))都在这里配 |
~/.oh-my-zsh/plugins/ | omz 自带插件库(300+ 个), 编辑 ~/.zshrc 的 plugins 行启用 |
~/.oh-my-zsh/custom/plugins/ | 第三方/自定义插件目录, git clone 安装的插件放这里 |
~/.oh-my-zsh/themes/ | 自带主题库 |
# 常用设置
# 编辑模式
# 开启 Emacs 模式(默认)。与浏览器输入框一致的逻辑: Ctrl+A 跳到行首, Ctrl+E 跳到行尾
bindkey -e
# 开启 Vi 模式。它把命令行变成了一个"单行版 Vim": 按 Esc 进入命令模式, h/j/k/l 移动光标, 按 i 才是输入
bindkey -v
1
2
3
4
5
2
3
4
5
# 主题
~/.zshrc 中设置 ZSH_THEME="candy", 改完 source ~/.zshrc 生效; 设为 random 则每次开终端随机换主题
# 行编辑快捷键 (Emacs 模式)
| 按键 | 作用 |
|---|---|
Ctrl+A / Ctrl+E | 跳到行首 / 行尾 |
Ctrl+W | 删除光标前一个单词 |
Ctrl+U / Ctrl+K | 删除到行首 / 删除到行尾 |
Ctrl+L | 清屏(同 clear) |
Ctrl+R | 递增搜索历史命令, 再按继续向前找 |
Esc+. | 插入上一条命令的最后一个参数(超高频, 拼接路径神器) |
# 插件
common
# 启用方法
编辑 ~/.zshrc 的 plugins 行(空格分隔), 然后 source ~/.zshrc:
plugins=(git autojump extract brew zsh-autosuggestions)
1
# 已启用插件的命令速查
查看
~/.zshrc的plugins=(...)即可知道自己启用了哪些。以下命令均从插件源码实际提取
# autojump: 目录跳转(最常用)
原理: 记录每次 cd 的目录并按访问频率加权, 之后 j <模糊词> 直达, 不用输全路径。数据库是纯文本: $HOME/Library/autojump/autojump.txt(macOS brew 版), autojump -s 可看统计
| 命令 | 作用 |
|---|---|
j <词> | 跳到权重最高(最常去)的匹配目录, 如 j code |
jo <词> | 跳到目录并用 Finder 打开(打开 Finder 的正确方式, 直达不迷路) |
jc <词> | 只在当前目录的子树内跳 |
jco <词> | jc + Finder 打开 |
只学习交互式 cd 过的目录, 用得越多越准
# git: 高频别名(精选)
| 别名 | 等价命令 |
|---|---|
g | git |
ga / gaa / gapa | git add / add --all / add --patch(逐块挑) |
gst | git status |
gco / gcb / gcm | checkout / checkout -b / checkout $(git_main_branch) |
gc / gcmsg | commit --verbose / commit --message |
gcan! | commit --amend --no-edit(追加修改到上次提交) |
gd / gds | diff / diff --staged |
gl / gp / ggpush | pull / push / push origin 当前分支 |
glo / glog | log --oneline --decorate / 加 --graph 图形化 |
gb / gba / gbd | branch / --all / --delete |
gclean | clean --interactive -d |
grhh | reset --hard |
grt | cd 到仓库根目录(在子目录深处时很实用) |
完整清单: alias | grep git, 或看 ~/.oh-my-zsh/plugins/git/README.md
# extract: 万能解压
x <文件> 一个命令解压所有格式(tar.gz/zip/rar/7z/tgz/bz2...), 不用记各格式的参数
# brew
| 别名 | 等价命令 |
|---|---|
ba | brew autoremove |
bcin / bci | brew install --cask / info --cask |
bcl | brew list --cask |
bcn | brew cleanup |
bdr | brew doctor |
bcubo | brew update && brew outdated --cask |
bcubc | brew upgrade --cask && brew cleanup |
# npm / golang / sublime / vim-interaction
- npm:
npmg=npm i -g、npmS=npm i -S、npmD=npm i -D、npmL0=npm ls --depth=0、npmst/npmt=start/test - golang:
gob=build、gof/gofa=fmt、gog/goga=get、goi=install、gom=mod - sublime:
st=subl、stt=subl .(打开当前目录) - vim-interaction:
v=callvim、vvsp/vhsp=垂直/水平分屏、vk/vj/vl/vh=窗口跳转
# themes / nvm / node / pod
只提供主题、懒加载或补全, 无日常命令
# 推荐插件
zsh-autosuggestions(已启用): 输入时灰色提示历史命令, 按→采纳——防忘神器- install:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
- install:
zsh-syntax-highlighting(未启用): 命令实时标色, 正确绿色/错误红色- install:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
- install:
vscode: 提供code命令相关别名与补全(用 VS Code/Cursor 的可开)
# 防忘自查方法
type j # 查某个命令是别名/函数, 以及定义来源文件
whence -v gst # 同上, zsh 原生写法
alias # 列出当前全部别名
functions j # 看函数完整定义
ls ~/.oh-my-zsh/plugins/ # 所有自带插件
cat ~/.oh-my-zsh/plugins/autojump/README.md # 每个插件目录都有 README
1
2
3
4
5
6
2
3
4
5
6
防忘机制:
zsh-autosuggestions会在输入时灰色提示历史命令——忘了开头字母也会被补全提示出来, 配合→键采纳
# link
上次更新: 2026/10/18, 22:14:48