1. 前言
對于管理人員和開發(fā)人員來說光涂,一個(gè)好的終端可以給你帶來效率飛速的提升庞萍。
你還在用這樣的 bash 嗎?
或著用這樣的 終端忘闻?
是時(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 的緣故。我們來看一下各終端的使用占比
數(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
官網(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痴施,它的初始效果是這樣的擎厢。
這個(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 字體吧。
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í)際效果
.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'