Linux上超酷的命令行擴展工具Oh My Zsh

Oh My Zsh 是一款社區驅動的命令行工具,正如它的主頁上說的,Oh My Zsh 是一種生活方式。它基於 zsh 命令行,提供了主題配置,插件機制,已經內置的便捷操做。給咱們一種全新的方式使用命令行。

2015118111953669.jpg (952×461)

什麼是 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 是這個?
2015118112043550.png (682×378)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 就安裝成功了。如今能夠看到,咱們的命令行提示符變成了這樣:

2015118112117432.png (109×19)設置主題
安裝完畢後,咱們就可使用了,我們先來簡單配置一下。

Oh My Zsh 提供了不少主題風格,咱們能夠根據本身的喜愛,設置主題風格,主題的配置在 ~/.zshrc 文件中能夠看到,用一個本身熟悉的編輯器打開這個文件,能夠找到這一項:

ZSH_THEME="robbyrussel"

能夠看到,咱們默認使用的主題叫作 robbyrussel。 它的顯示效果嘛,大概是這樣:
2015118112214997.png (500×272)

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 就能夠體現出來~
2015118112232952.png (337×208)

這麼多的主題能夠知足你的各類偏好了,咱們只需在 ./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 鍵。

你就會發現,咱們能夠在這個目錄和文件列表中,經過光標移動並選擇了:
2015118112251601.png (610×85)

Oh My Zsh 的這個特性仍是很方便的。

結語Oh My Zsh 最好的地方就是它的社區驅動力,咱們前面介紹的各類主題以及便捷的目錄操做,只是它很小的一部分。還有它的插件機制也是它很是強大的地方,能將命令行演化出各類知足咱們需求的形態。

相關文章
相關標籤/搜索