1. 程式人生 > >Oh My Zsh —— 強大而美觀的終端,你值得擁有

Oh My Zsh —— 強大而美觀的終端,你值得擁有

小時候看黑客帝國,電影中那一串串各種顏色的數字迅速滾動過螢幕,哇,好酷。

然而後來接觸到真實的終端時,才發現這個黑底白字的東西這麼枯燥乏味,探索計算機世界的興趣之火簡直就要被澆滅了,說好的狂拽酷炫呢?

事實上,大多數的終端都是高度支援自定義的,只要你愛折騰,你可以讓它隨心所欲地變化,要實現電影中的效果也並非不可。

然而電影效果終究是電影效果,我們在實際的工作和學習中需要的是一個高效、美觀的終端,而不是一個單純用來“裝 Bi”(這個Bi是和諧音,只是恰巧跟你腦子裡想的那個讀音重合了)的外殼。

我們知道,現在最流行的shellbash,絕大多數的Linux預裝且保持預設的正是它。其他流行的shell

還包括shcshkshtcshdash等,而今天我們的主角,則是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

whereiswhich命令都能滿足我們的要求,可以看到,我的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. 主題配置

可能會有很多人建議下載PowerlinePowerFonts,使用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]
$

當然,主題這種東西也不光是看是否高效,還得考慮個人習慣以及個人審美風格,因此大家完全可以考慮不同的主題和配置方案,網上有豐富的教程指導,這一過程不會太過不愉快。

好了,到此為止,我們的終端就配置好了,快去享用它吧!