1.背景
XShell作為一個(gè)強(qiáng)大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平臺(tái)的TELNET 協(xié)議。作為server端開發(fā),幾乎是必備工具了。
很多剛切換到MacOS環(huán)境下的萌新都會(huì)面臨一個(gè)尷尬的問題:XShell并沒有提供MacOS版本,在NetSarang(XShell的爸爸)論壇里群眾們也已經(jīng)向官方吶喊很多年了,卻遲遲不見NetSarang有MacOS版本的消息。這對(duì)于已經(jīng)使用習(xí)慣Xshell的開發(fā)同學(xué)無疑是個(gè)噩夢。
記得我剛切到MacOS環(huán)境的時(shí)候,也是到處查有沒有XShell的替代產(chǎn)品,更多的卻看到的都是類似的回答:
現(xiàn)在看看簡直是覺得這些誤導(dǎo)MacOS萌新回答都應(yīng)該浸豬籠啊,MacOS自帶的Terminal雖然具備ssh的功能,但是也非常不好用,根本滿足不了我們高效工作的日常。
下面開始介紹Mac終端的應(yīng)該有的正確姿勢。
2. iTerm2介紹

iTerm2作為MacOS下Terminal的替代品,支持MacOS v10.10 及以上版本。作為MacOS下最好用的終端應(yīng)用,Iterm2具備以下特性:
- 分屏
Iterm2可以把一個(gè)Tab分成多個(gè)窗口,每個(gè)窗口顯示一個(gè)不同的會(huì)話。可以垂直、水平的創(chuàng)建任意數(shù)量的窗格。

標(biāo)簽變色
Iterm2的標(biāo)簽顏色會(huì)變化,以指示該tab當(dāng)前狀態(tài)。當(dāng)該標(biāo)簽有新輸出的時(shí)候,標(biāo)簽會(huì)變成洋紅色;新的輸出長時(shí)間沒有查看,標(biāo)簽會(huì)變成紅色??稍谠O(shè)置中關(guān)掉該功能。智能選中
在iTerm2中,雙擊選中,三擊選中整行,四擊智能選中(規(guī)則可配置),可以識(shí)別網(wǎng)址,引號(hào)引起的字符串,郵箱地址等。
在iTerm2中,選中即復(fù)制。即任何選中狀態(tài)的字符串都被放到了系統(tǒng)剪切板中。自動(dòng)補(bǔ)齊
iTerm2可以自動(dòng)補(bǔ)齊命令,輸入若干字符,按?+;彈出自動(dòng)補(bǔ)齊窗口,列出曾經(jīng)使用過的命令。

- 歷史記錄
iTerm2也可以查詢歷史記錄,按?+shift+h彈出歷史記錄窗口。

- Tab搜索
按?+option+e全屏展示所有tab,并可以進(jìn)行搜索。

- 高亮當(dāng)前鼠標(biāo)位置
當(dāng)我們一個(gè)標(biāo)簽頁中窗口開的太多的時(shí)候,會(huì)有找不到鼠標(biāo)指針的情況,按?+/可以高亮鼠標(biāo)位置。

還有更多特性請(qǐng)查看iTerm2官網(wǎng)。
3. 打造Mac版“Xshell”
Xshell非常的方便好用的是因?yàn)樗鼙4婺闼械膕sh登錄帳號(hào)信息。MAC下并沒有xshell,有些也提供這樣的功能,但效果都不好。iTerm2是很好的終端,但卻不能很好的支持多profiles,當(dāng)要管理的機(jī)器較多時(shí),就比較麻煩了。好在它有profiles設(shè)置,只是不能保存ssh登錄帳號(hào)及密碼,它還提供了加載profiles時(shí)執(zhí)行外部命令的功能,因此,這里就可以使用sshpass來幫它執(zhí)行。
3.1 安裝sshpass
下載地址:http://sourceforge.net/projects/sshpass/files/
解壓后,進(jìn)入sshpass目錄,執(zhí)行安裝:
$ ./configure
$ make
$ make install
測試安裝
$ sshpass -h
3.2 配置密碼
讓sshpass使用ssh密碼,需要先將密碼保存在一個(gè)文件里,再通過sshpass讀文件來獲取密碼,iTerm2就可以通過這樣的命令來登錄主機(jī),密碼文件很簡單,取一個(gè)好名字,把密碼寫進(jìn)去就可以了,沒有別的任何東西,如,在用戶目錄的sshpass目錄建一個(gè)名為pass的文件,里面寫上主機(jī)密碼:123456,文件地址為:/Users/<用戶名>/sshpass/pwd/<密碼文件>
3.3 配置iTerm2
打開iTerm2 - Preferences - Profiles

添加一個(gè)新的profile,其它沒什么好配置的,主要是在General的command中選擇使用command,命令就是sshpass的執(zhí)行命令,如:
/usr/local/bin/sshpass -f /Users/<用戶名>/sshpass/pwd/pwd1_file ssh -p22 root@192.168.100.1
/usr/local/bin/sshpass是sshpass執(zhí)行文件的路徑,如果按默認(rèn)情況安裝,它肯定會(huì)出現(xiàn)在這個(gè)位置上-f是告訴sshpass加載文件/Users/<用戶名>/sshpass/pwd/pwd1_file就是要加載的文件,即前面建的密碼文件ssh -p22 root@192.168.100.1是說用ssh鏈接,端口22,root帳號(hào)和IP地址
保存后,選擇該profile,就可以實(shí)際ssh登錄。只是如果是本機(jī)第一次登錄,是不會(huì)成功的,因?yàn)閟sh登錄需要你yes確認(rèn),會(huì)寫文件到hosts里,所以第一次會(huì)直接失敗,再來一次或是先在終端里用ssh root@ip來登錄一次,就可以了。
這樣,新建多個(gè)profile,就可以實(shí)現(xiàn)管理登錄了。
在實(shí)際使用過程中,iTerm配合oh-my-zsh能實(shí)現(xiàn)更加炫酷的功能,在后續(xù)博客中繼續(xù)講解oh-my-zsh的配置。
參考資料:
[1] iTerm2 Feature:
http://www.iterm2.com/features.html