ubuntu配置zsh和Oh My Zsh

工作了一段時間,有了些許積蓄,忍痛買了Macbook Pro,真香…Mac上理所當然的配置了zs,平時工作是在Ubuntu環境下,折騰了一番,終於也在Ubuntu的終端下配置了zsh,再次真像,大大提高工作效率。

1 安裝zsh

1.1 安裝zsh

對於一般的Ubuntu系統,配置好正確的源之後,就能直接鍵入以下命令安裝:

sudo apt-get install zsh

1.2 配置zsh

zsh的配置是一門大學問,這裏不贅述,直接給出一個配置文件,大家可以下載後放入zsh配置文檔直接使用。(我的一個法國朋友手配的,相當順手)

把.zshrc拷貝到相應用戶的home目錄即可
(也可以把你的bash的配置文件(/.bash_prorile或者/.profile等)給拷貝到zsh的配置文件~/.zshrc裏,因爲zsh兼容bash)

1.3 取代bash,設爲默認shell

sudo usermod -s /bin/zsh username
或者

chsh -s /bin/zsh
chsh -s `which zsh`

如果要切換回去bash:
chsh -s /bin/bash

當然你實在不願意把zsh當成默認的shell, 而又想使用它, 那麼你可以每次進入是都使用zsh進入, 而輸入exit退出

2 安裝oh-my-zsh

2.1

直接用zsh會很蛋疼,因爲zsh功能很強大但是太複雜,所以需要oh-my-zsh來將它簡單化

直接用git從github上面下載包

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
1
備份已有的zshrc, 替換zshrc

cp ~/.zshrc ~/.zshrc.orig
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

直接使用腳本安裝

cd oh-my-zsh/tools
./install.sh

你可以直接直接使用如下命令安裝

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 -)"

其本質就是下載並執行了github上的install.sh腳本, 該腳本位於oh-my-zsh/tools/install.sh

2.2 配置主題

備份已有的zshrc, 替換zshrc

cp ~/.zshrc ~/.zshrc.orig
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

oh-my-zsh集成了大量的主題, 位於oh-my-zsh/theme

配置主題, 可以通過修改~/.zshrc中的環境變量ZSH_THEME來完成

ZSH_THEME="agnoster" # (this is one of the fancy ones)

如果你覺得主題太多你可以選擇使用隨機模式, 來由系統隨機選擇

ZSH_THEME="random" # (...please let it be pie... please be some pie..)

推薦主題: agnoster

由於這個主題使用了一些特殊字符,需要安裝字體:

sudo apt-get install fonts-powerline

2.3 配置插件

修改~/.zshrc中plugins

plugins=(git bundler osx rake ruby)

詳細的插件信息, 可以參見zsh插件Plugins介紹

更新oh-my-zsh

默認情況下, 您將被提示檢查每幾周的升級. 如果你想我ZSH自動升級本身沒有提示你, 修改`~/.zshrc

disable_update_prompt = true

禁用自動升級, 修改~/.zshrc

disable_auto_update = true

當然你也可以選擇手動更新

如果你想在任何時間點升級(也許有人剛剛發佈了一個新的插件,你不想等待一個星期?)你只需要運行:

upgrade_oh_my_zsh

卸載oh-my-zsh

如果你想卸載oh-my-zsh, 只需要執行uninstall_oh_my_zsh zsh, 從命令行運行. 這將刪除本身和恢復你以前的bash或者zsh配置.

uninstall_oh_my_zsh zsh

參考鏈接:https://blog.csdn.net/gatieme/article/details/52741221

3 其他特性

3.1命令補全

雖然Bash可以使用tab自動補全命令,但oh-my-zsh的補全功能更強。比如你想進入Nginx所在目錄 /usr/local/nginx,輸入 cd/u/l/n 按下tab系統就能自動將其補全爲 cd /usr/local/nginx;比如,輸入 git,按下tab,就給你返回關於git的命令;再比如,你要進入一個名字很長的文件夾,你只要輸入前幾個字符,再按tab就能補全。

你也可以使用 alias 命令查看,會發現oh-my-zsh默認已經把很多命令組合並取了別名。

3.2 在目錄中穿越

我們通常會遇到這種情況:先進入一個很深的目錄,又要換到另一個目錄。通常我們會使用 cd - 回到最近的一次目錄,或者使用 history 查看之前所有的目錄。但是oh-my-zsh提供了更強大的 d 命令。

d 命令會列出最近進入的目錄歷史,並且會給這些目錄加上序號,只要輸入對應目錄的序號,就能進入該目錄。

使用前面提到的 alias 命令可以查看其它一些目錄跳轉的快捷方式:

 rogn@ubuntu  ~  alias
-='cd -'
...=../..
....=../../..
.....=../../../..
......=../../../../..

Git友好

使用Git做版本控制時,經常需要對倉庫的代碼進行 status、add、commit等操作,以及審視Git倉庫的提交狀態,oh-my-zsh對Git有很友好的支持。

如下圖,我們 cd 到一個目錄,發現命令行前多了一對括號,括號中的 master 表示當前目錄是一個Git倉庫,且在master分支下。如果當前分支有文件改動,master後面會增加一個*號,表示工作區有文件改動但沒有執行 add。執行 git add後,*變成了 +,表示添加到了站暫存區。再執行git commit,master後面的符號消失,工作區又幹淨了。切換分支,括號裏變成了dev,表示當前已經是dev分支。

image

安裝自動提示插件

下載插件
git clone git://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
配置插件, 可以通過修改~/.zshrc中的plugins來完成
plugins=(
git
zsh-autosuggestions
)
由於自動提示的亮度太低,不容易看到,所以我們需要修改下自動提示的亮度
vim ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
將這裏調整爲10
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=‘fg=10’
修改之後需要重新加載一下
source ~/.zshrc
效果:

自動提示插件效果

高亮插件

下載插件
git clone git://github.com/zsh-users/zsh-syntax-highlighting ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting
配置方式同上,高亮插件一般設置爲最後一個加載的插件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章