Oh My Zsh —— 強大而美觀的終端,你值得擁有
小時候看黑客帝國,電影中那一串串各種顏色的數字迅速滾動過螢幕,哇,好酷。
然而後來接觸到真實的終端時,才發現這個黑底白字的東西這麼枯燥乏味,探索計算機世界的興趣之火簡直就要被澆滅了,說好的狂拽酷炫呢?
事實上,大多數的終端都是高度支援自定義的,只要你愛折騰,你可以讓它隨心所欲地變化,要實現電影中的效果也並非不可。
然而電影效果終究是電影效果,我們在實際的工作和學習中需要的是一個高效、美觀的終端,而不是一個單純用來“裝 Bi”(這個Bi是和諧音,只是恰巧跟你腦子裡想的那個讀音重合了)的外殼。
我們知道,現在最流行的shell
是bash
,絕大多數的Linux預裝且保持預設的正是它。其他流行的shell
sh
、csh
、ksh
、tcsh
、dash
等,而今天我們的主角,則是zsh
以及基於zsh
的定製版oh-my-zsh
。
一、安裝
zsh
是一個支援高度個性化的shell
,但是從零開始進行配置需要花費大量的時間,因此讓很多程式設計師望而卻步。同時有些人可能擔心有些bash
命令在zsh
下得不到支援,這一點大家可以放心,根據我平時的經驗,絕大多數bash
下的操作在zsh
下都可以被很好地支援,相容度極高。
1. 安裝zsh
目前來看,並不是所有的Linux發行版會預裝zsh
,因此我們可以先檢查下我們的系統裡是否包含它:
# dain @ localhost in ~ [14:00:29]
$ whereis zsh
/bin/zsh
# dain @ localhost in ~ [14:00:34]
$ which zsh
/bin/zsh
whereis
和which
命令都能滿足我們的要求,可以看到,我的Mac裡已經存在了zsh
,如果沒有的話,我們就需要安裝下zsh
。
在Mac下:
# dain @ localhost in ~ [14:00:36]
$ brew install zsh
在CentOS下:
# dain @ localhost in ~ [14:00:50]
$ sudo yum install zsh
在Ubuntu和Debian下:
# dain @ localhost in ~ [14:01:00]
$ sudo apt install zsh
在Arch和Majaro下:
# dain @ localhost in ~ [14:01:15]
$ sudo pacman -S zsh
不出意外,我們的zsh
應該就安裝好了。我們可以檢視下版本:
# dain @ localhost in ~ [14:06:08]
$ zsh --version
zsh 5.3 (x86_64-apple-darwin17.0)
在Mac下,需要我們先保證HomeBrew已經安裝,大家可以自行搜尋安裝。
2. 安裝git
安裝Oh My Zsh
之前,我們還要保證git
已經安裝:
# dain @ localhost in ~ [14:08:38]
$ whereis git
/usr/bin/git
# dain @ localhost in ~ [14:08:33] C:129
$ git --version
git version 2.17.1 (Apple Git-112)
如果尚未安裝git
則需要進行安裝:
在Mac下:
# dain @ localhost in ~ [14:00:36]
$ brew install git
在CentOS下:
# dain @ localhost in ~ [14:00:50]
$ sudo yum install git
在Ubuntu和Debian下:
# dain @ localhost in ~ [14:01:00]
$ sudo apt install git
在Arch和Majaro下:
# dain @ localhost in ~ [14:01:15]
$ sudo pacman -S git
3. 安裝Oh My Zsh
Oh My Zsh
相當於是一個提供了預設個性化配置的zsh
,我們可以使用curl
或者wget
下載安裝指令碼並執行:
# dain @ localhost in ~ [14:09:07]
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# dain @ localhost in ~ [14:15:14]
$ sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
不是所有的系統或發行版都預裝了wget
,所以使用curl
是一個比較保險的方式。
二、配置
1. 預設shell
修改
我們要將zsh
修改為我們的預設shell
:
# dain @ localhost in ~ [14:30:22]
$ chsh -s /bin/zsh
Changing shell for dain.
Password for dain:
chsh: no changes made
因為我的預設shell
已經是zsh
,所以這裡的輸出可能跟你的不太一樣。
2. 主題配置
可能會有很多人建議下載Powerline
和PowerFonts
,使用agnoster
主題,我最初也是這一套配置方案,然而後來我發現了一個更好的方案,只需要幾秒鐘即可搞定。
那就是ys
主題。使用這一主題不需要任何額外的配置,只需要開啟我們的~/.zshrc
檔案,將主題修改為ys
即可:
# 找到如下這一行,將引號中的部分修改為`ys`即可
ZSH_THEME="ys"
最終實現的效果如下圖,包含了使用者、Host、工作目錄、時間選項,並且另起一行用於使用者輸入,在輸出結果的末尾也會加一行空行,同時還搭配了美觀的配色。這一方案可以輕易地將多次的輸入輸出分開,不會讓使用者產生混淆,使用這一方案,在翻閱歷史輸入輸出時會特別高效,當然,上述的Powerline
方案也可以實現這一目標,只是其配置相對於這一方案複雜了許多。
# dain @ localhost in ~ [14:30:17] C:130
$ echo "Hello World"
Hello World
# dain @ localhost in ~ [14:30:22]
$
當然,主題這種東西也不光是看是否高效,還得考慮個人習慣以及個人審美風格,因此大家完全可以考慮不同的主題和配置方案,網上有豐富的教程指導,這一過程不會太過不愉快。
好了,到此為止,我們的終端就配置好了,快去享用它吧!