什麼是 Oh My Zsh
Oh My Zsh 這個名字聽起來就頗有意思~, 它是基於 zsh 命令行的一個擴展工具集,提供了豐富的擴展功能。 Oh My Zsh 的主頁上,對它的定義有了明確的解釋:http://ohmyz.shlinux
關於 zsh,它是一種命令行程序。咱們 MAC 系統上默認使用的 bash 命令行,而 zsh 是另一種命令行環境,關於 zsh 你們能夠到它的官網瞭解:http://www.zsh.org/git
咱們能夠在命令行中輸入這個命令來查看咱們的電腦上是否安裝了 zsh 命令行:
github
zsh --versionshell
若是安裝了,這個命令就會輸出 zsh 當前的版本號。肯定 zsh 已經安裝後,咱們就能夠繼續安裝 Oh My Zsh 了。bash
Oh My Zsh 不是什麼
說到命令行工具,咱們的第一感覺呢,Oh My Zsh 是這個?
app
嗯。。 這個只說對了一半,Oh My Zsh 只是一個對 zsh 命令行環境的配置包裝框架,但它不提供命令行窗口,更不是一個獨立的 APP。框架
上圖中的命令行界面,能夠是 Mac 系統自帶的 Terminal 程序,也能夠是某個第三方的命令行程序,好比 iTerm。dom
總之,Oh My Zsh 並非某個命令行工具的替代品,而是和它們互爲補充。能夠將 Oh My Zsh 與 iTerm 一塊兒使用,這樣你就能夠獲得 Oh My Zsh 命令行環境的便捷特性,同時也能用到 iTerm 提供的命令行 GUI 工具的操做支持。curl
就像 Oh My Zsh 的主頁上面說的:「當你用了這些很是酷的命令行工具後,人們來到你的電腦前,必定會對你的命令行大加稱讚。迎來一片點贊。」編輯器
安裝 Oh My Zsh
咱們瞭解了 Oh My Zsh 大體的狀況了,那麼我們開始安裝吧~
Oh My Zsh 的安裝方式很是簡單,在它的主頁上有很明確的說明:http://ohmyz.sh
能夠經過 curl 或 wget 的方式,用一條命令便可安裝。
curl 方式:
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
wget 方式:
$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
安裝過程當中輸出以下:
Cloning Oh My Zsh...
Cloning into '/Users/icafe/.oh-my-zsh'...
remote: Counting objects: 712, done.
remote: Compressing objects: 100% (584/584), done.
remote: Total 712 (delta 15), reused 522 (delta 4), pack-reused 0
Receiving objects: 100% (712/712), 443.58 KiB | 27.00 KiB/s, done.
Resolving deltas: 100% (15/15), done.
Checking connectivity... done.
Looking for an existing zsh config...
Using the Oh My Zsh template file and adding it to ~/.zshrc
Copying your current PATH and adding it to the end of ~/.zshrc for you.
Time to change your default shell to zsh!
__ __
____ / /_ ____ ___ __ __ ____ _____/ /_
/ __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \
/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / /
\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/
/____/ ....is now installed!
Please look over the ~/.zshrc file to select plugins, themes, and options.
p.s. Follow us at https://twitter.com/ohmyzsh.
p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.
到這裏,Oh My Zsh 就安裝成功了。如今能夠看到,咱們的命令行提示符變成了這樣:
設置主題
安裝完畢後,咱們就可使用了,我們先來簡單配置一下。
Oh My Zsh 提供了不少主題風格,咱們能夠根據本身的喜愛,設置主題風格,主題的配置在 ~/.zshrc 文件中能夠看到,用一個本身熟悉的編輯器打開這個文件,能夠找到這一項:
ZSH_THEME="robbyrussel"
能夠看到,咱們默認使用的主題叫作 robbyrussel。 它的顯示效果嘛,大概是這樣:
Oh My Zsh 默認自帶了一些默認主題,存放在 ~/.oh-my-zsh/themes 目錄中。咱們能夠查看這些主題:
themes git:(master) ls
3den.zsh-theme essembeh.zsh-theme junkfood.zsh-theme rgm.zsh-theme
Soliah.zsh-theme evan.zsh-theme kafeitu.zsh-theme risto.zsh-theme
adben.zsh-theme example.zsh-theme kardan.zsh-theme rixius.zsh-theme
af-magic.zsh-theme fino-time.zsh-theme kennethreitz.zsh-theme rkj-repos.zsh-theme
afowler.zsh-theme fino.zsh-theme kiwi.zsh-theme rkj.zsh-theme
agnoster.zsh-theme fishy.zsh-theme kolo.zsh-theme robbyrussell.zsh-theme
alanpeabody.zsh-theme flazz.zsh-theme kphoen.zsh-theme sammy.zsh-theme
amuse.zsh-theme fletcherm.zsh-theme lambda.zsh-theme simonoff.zsh-theme
apple.zsh-theme fox.zsh-theme linuxonly.zsh-theme simple.zsh-theme
arrow.zsh-theme frisk.zsh-theme lukerandall.zsh-theme skaro.zsh-theme
....
怎麼樣,默認主題的數量至關多吧,這就是社區驅動的力量,從 Oh My Zsh 的這個 Logo 就能夠體現出來~
這麼多的主題能夠知足你的各類偏好了,咱們只需在 ./zshrc 文件中配置須要的主題便可,好比咱們想用 lambda.zsh-theme 這個主題,咱們只要這樣配置:
ZSH_THEME="lambda"
而後保存這個文件文件,再打開一個新的命令行窗口便可看到效果了。那麼這麼多的主題如何快速找到哪些是咱們喜歡的呢,咱們還能夠這樣設置:
ZSH_THEME="random"
咱們將主題設置爲隨機,這樣在咱們每次打開命令行窗口的時候,都會隨機在默認主題中選擇一個。這樣咱們若是以爲當前的主題比較喜歡,能夠直接使用 echo 命令輸出當前主題的名稱:
echo $ZSH_THEME
而後再將他設置到配置文件中便可。
快捷選擇目錄和文件
主題了解完了,我們在繼續進行。咱們使用另一個命令行環境,顯然不光是爲了能用到更多的主題風格,更重要的是,這個命令行環境能讓咱們使用起來更便捷。那麼,我們繼續看一下 Oh My Zsh 所提供的便捷操做吧。
咱們在使用命令行工具經過相似 cd 命令在目錄和文件中切換的時候,一個痛點就是咱們必須先要查看目錄結構和文件名。好比咱們想用 cd 命令進入一個目錄,那麼咱們必須先知道這個目錄的名字。這對於習慣使用 Finder 這樣的 GUI 工具的朋友就比較不習慣了。在 bash 中,咱們通常都是先使用 ls 命令列出當前目錄列表,而後再使用 cd 命令進入某個目錄:
ls -l
~drwx------ 4 icafe staff 136 Aug 9 12:34 Applications
drwx------+ 40 icafe staff 1360 Oct 31 11:15 Desktop
drwx------+ 13 icafe staff 442 Oct 30 19:49 Documents
drwx------+ 46 icafe staff 1564 Oct 31 08:15
drwx------@ 57 icafe staff 1938 Oct 27 05:45 Library
cd Library/
Mac 上面的 bash 還作了一些優化,咱們能夠在輸入了目錄的一部分前綴後,按 Tab 鍵能夠進行自動補齊,來幫咱們匹配這個前綴開頭的目錄名:
cd Li
按下 Tab 鍵:
cd Library/
則會按照前綴匹配功能爲咱們補齊目錄名。但這個仍是有一些不方便,好比這個自動補齊功能是精確匹配大小寫的,加入咱們輸入 cd lib 而後按 Tab 鍵的話,是不可以匹配到 Library 目錄的,由於他們的大小寫不匹配。
Oh My Zsh 提供了更好的解決方法,咱們在 Oh My Zsh 的命令行中輸入 cd lib 而後按下 Tab 鍵:
cd Library/
成功的匹配到了 Library 目錄。若是咱們在 cd 命令後面加一個空格,而後按下 Tab 鍵:
cd <Tab>
Applications/ System/ bin/ dev/ net/ sbin/ var@
Library/ Users/ cores/ etc@ opt/ tmp@ 用戶信息@
Network/ Volumes/ data/ home/ private/ usr/
直接列出了當前目錄中的全部子目錄和文件,在這個狀態下,若是咱們繼續在按下一個 Tab 鍵。
你就會發現,咱們能夠在這個目錄和文件列表中,經過光標移動並選擇了:
Oh My Zsh 的這個特性仍是很方便的。
結語Oh My Zsh 最好的地方就是它的社區驅動力,咱們前面介紹的各類主題以及便捷的目錄操做,只是它很小的一部分。還有它的插件機制也是它很是強大的地方,能將命令行演化出各類知足咱們需求的形態。