工欲善其事,必先利其器。iTerm2是Mac系統的獨有終端工具,有獨特的顯示風格深受開發者喜歡,本文對iTerm2的使用進行介紹。在Windows下用慣了SecureCrt或Xshell之類的工具後,切換到Mac下自然也願意沿用這類工具,但是自從我用了iTerm2後,決定放棄使用SecureCrt,因爲iTerm2不僅功能強大,而且在界面顯示、易用性等方面更爲優秀。
iTerm2初識
安裝mac版本的iTerm2之後,第一印象就是外觀比較酷,如下圖:
輸入幾行命令可以看到iTerm2有一些特點。
1)半透明的背景效果。
半透明的背景效果的好處就是你在輸入命令的時候可以看到你的背後的內容,比如一個網頁,或者桌面,這樣你可以參考網頁上的命令進行操作而不用在應用程序間來回切換。
2)自動完成配色。
可以將可執行程序、普通文件、目錄、等等不同類型的文件用顏色區分。
iTerm2的窗口布局
安裝iTerm2之後,相信第一感覺就是外觀比較合理,如果不滿意可以在屬性->外觀的配置界面進行調整。
iTerm2第二個亮點就是它標籤頁、分割窗口的功能,請看下圖:
使用快捷鍵command + d,可以進行窗口分割,上圖分割出3個區域,可以左右開弓。
使用快捷鍵command + t,可以新建一個選項開,如上圖有兩個選項卡,SecureCRT等工具類似的功能,每個選項卡是一個會話。
使用快捷鍵command + w,可以關閉當前的選項卡。 和瀏覽器等軟件快捷鍵一致。
使用快捷鍵command + 數字,可以在多個選項卡間進行切換,也可以使用command+ 左箭頭或由箭頭進行選項卡間切換。
通過如上快捷鍵可以快捷進行窗口管理,同時處理多件任務。而且操作方便,沒有多餘動作。
iTerm2保存會話
上面的顏色都只是展現了iTerm終端的能力,iTerm和SecureCRT等工具一樣,可以做SSH客戶端、telnet客戶端,最方面的方式在終端上直接輸入命令ssh IP進行連接,如果經常使用到,可以保存下來。
使用command + , 打開iTerm的屬性頁面。如下圖。
點擊+號新建一個Profiles,Command輸入你要SSH命令。下次你就可以輸入Command + o快捷鍵調出Profile界面進行連接遠程服務器。
iTerm2沒有像SecureCrt的保存密碼功能,當使用iTerm2連接到遠程服務器後,iTerm2也自動完成配色。每個Profile可以自定義屬性,比如配置外觀,命令等等。
iTerm2添加Zmodem傳輸文件
當我使用SSH遠程到我的虛擬機Ubuntu後,想與Ubuntu進行文件傳輸,首先想到的是在SecureCrt上經常輸入的sz,rz命令,但是iTerm2是沒有集成。下面介紹如何集成Zmodem。
1)在mac上安裝Zmodem的實現,lrzsz。
brew install lrzsz
我使用的homebrew包管理工具,也可以使用port進行安裝,或者下載下來手動安裝都可以。
item2-recv-zmodem.sh,內容如下:
#!/bin/bash
#Author: Matt Mastracci ([email protected])
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \\x18\\x18\\x18\\x18\\x18
echo \# Cancelled transfer
echo
else
echo $FILE
cd "$FILE"
/usr/local/bin/lrz
echo \# Received $FILE
echo
fi
item2-send-zmodem.sh,內容如下:
#!/bin/bash
#Author: Matt Mastracci ([email protected])
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \\x18\\x18\\x18\\x18\\x18
echo \# Cancelled transfer
echo
else
echo $FILE
/usr/local/bin/lsz "$FILE"
echo \# Received $FILE
echo
fi
3)設置iTerm2的屬性
default trigger(iTerm偏好設置->
Profiles –> Default –> Advanced –> Triggers的Edit按鈕
添加如下配置:
Regular expression: \*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
iTerm2克隆會話(clone session)
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
iTerm2常用快捷鍵
快捷鍵 | 用途 |
command+, | 彈出偏好設置窗口 |
command+o | 彈出profiles界面 |
command+d | 分割窗口 |
command+t | 新建選項卡窗口 |
command+w | 關閉窗口 |
command+數字 | 切換到第(x)個選項卡窗口 |
command+左/右箭頭 | 切換選項卡窗口,按方向依次切換 |
command+~ | 隱藏/顯示iTerm2 |
fn+左箭頭 | 控制光標至開頭 |
fn+右箭頭 | 控制光標至結尾 |
command+f | 查找 |
command+e+r | 清屏 |
control+r | 匹配之前輸入過的命令 |