在實驗樓的官方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命令,請務必收藏下圖多多使用哦:
zsh自帶的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的拓展插件很多也很強,還得慢慢學習。