歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux上超酷的命令行擴展工具Oh My Zsh

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

日期:2017/3/1 17:34:50   编辑:Linux技術

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

什麼是 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 是這個?
2015118112043550.png (682×378)

嗯。。 這個只說對了一半,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 就安裝成功了。現在可以看到,我們的命令行提示符變成了這樣:

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 最好的地方就是它的社區驅動力,我們前面介紹的各種主題以及便捷的目錄操作,只是它很小的一部分。還有它的插件機制也是它非常強大的地方,能將命令行演化出各種滿足我們需求的形態。

Copyright © Linux教程網 All Rights Reserved