昨天写关于 git 的文章的时候,需要来回切分支,而且 bash 也看不到当前是哪个分支,得不停git branch来看,显得十分麻烦。于是便不得不逼着自己一把,来熟悉一波zsh了。
同事有用zsh的,而且鼎力推荐,因为目前的工作和学习与命令行的交集不是很深,所以一直没有开始用。最近发现bash相比zsh确实是难用许多,便只能硬着头皮来学习了。之所以是硬着头皮,是因为自己对 Linux 系统不是很熟悉,虽然现在是在用,但是对于 Linux 的很多特性都不是很了解,命令行、Shell 脚本算是 Linux 一大特色。
zsh有着强大的功能,但是其配置也是异常复杂,于是 Github 上便有了这样的一个库:oh-my-zsh,oh-my-zsh是为了简化zsh的配置而提供的一个配置模板,可以更好的管理zsh的各项配置。可以看到它有 55k 的 star,可见其火爆程度。现在才来接触,显得挺惭愧的。
关于oh-my-zsh的安装直接照着 github 中的README一步一步来就好了。就提醒一点,安装完之后需要注销掉用户,重启也可以,然后再重新登录,才可以看到zsh。
关于zsh的优势,网上众说纷纭,但是我目前用的不多,体会得不深。现在就我体会到的来说几点。
git支持
很直接的一个体现就是进入到有 git 版本控制的目录,会显示出当前所在的分支。

再也不同git branch来看当前是什么分支了。
另外,oh-my-zsh也配置了很多 git 命令别名,方便使用。比如gst代表git status,gco代表git checkout,还有许许多多的配置,可以参考Plugin:git。
Tab自动补全
比如我想进入到 blog 目录,我敲cd b然后按Tab,zsh变回把所有 b 开头的目录列出来,然后再按Tab,它会帮你选择目录,当选到自己想要的目录时,按回车就可以进入了,是不是非常方便!!!
大小写忽略
大小写切换是很常见的,在上个例子中,即使我敲成cd B也能找到blog目录。
autojump
当目录层级很深的时候,想要进入到那个目录得一直cd--ls--cd--ls,就像这样:

看着就觉得头疼,因为实在无法记住那么长的目录。对此,autojump可谓是一大神作。
先安装:
1 | sudo apt-get install autojump |
然后打开.zshrc,找到plugins,加入autojump:
1 | plugins=(git autojump) |
之后便是这种姿势打开目录了:

怎么样,是不是简直爽爆了!?再也不用臃肿的敲着蛋疼的cd了。
当在一次终端行为中,有了多个进入的目录,可以直接输入d来看到目录,然后直接输入数字便可以快捷进入到相应的目录中了。

简直就是方便!又多了一个不得不用zsh的理由了!!!
快速打开当前所在文件夹
编辑.zshrc文件,加入:
1 | alias o="nautilus ." |
当命令行处于某个文件夹下时,直接键入o即可打开当前文件夹。

这其实只是给zsh配置了一个别名,任何我们常用的操作都可以根据自己喜好配置别名,方便使用。
目前体验的到的可能就这几个我很欣赏的特性了。当然也是才刚刚开始使用,后面有别的再行补充。这里先贴一下网友的配置,后面可能用得到:
1 | ZSH的环境变量 |
题外话
Ubuntu用了也有段时间了,但是感觉还是像用Windows一样在用Ubuntu,很多东西还是依赖图形化界面。但是作为一个开发人员,Shell脚本更值得去拥抱。所以决心后面多用多学,真正拥抱Linux。
最后安利一波 Ubuntu 下录制 Gif 的方案:
安装 Wine,下载 GifCam.exe,然后直接运行 GifCam.exe。
