Mac必備軟件漸集之ZSH-終極Shell

寫在碼字之前:“過一個平凡無趣的人生實在太容易了,你可以不讀書,不冒險,不運動,不寫作,不外出,不折騰……但是,人生最后悔的事情就是:我本可以。”——陳素封。很多事情只有真正的去折騰后,才發現她的美麗與魅力。Mac是如此,而這ZSH-Unix傳承下來系統的終極Shell亦是如此。

Mac必備軟件漸集之ZSH-終極Shell

很早就在各種博文中看過ZSH的大名鼎鼎。因Mac下自帶的Bash覺得還行就沒怎么理會。但開始折騰她,源于池建強先生的終極 Shell——ZSH,絕對的一種相見恨晚。喜歡在玩兒命令行且沒有配置ZSH的盆友們,趕緊刷下這篇文章吧。保證物有所值!其好處就不在多加贅述了。

安裝ZSH

目前常用的 Linux 系統和 OS X 系統的默認 Shell 都是 bash,但是真正強大的 Shell 是深藏不露的 zsh, 這貨絕對是馬車中的跑車,跑車中的飛行車,史稱『終極 Shell』,但是由于配置過于復雜,所以初期無人問津,很多人跑過來看看 zsh 的配置指南,什么都不說轉身就走了。直到有一天,國外有個窮極無聊的程序員開發出了一個能夠讓你快速上手的zsh項目,叫做「oh my zsh」,Github 網址是:https://github.com/robbyrussell/oh-my-zsh。這玩意就像「X天叫你學會 C++」系列,可以讓你神功速成,而且是真的。

如果你用 Mac,恭喜你!輸入cat /etc/shells可以看到Mac系統自帶這ZSH。
如果你用 Redhat Linux,執行:sudo yum install zsh
如果你用 Ubuntu Linux,執行:sudo apt-get install zsh
如果你用 Windows……去洗洗睡吧。

安裝完成后設置當前用戶使用 zsh:chsh -s /bin/zsh,根據提示輸入當前用戶的密碼就可以了。

安裝oh my zsh

安裝「oh my zsh」可以自動安裝也可以手動安裝。
自動安裝:

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

手動安裝:

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

都不復雜,安裝完成之后退出當前會話重新打開一個終端窗口,你就可以見到這個彩色的提示了:


ZSH

ZSH 的配置

zsh 的配置主要集中在用戶當前目錄的.zshrc里(在mac的用戶目錄下ls -a命令就可以看到),用 vim 或你喜歡的其他編輯器打開.zshrc,在最下面會發現這么一行字:

# Customize to your needs…

可以在此處定義自己的環境變量和別名,當然,oh my zsh;在安裝時已經自動讀取當前的環境變量并進行了設置,你可以繼續追加其他環境變量。接下來進行別名的設置,請看下池建強先生的部分配置如下:

alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias vi='vim'
alias javac="javac -J-Dfile.encoding=utf8"
alias grep="grep --color=auto"
alias -s html=mate   # 在命令行直接輸入后綴為 html 的文件名,會在 TextMate 中打開
alias -s rb=mate     # 在命令行直接輸入 ruby 文件,會在 TextMate 中打開
alias -s py=vi       # 在命令行直接輸入 python 文件,會用 vim 中打開,以下類似
alias -s js=vi
alias -s c=vi
alias -s java=vi
alias -s txt=vi
alias -s gz='tar -xzvf'
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'

zsh 的霸氣之處在于不僅可以設置通用別名,還能針對文件類型設置對應的打開程序,比如:alias -s html=mate,意思就是你在命令行輸入 hello.html,zsh會為你自動打開 TextMat 并讀取 hello.html; alias -s gz='tar -xzvf',表示自動解壓后綴為 gz 的壓縮包。

總之,只有想不到,木有做不到

折騰ZSH的初衷

開始折騰不僅是因為讀了池建強先生的那篇博文;近來也是折騰Web前段,每次建立個html頁面,因Mac下目測不能直接建立一個文件,只好在Terminal 那里touch一個。可是習慣玩兒Sublime Text的自己,不怎么折騰Vim,那打開該html可酒繁瑣咯。總不能每次都拖進去或者使用open吧。而ZSH就可以利用其強大的配置,能針對文件類型設置對應的打開程序,哇哦,完美有木有?

那配置ZSH時候遇到點問題還是要記錄下的。alias -s html=sublime,很明顯這一句無法得到執行(沒有配置sublime環境變量)。而參考網絡上各種博文比如MAC 設置環境變量path的幾種方法,頗為麻煩且目測并不能很好的工作;幾番搜索,幾番實踐,發現“linux/mac下的自定義命令alias,并保存別名使其永久生效(重啟不會失效)”這個方法不錯,參見Here。利用 alias aCommandAlias='aCommand 一堆參數什么的'比如:

alias gpush='git push origin HEAD:refs/for/master'

這樣在終端中,只需要輸入gpush就ok了。但是只是這樣的話,會在重啟之后失效,解決辦法是編輯~/.bashrc文件(沒有的創建一個就好),每行加入一個alias命令。比如:

alias cdhome='cd ~'
alias cdroot='cd /'
alias gpull='git pull'
alias gci='git commit -a'
alias gpush='git push origin HEAD:refs/for/master'
alias gst='git status'
alias sublime='open -a "Sublime Text"' //加入Sublime Text
alias ip='osascript -e "IPv4 address of (system info)"' 

保存文件后,運行:source ~/.bashrc(不然不生效)就可以了。如果還不行的話,說明沒有~/.bash_profile文件,或者文件中沒有執行.bashrc文件。(.bash_profile文件是用戶登陸終端的時候會自動執行的文件,一般此文件中會調用.bashrc)如果是這樣,需要打開(如果沒有的話先創建)文件:~/.bash_profile在里面加入一行:source ~/.bashrc即可!

昨晚在Mac下測試一番可以。加上ZSH的配置,只要輸入xxx.html,就可以打開該文件,挺爽!

所以說:“過一個平凡無趣的人生實在太容易了,你可以不讀書,不冒險,不運動,不寫作,不外出,不折騰……但是,人生最后悔的事情就是:我本可以。——陳素封”,這一句講的很好。很好美好就需要從折騰開始。因可能有一點繁瑣的折騰,讓更多的事兒變得更加簡潔。

后記:關于更多ZSH信息請參見終極 Shell——ZSH

-2015-07-29于深圳南山-

原文出處: http://www.jeffjade.com
原文鏈接:Mac必備軟件漸集之ZSH-終極Shell

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容