共计 1050 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | 它相对与 bash,tcsh 等有什么优势呢?如果优势很突出的话可以直接只学 zsh 吗?本篇文章来做一个详细的介绍,从补全、kill、别名、跳转、历史纪录和通配符搜索等方面来详细说明,相信读完之后你会有所收获的。 |
zsh 的命令补全功能非常强大,可以补齐路径,补齐命令,补齐参数等。(请问你记住 tar 的所有参数了吗,只要 tar - 加 tab 键,再也不用 rtfm 了)
按下 tab 键显示出所有待选项后,再按一次 tab 键,即进入选择模式,进入选择模式后,按 tab 切向下一个选项,按 shift+tab 键切向上一个选项,ctrl+f/b/n/p 可以向前后左右切换。
以前杀进程是 ps aux | grep xxx 查进程的 PID,然后 kill PID。有了 zsh,直接 kill xxx 然后按下 tab 键即可~
zsh 不仅支持普通 alias,还支持针对文件类型的 alias。我配置的文件类型 alias 如下:
alias -sgz='tar -xzvf'
alias -stgz='tar -xzvf'
alias -szip='unzip'
alias -sbz2='tar -xjvf'
alias -sphp=vi
alias -spy=vi
alias -srb=vi
alias -shtml=vi
aliasgcid="git log | head -1 | awk'{print substr(\$2,1,7)}'| pbcopy"
配置完毕之后,在 zsh 下直接输入 xxx.rb,将自动用 vi 打开,直接输入 xxx.tgz,将直接按照 tar -xzvf 解压。最后一个 gcid 将当前 git 项目的第一个 commit 的 id 复制到系统剪切板,在执行 rebase 的时候特别方便。
zsh 的目录跳转更为智能,你无需输入 cd,直接输入路径即可。.. 表示后退一级目录,../../ 表示后退两级,依次类推。(… 的作用和../../ 相同)
输入 d,将列出当前 session 访问过的所有目录,再按提示的数字即可进入相应目录。
~/Applications
~/.proxychains
~/opt/homebrew-cask/Caskro
~/Applications
zsh 的历史记录跨 session,可以共享。历史记录支持受限查找。比如,输入 git,再按向上箭头,会搜索用过的所有 git 命令。
ls *.png 查找当前目录下所有 png 文件,ls **/*.png 递归查找。