Shell是在程序員與服務器間建立一個橋梁,它對外提供一系列命令,讓我們得以控制服務器。常用的Bash就是Shell的一種,也是Linux下默認Shell程序。這里介紹一種更強大的、更人性化的Shell——oh-my-zsh。
Zsh是什么
Zsh屬於Shell中的一種,但比Bash好用,而且完全兼容Bash,擁有及其豐富的插件、強大的自動補全能力、以及自定義功能,可以大大提供我們使用Linux的效率.
安裝oh-my-zsh
Zsh雖然好用,但直接用起來比較麻煩,但是已經有大神配置好的框架:oh-my-zsh,專門為Zsh打造的。
sudo apt install git sudo apt install zsh wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh chsh -s /usr/bin/zsh
換回去
先查看有哪些shell
cat /etc/shells
例如,換回Bash
chsh -s /bin/bash
主題
oh-my-zsh自帶100多個主題,主題的配置文件在 ~/.zshrc文件中,找到這一行:
ZSH_THEME="robbyrussell"
你可以將值改成任意主題,oh-my-zsh的主題可以在這里找到。保存好文件后,執行 source ~/.zshrc 使配置生效。如果你將值設為空,表示不使用任何主題;你也可以設置為"random",你每次打開都會隨機選擇一個主題。
推薦主題: agnoster
由於這個主題使用了一些特殊字符,需要安裝字體:
sudo apt-get install fonts-powerline
命令補全
雖然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默認已經把很多命令組合並取了別名。
在目錄中穿越
我們通常會遇到這種情況:先進入一個很深的目錄,又要換到另一個目錄。通常我們會使用 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分支。

參考鏈接:https://zhuanlan.zhihu.com/p/63585679
