打造MacOS版“XShell”

1.背景

XShell作為一個強(qiáng)大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平臺的TELNET 協(xié)議。作為server端開發(fā),幾乎是必備工具了。

很多剛切換到MacOS環(huán)境下的萌新都會面臨一個尷尬的問題:XShell并沒有提供MacOS版本,在NetSarang(XShell的爸爸)論壇里群眾們也已經(jīng)向官方吶喊很多年了,卻遲遲不見NetSarang有MacOS版本的消息。這對于已經(jīng)使用習(xí)慣Xshell的開發(fā)同學(xué)無疑是個噩夢。

記得我剛切到MacOS環(huán)境的時候,也是到處查有沒有XShell的替代產(chǎn)品,更多的卻看到的都是類似的回答:

現(xiàn)在看看簡直是覺得這些誤導(dǎo)MacOS萌新回答都應(yīng)該浸豬籠啊,MacOS自帶的Terminal雖然具備ssh的功能,但是也非常不好用,根本滿足不了我們高效工作的日常。

下面開始介紹Mac終端的應(yīng)該有的正確姿勢。

2. iTerm2介紹

image

iTerm2作為MacOS下Terminal的替代品,支持MacOS v10.10 及以上版本。作為MacOS下最好用的終端應(yīng)用,Iterm2具備以下特性:

  • 分屏
    Iterm2可以把一個Tab分成多個窗口,每個窗口顯示一個不同的會話??梢源怪?、水平的創(chuàng)建任意數(shù)量的窗格。
image
  • 標(biāo)簽變色
    Iterm2的標(biāo)簽顏色會變化,以指示該tab當(dāng)前狀態(tài)。當(dāng)該標(biāo)簽有新輸出的時候,標(biāo)簽會變成洋紅色;新的輸出長時間沒有查看,標(biāo)簽會變成紅色??稍谠O(shè)置中關(guān)掉該功能。

  • 智能選中
    在iTerm2中,雙擊選中,三擊選中整行,四擊智能選中(規(guī)則可配置),可以識別網(wǎng)址,引號引起的字符串,郵箱地址等。
    在iTerm2中,選中即復(fù)制。即任何選中狀態(tài)的字符串都被放到了系統(tǒng)剪切板中。

  • 自動補(bǔ)齊
    iTerm2可以自動補(bǔ)齊命令,輸入若干字符,按?+;彈出自動補(bǔ)齊窗口,列出曾經(jīng)使用過的命令。

image
  • 歷史記錄
    iTerm2也可以查詢歷史記錄,按?+shift+h彈出歷史記錄窗口。
image
  • Tab搜索
    ?+option+e全屏展示所有tab,并可以進(jìn)行搜索。
image
  • 高亮當(dāng)前鼠標(biāo)位置
    當(dāng)我們一個標(biāo)簽頁中窗口開的太多的時候,會有找不到鼠標(biāo)指針的情況,按?+/可以高亮鼠標(biāo)位置。
image

還有更多特性請查看iTerm2官網(wǎng)

3. 打造Mac版“Xshell”

Xshell非常的方便好用的是因為它能保存你所有的ssh登錄帳號信息。MAC下并沒有xshell,有些也提供這樣的功能,但效果都不好。iTerm2是很好的終端,但卻不能很好的支持多profiles,當(dāng)要管理的機(jī)器較多時,就比較麻煩了。好在它有profiles設(shè)置,只是不能保存ssh登錄帳號及密碼,它還提供了加載profiles時執(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密碼,需要先將密碼保存在一個文件里,再通過sshpass讀文件來獲取密碼,iTerm2就可以通過這樣的命令來登錄主機(jī),密碼文件很簡單,取一個好名字,把密碼寫進(jìn)去就可以了,沒有別的任何東西,如,在用戶目錄的sshpass目錄建一個名為pass的文件,里面寫上主機(jī)密碼:123456,文件地址為:/Users/<用戶名>/sshpass/pwd/<密碼文件>

3.3 配置iTerm2

打開iTerm2 - Preferences - Profiles

image

添加一個新的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)情況安裝,它肯定會出現(xiàn)在這個位置上

  • -f 是告訴sshpass加載文件

  • /Users/<用戶名>/sshpass/pwd/pwd1_file就是要加載的文件,即前面建的密碼文件

  • ssh -p22 root@192.168.100.1是說用ssh鏈接,端口22,root帳號和IP地址

保存后,選擇該profile,就可以實際ssh登錄。只是如果是本機(jī)第一次登錄,是不會成功的,因為ssh登錄需要你yes確認(rèn),會寫文件到hosts里,所以第一次會直接失敗,再來一次或是先在終端里用ssh root@ip來登錄一次,就可以了。

這樣,新建多個profile,就可以實現(xiàn)管理登錄了。

在實際使用過程中,iTerm配合oh-my-zsh能實現(xiàn)更加炫酷的功能,在后續(xù)博客中繼續(xù)講解oh-my-zsh的配置。


參考資料:
[1] iTerm2 Feature:
http://www.iterm2.com/features.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 引子 SSH連接是我們與服務(wù)器交互的主要手段,每個程序員每天都會用到,就像喝白開水一樣普通。就是這樣一個簡單而又高...
    bluexiii閱讀 12,769評論 0 8
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,695評論 19 139
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,819評論 9 468
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,347評論 2 33
  • 吸引力法則說:你會得到你所持續(xù)聚焦的實相,不管是你要的,還是你不想要。 此刻,傍晚18:00,我在蔥郁的自家陽臺里...
    清心0606閱讀 227評論 1 4

友情鏈接更多精彩內(nèi)容