程序員內功系列-iTerm與Zsh篇
俗話說「工欲善其事,必先利其器」,作為一個長期在命令行下面工作的人,Mac那個自帶的Terminal功能太弱了一些,長此用下去,必定是不能忍的。於是,終於輪到此篇的主角上場了:iTerm2 和 Zsh, 這次,我們來一場iTerm2和Zsh的體驗之旅……
關於iTerm2
iTerm2是一款完全免費的,專為 Mac OS 用戶打造的命令行應用,當然,也是程序員們的最愛。iTerm2本身支持很多自定義化的設置,比如自定義配色,自定義快捷鍵,方便的水平和垂直分屏功能,等等…… 毫不避諱的講,說它是如今Mac下最好的終端工具也不為過。當然,日常工作與開發中,用它替代Mac自帶的Terminal也是不二的選擇。
關於 Zsh 與 Oh My Zsh
有了終端利器iTerm2,當然還得配上一款順手的shell。眾所周知,如今用得最廣泛的默認shell,就是bash了,因為它也是很多Linux發行版默認帶的shell。作為默認自帶的shell,其特點,也就是:特點不是很明顯 -_-# 不太方便的地方是:可定製性和可擴展性有限,自動補全功能不夠強大…… 所以,既然用上了iTerm2,需要一款更為強大的shell來配合。
關於shell,首當推薦的就是Zsh了。之所以叫Zsh,其含義是:
The last shell you』ll ever need!
可以理解為,一旦用上它,就別無所求了。跟Bash相比,Zsh的補全功能強大了許多,可以自動補全命令、參數、文件名、進程、用戶名、變數、許可權符,等等…… 另外,還支持插件,通過插件又可以擴展出許多功能來。
既然有了Zsh,那Oh My Zsh又是啥呢?因為 zsh 的默認配置極其複雜繁瑣,讓人望而卻步,直到有了Oh My Zsh這個開源項目,讓zsh配置降到0門檻。而且它完全兼容 bash 。所以,我們可以理解為Oh My Zsh是一個方便你配置和使用Zsh的一個開源工具。
掌握了這些姿勢,隨後我們可以開始動手配置我們逼格滿滿的終端環境了……
iTerm2 安裝與配置
安裝iTerm2比較簡單,直接從官網下載安裝即可。安裝好之後,我們還需要進行一系列的設置才行。
主題配置
iTerm2支持許多的主題配色,可以自己定義,也可以參考網上現成的主題配色。我個人比較喜歡Solarized配色,因為可以配合Vim裡面的Solarized主題。
下面是一些常用的主題配色的預設置文件:
iTerm2 Solarized 配色:https://github.com/altercation/solarized
iTerm2 配色合集網站://iterm2colorschemes.com/
iTerm2 配色合集GitHub地址:https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/schemes
這些配色預設置文件,可以直接導入到iTerm2中,然後可以直接在設置中選擇:
安裝Powerline字體
為了終端下能正確的顯示fancy字元,需要安裝powerline字體,這樣,這些fancy字元不至於顯示為亂碼。 GitHub上已經有製作好的Powerline字體,可以下載了直接安裝到系統:
Powerline字體下載:https://github.com/powerline/fonts
安裝好之後,就可以選擇一款你喜歡的Powerline字體了:Preferences -> Profiles -> Text -> Font -> Change Font
iTerm2其他設置
一切配置妥當,不過好像還差點什麼,好像目錄名字的顯示不夠顯眼。
可以試試 Preferences -> Profiles -> Text -> Text Rendering 把Draw bold text in bright colors前面的勾去掉:
嗯,這下文件和目錄可以很容易區分了……
Zsh 與 OhMyZsh 安裝與配置
如果你是用的Mac OS,默認應該自帶了zsh了,安裝之前可以確認一下:
有/bin/zsh表明已經預裝zsh了,沒有的話,可以通過命令brew install zsh來安裝。接下來,我們需要安裝的是OhMyZsh,OhMyZsh的安裝也比較簡單,官網有一鍵安裝腳本。默認安裝過後,使用的是robbyrussell主題,你可以在這裡找到各種主題。我現在使用的主題是一款修改過的定製主題,叫做:lambda-mod 放在我的GitHub項目mydotfiles上。
找到一款你喜歡的主題,把主題文件下載到 ~/.oh-my-zsh/themes 裡面,然後修改 ~/.zshrc 文件,配置好主題名字即可:
待配置妥當,看起來應該是這樣的:
Zsh常用設置
跟Bash一樣,Bash的配置文件叫做.bashrc,Zsh的配置文件,也放在用戶當前目錄,叫做.zshrc。我把我自定義的.zshrc放到了GitHub上,權當拋磚引玉,供大家參考。
接下來我們可以體驗一下zsh的各種黑科技了……
來自Zsh的黑科技
路徑別名
需要在配置文件(通常是 .zshrc)中先定義好規則,形如:
hash -d sortcut_name=path配置應用後,直接使用 ~ sortcut_name (甚至直接輸 sortcut_name 回車就行了)就可以跳轉到相應目錄
命令別名
通過在.zshrc中配置alias,可以方便的為其他的命令設置別名,這是個很不錯的功能。因為我懶,平時甚至連敲命令也想偷懶,於是,我設置了很多alias。(參考我的.zshrc配置文件)
比如跟git相關的:
比如,要push提交到遠程git倉庫的時候,就不必老老實實的輸入git push origin master了,只需要輸入gps origin master即可。於是git pull也簡化成了gpl,git commit -m也簡化成了gc。
嗯,只要你夠懶,相信你一定還能發明出許許多多的alias來…… -_-#
切換目錄
在Zsh中,可以通過輸入.號來跳轉,比如:
直接輸入.. 和 … 可以快速切換到上層和上上層目錄
直接輸入n+1個點,可以往上層跳轉 n 層
進程id補全
Zsh的補全功能非常不錯,除了一般的目錄和文件名補全,還可以自動補全進程ID。比如,我們通常要kill掉一個進程,得先用ps -aux|grep process_name先拿到進程id,然後再kill pid來終止掉一個進程。在Zsh中可以直接這樣:
快速跳轉
Zsh支持目錄的快速跳轉,我們可以使用d這個命令,列出最近訪問過的各個目錄,然後選擇目錄前面的數字進行快速跳轉:
GIF
是不是很方便呢?
目錄名簡寫與補全
如果確切的知道我們要進入某一層目錄,但是目錄名比較長,沒關係,Zsh幫你搞定!比如我們要進入到 ~/workspace/src/dict,我們只需要輸入每個目錄的首字母就行,然後再TAB鍵補全,Zsh會幫你搞定剩下的:
常用命令參數補全
Zsh在行的,不光是目錄名的補全,嗯,常用的命令參數,它也能給你提供參考:
GIF
重複上一條命令
輸入r,可以很便捷的重複執行上一條命令。
Zsh 常用插件推薦
Zsh支持插件,通過插件擴展可以實現許多方便的功能。這裡介紹一下我常用的幾個Zsh插件(參考我的.zshrc配置文件)
autojump
autojump也是一個目錄直接快速跳轉的效率工具,它會自動記錄之前訪問過的目錄,並計算權重。用法也很簡單j directory_name即可。比如我要訪問 ~/workspace/src ,只需要輸入j src就行了……
sublime
可以方便的在Zsh終端中調用Sublime Text打開文件,比如輸入st README.md就可以調用機器上安裝的Sublime Text打開當前目錄的README.md文件進行編輯操作。
web-search
一個方便的終端搜索工具,支持大多常用的搜索引擎,比如:
輸入baidu hhkb pro2直接在瀏覽器打開百度搜索關鍵字」hhkb pro2」
輸入google minila air直接在瀏覽器打開Google搜索關鍵字」minila air」
通過查看這個插件的代碼,可以看到支持的搜索引擎,包括baidu, google, bing, yahoo 等等…… 當然,還有廣大程序化最愛的GitHub哦!
zsh-autosuggestions
命令自動提示插件,這個是個很有意思也很高效的插件。能記錄平時你輸入過的命令,下次再輸入的時候,它會提前提示你,方便懶人。如果是你需要的命令,直接Ctrl+F搞定,來直接看看效果吧:
需要安裝兩個插件:
zsh-syntax-highlighting
zsh-autosuggestions
配置參考這裡
extract
一個功能強大的解壓插件,所有類型的文件解壓通過一個命令x全搞定,再也不需要去記tar後面到底是哪幾個參數了。
最後,再加點特技
Zsh啟動特技
可以通過一些配置,讓Zsh在啟動的時候輸出啟動畫面,比如這個是不是很面熟呢?
咦?彷彿在哪裡見過,但是就是想不起來了……
配置參考這裡
iTerm背景特技
iTerm還支持顯示背景圖,這樣我們還可以把單調的終端界面配置得更加酷炫,比如可以這樣:
還可以這樣:
配置方法:Preferences -> Profiles -> Window -> Background Image 選擇一個你喜歡的背景,然後通過Blending調整圖片背景的透明度。
完結
iTerm和Zsh的配置就暫且介紹到這裡吧,其實介紹到的也只是它們功能中我比較常用的,還有更多的功能等著你去發現。有了這些稱手的工具和配置,我們就可以更加高效的去完成日常的編碼和運維工作了。當然,此篇文章也不會就此為止,平常使用的過程中如果有新的心得和體會,我會持續更新……
本文作者:Timothy
本文標題:程序員內功系列--iTerm與Zsh篇
本文鏈接:https://xiaozhou.net/learn-the-command-line-iterm-and-zsh-2017-06-23.html
發布時間:2017年6月23日 - 13時06分
版權聲明:本文由 Timothy 原創,採用保留署名-非商業性使用-禁止演繹 4.0-國際許可協議
轉載請保留以上聲明信息!
??
TAG:松鼠派 |