在实验楼的官方QQ群和人聊天时听说windows子系统仿照终端开源软件wsl,于最新windows10 1703内置了子系统ubuntu16.04,并支持在子系统中打开exe可执行文件、编译安装vim以执行python补全和异步代码测试、据说今年Build大会微软会推出Fodora和Suse子系统,virtualBox和vmware虚拟机可以使用hyperv+docker替代。
重点来了:
oh-my-zsh可以安装在windows平台了!
那我就不得不尝试一下了,官网在这里:http://ohmyz.sh 。考虑到没几个月我就会转向MacOS上开发,这次我就打算先双系统更新到WIN10 1703,使用wsl终端+子系统ubuntu 16.04+zsh shell。
OS X用户:睾贵的自带了zsh,跳过...
Ubuntu用户:sudo apt-get install zsh
Windows7-8用户:由于天生太高贵,无法安装。
Windows 10推出了bash for windows,终于也可以使用zsh
装上1703之后我不得不说这个版本确实更新挺大,很值得升级!默认使用powershell代替cmd提示符,ubuntu子系统可以选择中文,默认还有游戏模式,邮件直接支持注册Gmail账户,太多好处了,下面我们还是先说说zsh吧。
首先当然是去开源的代码托管平台看看这个star数超过50K的oh-my-zsh项目,要知道laravel也才30K。源码地址:https://github.com/robbyrussell/oh-my-zsh
首先当然是安装这东西
- 查看系统中有哪些shell?
cat /etc/shells
- 搜索看看仓库里和zsh相关的包有哪些?
sudo apt-cache search zsh
- 看到了包的说明后,我们看看zsh包详细说明。
sudo apt-cache show zsh
- 看到我们即将安装的是最新版本5.0,然后安装zsh这个SHELL。
sudo apt-get install zsh -y
- 验证下安装是否成功。
zsh --version
- 查看当前的默认shell是啥。
echo $SHELL
- 是bash。那么我们把默认SHELL改成zsh吧。
chsh -s $(which zsh)
- 上面的操作可能在windows内置子系统中并不生效,那么我们可以在.bashrc末尾加上shell代码,当你打开bash时候切换到zsh。
bash -c zsh
退出后重新登录,查看默认shell。windows用户就不用查看shell了,永远只能看到默认的bash。
默认情况下用户主目录会生成
.oh-my-zsh
目录,.zcompdump文件
,.zsh_history
,.zshrc
和.zsh -update
文件,和bash类似,他们分别的作用是``,记录用户历史执行的命令
,zsh启动时加载的配置文件
。
关于zsh主题和插件
- zsh默认主题是
robbyrussell
,位于主目录.zshrc文件中,下面我们来修改一下zsh的主题,找到.zshrc文件中的ZSH_THEME="robbyrussell"
,修改为随机主题random
或以下选择一个我喜欢的主题:
ZSH_THEME="random"
ZSH_THEME="agnoster"
ZSH_THEME="ys"
ZSH_THEME="sorin" 我在用的主题
ZSH_THEME="cloud"
更多主题效果查看(按英文字母排序):https://github.com/robbyrussell/oh-my-zsh/wiki/themes
另外,zsh貌似自带Git命令哦,Ubuntu 16.04实测自带git版本还挺新 2.7.4。
主题主要是界面,好看就行。实用的还是zsh的插件哦,zsh插件太多了,暂时我也没接触多少,留着以后的文章再提吧。
关于zsh完美搭档git
- zsh利用alias默认给你配好了一堆用于git命令,请务必收藏下图多多使用哦:
关于item2和item2中的光标移动
别说了,装上吧,这是macos平台最好的终端软件了。
- 但是item2默认不提供光标按单词跳转,当你复制了一个url,发现行首的wget写成了wgot,按方向键太傻逼了吧?这时候请如下配置,按
option+方向键
即可单词级跳转。
首先打开iTerm2的
preferences-->profile-->Keys
- 将⌥ ←的设置修改为如下内容:
Keyboard Shortcut: ⌥ ←
Action:Send Escape Sequence
Esc + b
- 将⌥→的设置修改为如下内容:
Keyboard Shortcut: ⌥→
Action:Send Escape Sequence
Esc + f
其他一些注意事项
zsh在其实默认不兼容bash,但是你可以搜索一些方式配置使其兼容。
zsh提供了很多短小但是强大的命令,zsh的拓展插件很多也很强,还得慢慢学习。