1.背景
XShell作為一個強大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 協議。作為server端開發,幾乎是必備工具了。
很多剛切換到MacOS環境下的萌新都會面臨一個尷尬的問題:XShell並沒有提供MacOS版本,在NetSarang(XShell的爸爸)論壇里群眾們也已經向官方吶喊很多年了,卻遲遲不見NetSarang有MacOS版本的消息。這對於已經使用習慣Xshell的開發同學無疑是個噩夢。
記得我剛切到MacOS環境的時候,也是到處查有沒有XShell的替代產品,更多的卻看到的都是類似的回答:
現在看看簡直是覺得這些誤導MacOS萌新回答都應該浸豬籠啊,MacOS自帶的Terminal雖然具備ssh的功能,但是也非常不好用,根本滿足不了我們高效工作的日常。
下面開始介紹Mac終端的應該有的正確姿勢。
2. iTerm2介紹
iTerm2作為MacOS下Terminal的替代品,支持MacOS v10.10 及以上版本。作為MacOS下最好用的終端應用,Iterm2具備以下特性:
-
分屏
Iterm2可以把一個Tab分成多個窗口,每個窗口顯示一個不同的會話。可以垂直、水平的創建任意數量的窗格。 -
標簽變色
Iterm2的標簽顏色會變化,以指示該tab當前狀態。當該標簽有新輸出的時候,標簽會變成洋紅色;新的輸出長時間沒有查看,標簽會變成紅色。可在設置中關掉該功能。 -
智能選中
在iTerm2中,雙擊選中,三擊選中整行,四擊智能選中(規則可配置),可以識別網址,引號引起的字符串,郵箱地址等。
在iTerm2中,選中即復制。即任何選中狀態的字符串都被放到了系統剪切板中。
- 自動補齊
iTerm2可以自動補齊命令,輸入若干字符,按⌘+;
彈出自動補齊窗口,列出曾經使用過的命令。
- 歷史記錄
iTerm2也可以查詢歷史記錄,按⌘+shift+h
彈出歷史記錄窗口。
- Tab搜索
按⌘+option+e
全屏展示所有tab,並可以進行搜索。
- 高亮當前鼠標位置
當我們一個標簽頁中窗口開的太多的時候,會有找不到鼠標指針的情況,按⌘+/
可以高亮鼠標位置。
還有更多特性請查看iTerm2官網。
3. 打造Mac版“Xshell”
Xshell非常的方便好用的是因為它能保存你所有的ssh登錄帳號信息。MAC下並沒有xshell,有些也提供這樣的功能,但效果都不好。iTerm2是很好的終端,但卻不能很好的支持多profiles,當要管理的機器較多時,就比較麻煩了。好在它有profiles設置,只是不能保存ssh登錄帳號及密碼,它還提供了加載profiles時執行外部命令的功能,因此,這里就可以使用sshpass來幫它執行。
3.1 安裝sshpass
下載地址:http://sourceforge.net/projects/sshpass/files/
解壓后,進入sshpass目錄,執行安裝:
$ ./configure
$ make
$ make install
測試安裝
$ sshpass -h
3.2 配置密碼
讓sshpass使用ssh密碼,需要先將密碼保存在一個文件里,再通過sshpass讀文件來獲取密碼,iTerm2就可以通過這樣的命令來登錄主機,密碼文件很簡單,取一個好名字,把密碼寫進去就可以了,沒有別的任何東西,如,在用戶目錄的sshpass目錄建一個名為pass的文件,里面寫上主機密碼:123456,文件地址為:/Users/<用戶名>/sshpass/pwd/<密碼文件>
3.3 配置iTerm2
打開iTerm2 - Preferences - Profiles
添加一個新的profile,其它沒什么好配置的,主要是在General的command中選擇使用command,命令就是sshpass的執行命令,如:
/usr/local/bin/sshpass -f /Users/<用戶名>/sshpass/pwd/pwd1_file ssh -p22 root@192.168.100.1
-
/usr/local/bin/sshpass
是sshpass執行文件的路徑,如果按默認情況安裝,它肯定會出現在這個位置上 -
-f
是告訴sshpass加載文件 -
/Users/<用戶名>/sshpass/pwd/pwd1_file
就是要加載的文件,即前面建的密碼文件 -
ssh -p22 root@192.168.100.1
是說用ssh鏈接,端口22,root帳號和IP地址
保存后,選擇該profile,就可以實際ssh登錄。只是如果是本機第一次登錄,是不會成功的,因為ssh登錄需要你yes確認,會寫文件到hosts里,所以第一次會直接失敗,再來一次或是先在終端里用ssh root@ip來登錄一次,就可以了。
這樣,新建多個profile,就可以實現管理登錄了。
在實際使用過程中,iTerm配合oh-my-zsh能實現更加炫酷的功能,在后續博客中繼續講解oh-my-zsh的配置。
參考資料:
[1] iTerm2 Feature:
http://www.iterm2.com/features.html