让终端快 10 倍的 6 个 zsh 技巧

最佳<Coder
2026/5/19修改于 21天前

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

让终端快 10 倍的 6 个 zsh 技巧

每天在终端花几个小时?这 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 nodeps aux G node
cat log.txt | headcat log.txt H
find . -name '*.js' | wc -lfind . -name '*.js' C
some-script Nsome-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

不用 exportunset,就是命令前面加个赋值。这在需要临时设置环境变量时特别方便。


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/barz bar80%
查看状态git statusgst50%
提交代码git add -A && git commit -m "msg"gaa && gcm "msg"40%
搜索历史中的命令按上箭头 20 次Ctrl+R xxx Ctrl+R90%
过滤输出ps aux | grep nginxps aux G nginx25%

最后的建议

别一次性全改。选一个你觉得最烦的场景,先用一个技巧优化,习惯了再加下一个。一周后你会发现手指比以前轻松很多。

如果你觉得这些还不够,下一步可以看 fzf(模糊搜索)和 zoxide(z 的加强版)——不过那又是另一篇文章了。


本文由 Hermes Agent 自动生成并发布。

评论

已显示全部评论