Oh My Zsh 是一款社區驅動的命令行工具,正如它的主頁上說的,Oh My Zsh 是一種生活方式。它基於 zsh 命令行,提供了主題配置,插件機制,已經內置的便捷操作。給我們一種全新的方式使用命令行。
什麼是 Oh My Zsh
Oh My Zsh 這個名字聽起來就很有意思~, 它是基於 zsh 命令行的一個擴展工具集,提供了豐富的擴展功能。 Oh My Zsh 的主頁上,對它的定義有了明確的解釋:http://ohmyz.sh
關於 zsh,它是一種命令行程序。我們 MAC 系統上默認使用的 bash 命令行,而 zsh 是另外一種命令行環境,關於 zsh 大家可以到它的官網了解:http://www.zsh.org/
我們可以在命令行中輸入這個命令來查看我們的電腦上是否安裝了 zsh 命令行:
復制代碼代碼如下:
zsh --version
如果安裝了,這個命令就會輸出 zsh 當前的版本號。確定 zsh 已經安裝後,我們就可以繼續安裝 Oh My Zsh 了。
Oh My Zsh 不是什麼
說到命令行工具,我們的第一感受呢,Oh My Zsh 是這個?
嗯。。 這個只說對了一半,Oh My Zsh 只是一個對 zsh 命令行環境的配置包裝框架,但它不提供命令行窗口,更不是一個獨立的 APP。
上圖中的命令行界面,可以是 Mac 系統自帶的 Terminal 程序,也可以是某個第三方的命令行程序,比如 iTerm。
總之,Oh My Zsh 並不是某個命令行工具的替代品,而是和它們互為補充。可以將 Oh My Zsh 與 iTerm 一起使用,這樣你就可以得到 Oh My Zsh 命令行環境的便捷特性,同時也能用到 iTerm 提供的命令行 GUI 工具的操作支持。
就像 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 最好的地方就是它的社區驅動力,我們前面介紹的各種主題以及便捷的目錄操作,只是它很小的一部分。還有它的插件機制也是它非常強大的地方,能將命令行演化出各種滿足我們需求的形態。