用「zsh」「oh my zsh」「powerlevel10k」,打造屬于你的終端環(huán)境

1. 前言

對于管理人員和開發(fā)人員來說光涂,一個(gè)好的終端可以給你帶來效率飛速的提升庞萍。

你還在用這樣的 bash 嗎?


image-20190510144143335.png

或著用這樣的 終端忘闻?


image-20190510144943033.png

是時(shí)候打造一款屬于你自己的終端配置啦挂绰!讓它兼具美觀好看和高效。

今天要介紹的終端美化方案是「zsh」+「oh my zsh」+「powerlevel10k」服赎。你或許在百度上看到過 zsh+oh-my-zsh+powerlevel9k 的終端環(huán)境美化方案,它和我的美化方案沒什么大不同交播,只不過將 powerlevel9k 換成了powerlevel10k, 它是 9k 版本的強(qiáng)化版本重虑,更快,性能更好秦士。

接下去將一步步介紹安裝部署步驟缺厉。

2. 安裝 zsh

Linux 環(huán)境下的 shell 終端并不知有 bash,常見的還有 ksh隧土,tcsh提针,zsh,fish等曹傀。其中大部分人用的是 bash辐脖,估計(jì)是因?yàn)榇蟛糠值?Linux 發(fā)行版默認(rèn)的就是 bash 的緣故。我們來看一下各終端的使用占比


image-20190510150748950.png

數(shù)據(jù)來源于:https://opensource.com/business/16/3/top-linux-shells

有些平臺默認(rèn)就有 zsh 終端皆愉,只是默認(rèn)不啟用嗜价,下面簡單介紹各環(huán)境下把 zsh 切換成默認(rèn)的 shell 環(huán)境。

  • macos

    macos下默認(rèn)已經(jīng)安裝了zsh幕庐,可以直接使用

    # 終端輸入命令久锥,然后輸入密碼即可將zsh切換成默認(rèn)shell
    $ chsh -s /bin/zsh
    
  • redhat/centos

    redhat家族默認(rèn)好像都沒有安裝zsh,需要安裝

    # 查看已有的shell終端
    $ cat /etc/shells
    /bin/sh
    /bin/bash
    /sbin/nologin
    /usr/bin/sh
    /usr/bin/bash
    /usr/sbin/nologin
    /bin/tcsh
    /bin/csh
    /bin/ksh
    /bin/rksh
    # 安裝zsh
    $ yum install zsh
    # 終端輸入命令异剥,然后輸入密碼即可將zsh切換成默認(rèn)shell
    $ chsh -s /bin/zsh
    
  • ubuntu

    # 安裝zsh
    $ sudo apt-get install zsh
    # 終端輸入命令瑟由,然后輸入密碼即可將zsh切換成默認(rèn)shell
    $ chsh -s /bin/zsh
    

3. 安裝 oh my zsh

68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6f686d797a73682f6f682d6d792d7a73682d6c6f676f2e706e67.png

官網(wǎng)是這樣介紹 oh my zsh 的,然后詳細(xì)的文檔可以去 github 網(wǎng)址:https://github.com/robbyrussell/oh-my-zsh

Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout...

Oh My Zsh可以做非常多的定制化功能冤寿,比如主題歹苦,字體青伤,插件等。

簡單介紹如何安裝 oh my zsh

  • 使用 curl

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    
  • 使用 wget

    sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
    

4. 安裝 powerlevel10k

4.1 為什么選擇powerlevel10k暂氯?

Oh My Zsh有上百個(gè)自帶主題潮模,以及許許多多的外部主題。目前來看使用量教多的是 powerlevel9k痴施,它的初始效果是這樣的擎厢。

687474703a2f2f692e696d6775722e636f6d2f777942565a51792e676966.gif

這個(gè)主題我也用了挺長一段時(shí)間,用上它的感覺就是「媽的辣吃,雖然好用动遭,但是響應(yīng)速度讓我很不爽,明明沒有加載很多插件還是慢」神得。這個(gè)感覺直到我逛主題市場發(fā)現(xiàn) powerlevel10k 后就再也不復(fù)存在了厘惦。

它的介紹是這樣的,注意關(guān)鍵字:兼容 Powerlevel9k哩簿,10-100倍的性能提升宵蕉!

Powerlevel10k is a backward-compatible reimplementation of the popular Powerlevel9k theme (see above) with 10-100 times better performance. If you like the looks of Powerlevel9k but feeling frustrated by its slow prompt, simply replace your powerlevel9k theme with powerlevel10k and enjoy responsive shell like it's 80's again! Powerlevel10k uses the same configuration options as Powerlevel9k and produces the same results. It's simply faster.

簡單介紹如何安裝 powerlevel10k,詳細(xì)的教程自己去看:https://github.com/romkatv/powerlevel10k节榜。

  • Oh My Zsh

    由于我們使用的是Oh My Zsh羡玛,所以只需要將 github 上的 repo 下載到 Oh My Zsh 的目錄下然后配置即可。

    git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
    
    # 然后設(shè)置 .zshrc 中的變量 ZSH_THEME
    Set ZSH_THEME=powerlevel10k/powerlevel10k in your ~/.zshrc.
    

5. 安裝字體

安裝完 powerlevel10k 后你可能會(huì)發(fā)現(xiàn)有亂碼宗苍,這是因?yàn)槟憬K端字體不支持那么多的字符稼稿,這就需要使用擴(kuò)展字體了。

字體的安裝讳窟,我們可以參考 powerlevel9k 的官方介紹:https://github.com/bhilburn/powerlevel9k/wiki/Install-Instructions#step-2-install-a-powerline-font

安裝 powerline 字體有四種方式:

Option 1: Install Powerline Fonts

不介紹让歼,請看官方文檔

Option 2: Use a Programmer Font

不介紹,請看官方文檔

Option 3: Install Awesome-Powerline Fonts

不介紹丽啡,請看官方文檔

Option 4: Install Nerd-Fonts

Nerd 字體應(yīng)該是支持字形最多的谋右,所以不用多想,安裝它就好了碌上!

github 上也有詳細(xì)的安裝介紹文檔:https://github.com/ryanoasis/nerd-fonts#font-installation

其中最簡單的應(yīng)該是用 Homebrew倚评,但是Homebrew在國內(nèi)的訪問速度實(shí)在惡心,所以還是選擇手工安裝吧

直接上 nerdfonts 官網(wǎng)馏予,找到Downloads天梧,直接下載 Hack 字體,別問我為什么霞丧,如果是mac呢岗,直接雙擊安裝下載的字體即可,然后修改 oh my zsh 的變量文件 ~/.zshrc,修改變量 POWERLEVEL9K_MODE='nerdfont-complete'后豫, 如果不是MacOS悉尾,先自行查找如何配置 powerline 字體吧。

image-20190510160619735.png

6. 常用插件

環(huán)境配置好了挫酿,我們還需要加上一些插件讓終端更好用构眯,介紹我用的幾個(gè)插件,效率杠杠的

  • autojump

    Github地址:https://github.com/wting/autojump

    只要你在終端上使用 cd 訪問過的目錄早龟,它都會(huì)記錄下來惫霸,然后下次可以在任何工作目錄下使用只需要用 j + 目錄名 就可以直接進(jìn)入,比如


    image-20190510162802485.png
  • Zsh-autosuggestions

    有了它葱弟,執(zhí)行過的命令壹店,就不需要重復(fù)的輸入啦,比如我輸入 source en芝加,它自動(dòng)會(huì)提示曾今執(zhí)行過的命令是 source env/bin/activate 硅卢,這時(shí)候只需要點(diǎn)擊方向鍵的右健就可以直接填充命令,爽到爆有沒有藏杖。

    May-10-2019 16-40-25.gif

7. 完整zshrc配置

實(shí)際效果


image-20190510164844255.png

.zshrc文件配置

# Prompts
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0C0'
#POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0C0'
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0C2'
#POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0C2'
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir dir_writable vcs virtualenv)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs command_execution_time ip)
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
POWERLEVEL9K_SHORTEN_DELIMITER=..
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=$'\n'
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="\uF460%F{073}\uF460%F{109}\uF460%f "
export ZSH="/Users/john/.oh-my-zsh"
POWERLEVEL9K_MODE='nerdfont-complete'
ZSH_THEME="powerlevel10k/powerlevel10k"
export UPDATE_ZSH_DAYS=13
HIST_STAMPS="yyyy/mm/dd"
plugins=(
    git
    colored-man-pages
    colorize
    github
    brew
    osx
    docker
    docker-compose
    autojump
    zsh-autosuggestions
    zsh-syntax-highlighting
    autopep8
    python
)
source $ZSH/oh-my-zsh.sh
alias zshconfig="vim ~/.zshrc"
alias vimconfig="vim ~/.vimrc"
alias ansibleconfig="vim ~/.ansible/ansible.cfg"
alias grep='grep --color=auto'
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末将塑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蝌麸,更是在濱河造成了極大的恐慌抬旺,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祥楣,死亡現(xiàn)場離奇詭異,居然都是意外死亡汉柒,警方通過查閱死者的電腦和手機(jī)误褪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碾褂,“玉大人兽间,你說我怎么就攤上這事≌” “怎么了嘀略?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乓诽。 經(jīng)常有香客問我帜羊,道長,這世上最難降的妖魔是什么鸠天? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任讼育,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奶段。我一直安慰自己饥瓷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布痹籍。 她就那樣靜靜地躺著呢铆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹲缠。 梳的紋絲不亂的頭發(fā)上棺克,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音吼砂,去河邊找鬼逆航。 笑死,一個(gè)胖子當(dāng)著我的面吹牛渔肩,可吹牛的內(nèi)容都是我干的因俐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼周偎,長吁一口氣:“原來是場噩夢啊……” “哼抹剩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蓉坎,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤澳眷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蛉艾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钳踊,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年勿侯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拓瞪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡助琐,死狀恐怖祭埂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兵钮,我是刑警寧澤蛆橡,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站掘譬,受9級特大地震影響泰演,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜葱轩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一粥血、第九天 我趴在偏房一處隱蔽的房頂上張望柏锄。 院中可真熱鬧,春花似錦复亏、人聲如沸趾娃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抬闷。三九已至,卻和暖如春耕突,著一層夾襖步出監(jiān)牢的瞬間笤成,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工眷茁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炕泳,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓上祈,卻偏偏與公主長得像培遵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子登刺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容