Skip to content

zsh 有哪些方便快捷的功能,提升shell输入体验 优点简介(不断补充)

这几天宅在家里享受胜利日的假期,连续2天下雨,出不去....

无聊之时会玩一玩 zsh ,确实是个好东东,作为一个攻城狮的你,必须要去玩转一下.

之前介绍了 如何配置利用oh-my-zsh 来配置你的zshzsh 通过修改配置文件,皮肤模板来定制化属于你的shell

上面的传送链接你可以直接点击查看 (这句话好像是废话,忽略吧)

今天分享几个 zsh 使用小技巧:

  1. 如果你不知道该如何使用 zsh ,那么你之前如何使用的 bash ,现在就怎么使用.

没错,这就是一个技巧.

zsh 360°无死角全兼容 bash ,之前怎么写,现在就怎么写. 这才叫酸爽!

  1. 按 tab 键补全

之前在 bash 环境下.如果我的用户目录下有个 code 文件夹.

那么,我我输入 co 打tab 键会默认补全成 code

这个功能 zsh 下也实用,而且更高级的是,它不仅仅是匹配第一项 (bash 下不论你按多少下 tab ,始终匹配第一项补全 code )

zsh 会匹配当前目录下的所有 co 开头的文件夹,每按一次 tab ,就向后依次补全候选项.

什么意思:

就是我用户目录下有2个 co 开头的文件夹 code 和 core

当我输入 co 后,按 tab 第一次补全 code ,按第二次就会补全 core ,第三次又是 code ,依次循环.

  1. 首字母匹配
➜  /Users/zhangzhi  >cd c/k/k/t/c

当我的 zsh 终端输入这些打头字母时. 按下 tab ,神奇的一幕出现了 ,自动帮我补全了如下路径.

➜  /Users/zhangzhi  >cd code/ktsg_new/ktsg_new/trunk/config

4. 跳转路径 省略 cd 命令.

你可以直接按照 finder 里定位路径一下,一层一层输入路径名.就像这样:

➜  /Users/zhangzhi  >code/kt/kt_sgs/ktsg_portal/trunk/api/

直接回车 就可以进入 api 目录

当然,你还可以使用上面 3 提到的首字母缩略写法:

➜  /Users/zhangzhi  >c/b/n

然后tab 去补全这个目录,就是下面的:

➜  /Users/zhangzhi  >code/blog/node_modules/

这个过程如果你的首字母存在多个候选目录的时候,可能需要你输入第二个,第三个字母来准确定位.

5. 在你的当前所在目录 输入文件内名,可以直接跳转进入.

输入 ... 回车,直接在当前定位回退2层目录

➜  /Users  >cd zhangzhi/code/new_portal/app
➜  /Users/zhangzhi/code/new_portal/app git:(dev) ✗ >...
➜  /Users/zhangzhi/code  >

上面 shell 我首先进入 zhangzhi/code/new_portal/app 这个目录.

然后 输入 ...

回退2层目录 直接定位到了 /Users/zhangzhi/code 目录下

6. 当前所在目录下 直接输入 d ,将会展示出你历史访问目录列表,并且左侧加了数字索引,

如下

➜  /Users/zhangzhi/code  >d
0	~/code
1	~/code/new_portal/app
2	/Users

上面的 d 指令给我列出了 3个我的历史访问目录,前面分别加了索引序列 0,1,2

这时的目录索引在你的当前 shell 会话已经被固定.任何时候,在此 shell 会话内输入 1 ,你会看到下面的神奇效果:

➜  /Users/zhangzhi/code  >d
0	~/code
1	~/code/new_portal/app
2	/Users
➜  /Users/zhangzhi/code  >1
~/code/new_portal/app
➜  /Users/zhangzhi/code/new_portal/app git:(dev) ✗ >

当我直接在 zsh 中输入 1 ,回车后它可以准确帮我定位到 ~/code/new_portal/app 目录下,实在是方便体贴.

7.通配符搜索功能.

ls -l

比如我想在我的项目中查找 *.md 等 markdown文件

➜  /Users/zhangzhi/code/new_portal git:(dev) ✗ >ls -l *.md
-rw-r--r--  1 zhangzhi  staff  2954  8 13 11:35 Readme.md

上面的通配符搜索 ls -l *.md

帮我搜索到了 new_portal 目录下有个 Readme.md 文件.

替换了你的使用的 find 和 locate 指令, locate 指令要优于 find,点击查看

更多的 zsh 强大快捷功能等待我们去发现,此博文也会在不断的更新补充.