Shell的唯一選擇--zsh
有些同學可能對Shell不太熟悉。借用池建強的一個解釋:簡單的說,Shell是Linux/Unix的一個外殼。它負責外界與Linux內核的交互,接收用戶或其他應用程序的命令,然後把這些命令轉化成內核能理解的語言,傳給內核,內核是真正幹活的,幹完之後再把結果返回用戶或應用程序。
Linux/Unix提供了很多種Shell,輸入以下的命令查看有哪些Shell:cat /etc/shells
Linux的默認 Shell 都是 bash,既然如此,那我今天為什麼要說zsh呢?因為zsh搭配上"oh my zsh"真的好用到爆啊!"oh my zsh"的Github網址點我點我!。
那麼如何安裝、配置和使用 zsh(我用的是Ubuntu)1. 安裝zsh
sudo apt-get install zsh
2. 安裝oh my zsh
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
3. 配置zsh
zsh的配置在當前用戶目錄的.zshrc里。oh my zsh 在安裝時已經自動讀取當前的環境變數並進行了設置,你可以繼續追加其他環境變數。
- 換主題
打開~/.zshrc。oh my zsh提供了數十種主題,相關文件在~/.oh-my-zsh/themes下,你可以隨意選擇,我採用的是ys主題。
在~/.zshrc文件中找到ZSH_THEME="ys"
更改成你想要的主題就好了。
- 插件oh my zsh里提供了非常多的插件,相關文件在~/.oh-my-zsh/plugins文件夾下,默認有100多種,我們可以根據自己的實際需要載入特定的插件。插件也是在~/.zshrc里配置,找到plugins關鍵字,你就可以載入自己的插件了,系統默認載入 git ,你可以在後面追加內容。
plugins=(git autojump mvn last-working-dir)
下面簡單介紹一下我用的這幾個插件:
- git:當你處於git的目錄下時,Shell 會明確顯示 git和 branch,如圖所示,另外對 git 很多命令進行了簡化,例如 gco=』git checkout』、gd=』git diff』、gst=』git status』、g=』git』等等,熟練使用可以大大減少 git 的命令長度,命令內容可以參考~/.oh-my-zsh/plugins/git/git.plugin.zsh
- autojump
autojump可以說是zsh必備插件,有點雙劍合璧的意思。安裝了autojump之後,zsh會自動記錄你訪問過的目錄,通過j+目錄就可以直接進行目錄跳轉,而且目錄名支持模糊匹配和自動補全,例如你訪問過~/workspace目錄,輸入j wor即可正確跳轉,如圖。j –stat 可以看你的歷史路徑庫。
- last-working-dirlast-working-dir 插件,可以記錄上一次退出Shell時的所在路徑,並且在下一次啟動Shell時自動恢復到退出時所在的路徑。這一切不需要進行任何操作,全部都是自動完成的。
- 命令糾錯如圖,輸入
sudp apt-get install
nyae會提示zsh: correct sudp to sudo [nyae]?接下來直接按y/n就行了。真是太貼心了有木有
# Uncomment the following line to enable command auto-correction.ENABLE_CORRECTION="true"
4. 指定zsh為默認Shell
輸入命令
chsh -s /bin/zsh
5. zsh操作
- 輸入 grep 然後用上下箭頭可以翻閱你執行過的所有 grep 命令
- tab補全:路徑補全、命令補全,命令參數補全,插件內容補全等等。觸發補全只需要按一下或兩下 tab 鍵,補全項可以使用 ctrl+n/p/f/b上下左右切換。
- 目錄瀏覽和跳轉:輸入 d,即可列出你在這個會話里訪問的目錄列表,輸入列表前的序號,即可直接跳轉
- 在當前目錄下輸入 .. 或 … ,或直接輸入當前目錄名都可以跳轉,不再需要輸入 cd 命令了。
推薦閱讀:
※tmux設置zsh的問題?
※一些 alias
※Zsh 開發指南(第十三篇 管道和重定向)
※Zsh 開發指南(第十九篇 腳本實例講解)
※Zsh 開發指南(第九篇 函數和腳本)