小時(shí)候看黑客帝國,電影中那一串串各種顏色的數(shù)字迅速滾動(dòng)過屏幕,哇,好酷。
然而后來接觸到真實(shí)的終端時(shí),才發(fā)現(xiàn)這個(gè)黑底白字的東西這么枯燥乏味,探索計(jì)算機(jī)世界的興趣之火簡直就要被澆滅了,說好的狂拽酷炫呢?
事實(shí)上,大多數(shù)的終端都是高度支持自定義的,只要你愛折騰,你可以讓它隨心所欲地變化,要實(shí)現(xiàn)電影中的效果也并非不可。
然而電影效果終究是電影效果,我們?cè)趯?shí)際的工作和學(xué)習(xí)中需要的是一個(gè)高效、美觀的終端,而不是一個(gè)單純用來“裝 Bi”(這個(gè)Bi是和諧音,只是恰巧跟你腦子里想的那個(gè)讀音重合了)的外殼。
我們知道,現(xiàn)在最流行的shell是bash,絕大多數(shù)的Linux預(yù)裝且保持默認(rèn)的正是它。其他流行的shell還包括sh、csh、ksh、tcsh、dash等,而今天我們的主角,則是zsh以及基于zsh的定制版oh-my-zsh。
歡迎大家關(guān)注我的個(gè)人博客【數(shù)洞】 【備用站】
一、安裝
zsh是一個(gè)支持高度個(gè)性化的shell,但是從零開始進(jìn)行配置需要花費(fèi)大量的時(shí)間,因此讓很多程序員望而卻步。同時(shí)有些人可能擔(dān)心有些bash命令在zsh下得不到支持,這一點(diǎn)大家可以放心,根據(jù)我平時(shí)的經(jīng)驗(yàn),絕大多數(shù)bash下的操作在zsh下都可以被很好地支持,兼容度極高。
1. 安裝zsh
目前來看,并不是所有的Linux發(fā)行版會(huì)預(yù)裝zsh,因此我們可以先檢查下我們的系統(tǒng)里是否包含它:
# dain @ localhost in ~ [14:00:29]
$ whereis zsh
/bin/zsh
# dain @ localhost in ~ [14:00:34]
$ which zsh
/bin/zsh
whereis和which命令都能滿足我們的要求,可以看到,我的Mac里已經(jīng)存在了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應(yīng)該就安裝好了。我們可以查看下版本:
# dain @ localhost in ~ [14:06:08]
$ zsh --version
zsh 5.3 (x86_64-apple-darwin17.0)
在Mac下,需要我們先保證HomeBrew已經(jīng)安裝,大家可以自行搜索安裝。
2. 安裝git
安裝Oh My Zsh之前,我們還要保證git已經(jīng)安裝:
# 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則需要進(jìn)行安裝:
在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相當(dāng)于是一個(gè)提供了預(yù)設(shè)個(gè)性化配置的zsh,我們可以使用curl或者wget下載安裝腳本并執(zhí)行:
# 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 -)"
不是所有的系統(tǒng)或發(fā)行版都預(yù)裝了wget,所以使用curl是一個(gè)比較保險(xiǎn)的方式。
二、配置
1. 默認(rèn)shell修改
我們要將zsh修改為我們的默認(rèn)shell:
# dain @ localhost in ~ [14:30:22]
$ chsh -s /bin/zsh
Changing shell for dain.
Password for dain:
chsh: no changes made
因?yàn)槲业哪J(rèn)shell已經(jīng)是zsh,所以這里的輸出可能跟你的不太一樣。
2. 主題配置
可能會(huì)有很多人建議下載Powerline和PowerFonts,使用agnoster主題,我最初也是這一套配置方案,然而后來我發(fā)現(xiàn)了一個(gè)更好的方案,只需要幾秒鐘即可搞定。
那就是ys主題。使用這一主題不需要任何額外的配置,只需要打開我們的~/.zshrc文件,將主題修改為ys即可:
# 找到如下這一行,將引號(hào)中的部分修改為`ys`即可
ZSH_THEME="ys"
最終實(shí)現(xiàn)的效果如下圖,包含了用戶、Host、工作目錄、時(shí)間選項(xiàng),并且另起一行用于用戶輸入,在輸出結(jié)果的末尾也會(huì)加一行空行,同時(shí)還搭配了美觀的配色。這一方案可以輕易地將多次的輸入輸出分開,不會(huì)讓用戶產(chǎn)生混淆,使用這一方案,在翻閱歷史輸入輸出時(shí)會(huì)特別高效,當(dāng)然,上述的Powerline方案也可以實(shí)現(xiàn)這一目標(biāo),只是其配置相對(duì)于這一方案復(fù)雜了許多。
# dain @ localhost in ~ [14:30:17] C:130
$ echo "Hello World"
Hello World
# dain @ localhost in ~ [14:30:22]
$
當(dāng)然,主題這種東西也不光是看是否高效,還得考慮個(gè)人習(xí)慣以及個(gè)人審美風(fēng)格,因此大家完全可以考慮不同的主題和配置方案,網(wǎng)上有豐富的教程指導(dǎo),這一過程不會(huì)太過不愉快。
好了,到此為止,我們的終端就配置好了,快去享用它吧!