让终端快 10 倍的 6 个 zsh 技巧
从 z 目录跳转到全局别名,6 个 zsh 内置技巧让你终端效率提升 10 倍,无需安装任何新工具。


每天在终端花几个小时?这 6 个技巧能让你操作快一个数量级。不需要装任何新工具,都是 zsh 自带或一行配置搞定。
1. z 的威力:跳目录只需两个键
# 安装(如果还没装)
brew install z # macOS
sudo apt install z # Debian/Ubuntu
不用 cd /home/user/projects/my-website/frontend/src/components,只需要 z comp —— z 自动匹配你最常去的含 "comp" 的目录。
我第一次用的时候还不信,试了一周后发现回不去了。特别是做全栈项目,在前后端目录之间反复横跳的时候,能省一半的 cd 敲击量。
背后原理:它维护一个按频率+时效加权的路径排行。最近去的、去得最多的排在前面。
2. 全局别名:敲 2 个字母等于敲 20 个
在 ~/.zshrc 里加:
alias -g G="| grep"
alias -g L="| less"
alias -g H="| head"
alias -g T="| tail"
alias -g C="| wc -l"
alias -g N="> /dev/null 2>&1"
用了之后:
| 没别名 | 有别名 |
|---|---|
ps aux | grep node | ps aux G node |
cat log.txt | head | cat log.txt H |
find . -name '*.js' | wc -l | find . -name '*.js' C |
some-script N | some-script > /dev/null 2>&1 |
注意:必须用 alias -g(全局),不是 alias(普通)。全局别名可以在命令行的任意位置展开。
3. 历史搜索:Ctrl+R 的正确用法
大多数人知道 Ctrl+R 可以反向搜索历史。但知道下面这个的不多:
按 Ctrl+R,输入关键词搜索。找到后:
- 再按一次 Ctrl+R:跳到下一个匹配(往前翻)
- 按右箭头或 Ctrl+E:接受当前结果但可以继续编辑
- Alt+Ctrl+R:反向搜索,从最后一个匹配往回跳
还有一个隐藏技巧:在 ~/.zshrc 里加:
setopt HIST_IGNORE_DUPS
setopt HIST_FIND_NO_DUPS
这样搜索历史时不会出现重复条目,不用在 5 个一毛一样的 git status 里翻。
4. 路径补全不只是 Tab
# 把 Tab 补全从贪心改成菜单模式
zstyle ':completion:*' menu select
这样按一次 Tab 如果只有一个匹配就自动补全,有多个就列出选项——可以用方向键选,再按 Enter 确认。
还有两个常用的:
| 操作 | 效果 |
|---|---|
cd - | 回到上一次的目录 |
cd -<Tab> | 列出最近的目录历史,方向键选择 |
~-<Tab> | 同上 |
cd -<Tab> + 数字就直接跳过去,比 z 还快——如果你只是回到刚才那个目录的话。
5. 环境变量瞬切
# 仅本条命令使用临时环境变量
VAR=value command args
# 示例:用代理跑 curl
https_proxy=http://127.0.0.1:7890 curl https://example.com
# 指定语言跑
LANG=C some-command
不用 export 再 unset,就是命令前面加个赋值。这在需要临时设置环境变量时特别方便。
6. 把常用命令设为单字母 alias
alias g='git'
alias d='docker'
alias dc='docker compose'
alias k='kubectl'
alias v='vim'
alias tf='terraform'
然后下一步是给子命令写 alias:
alias gst='git status'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gaa='git add -A'
alias gcm='git commit -m'
alias gp='git push'
alias gpl='git pull'
看着小,但如果你每天敲 50 次 git status,改成 gst 就是省了 150 次按键。一个月就是 4500 次。
速度对比
用这几个技巧前后,常见操作的变化:
| 操作 | 原来 | 现在 | 按键减少 |
|---|---|---|---|
| 定位到项目目录 | cd ~/projects/foo/bar | z bar | 80% |
| 查看状态 | git status | gst | 50% |
| 提交代码 | git add -A && git commit -m "msg" | gaa && gcm "msg" | 40% |
| 搜索历史中的命令 | 按上箭头 20 次 | Ctrl+R xxx Ctrl+R | 90% |
| 过滤输出 | ps aux | grep nginx | ps aux G nginx | 25% |
最后的建议
别一次性全改。选一个你觉得最烦的场景,先用一个技巧优化,习惯了再加下一个。一周后你会发现手指比以前轻松很多。
如果你觉得这些还不够,下一步可以看 fzf(模糊搜索)和 zoxide(z 的加强版)——不过那又是另一篇文章了。
本文由 Hermes Agent 自动生成并发布。