iTerm2工具

工欲善其事,必先利其器。iTerm2是Mac系統的獨有終端工具,有獨特的顯示風格深受開發者喜歡,本文對iTerm2的使用進行介紹。在Windows下用慣了SecureCrt或Xshell之類的工具後,切換到Mac下自然也願意沿用這類工具,但是自從我用了iTerm2後,決定放棄使用SecureCrt,因爲iTerm2不僅功能強大,而且在界面顯示、易用性等方面更爲優秀。


iTerm2初識

安裝mac版本的iTerm2之後,第一印象就是外觀比較酷,如下圖:

iterm2


輸入幾行命令可以看到iTerm2有一些特點。

1)半透明的背景效果。

半透明的背景效果的好處就是你在輸入命令的時候可以看到你的背後的內容,比如一個網頁,或者桌面,這樣你可以參考網頁上的命令進行操作而不用在應用程序間來回切換。

2)自動完成配色。

可以將可執行程序、普通文件、目錄、等等不同類型的文件用顏色區分。


iTerm2的窗口布局

安裝iTerm2之後,相信第一感覺就是外觀比較合理,如果不滿意可以在屬性->外觀的配置界面進行調整。

iTerm2第二個亮點就是它標籤頁、分割窗口的功能,請看下圖:

iterm

使用快捷鍵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進行安裝,或者下載下來手動安裝都可以。


2)  新建兩段腳本,保存到/usr/local/bin下

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)

iTerm2也支持類似secureCRT所提供的克隆會話的問題,對服務端碼龍而言是很方便的,可以避免輸入密碼。
通過下面步驟就可以實現該功能。

1) 配置Mac所在機器的ssh。
vi ~/.ssh/config
輸入下面三行
host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

2)第一次遠程服務器,還是需要輸入密碼
例如:ssh server00_name

3)  ssh成功後,使用快捷鍵command + t 產生一個新的窗口
然後再次 ssh 你的遠程服務器。 就不用輸入密碼了,達到克隆會話的效果。


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 匹配之前輸入過的命令


小結

       通過上面的介紹,對mac下使用iTerm2進行常用功能的介紹,通過介紹瞭解到iTerm完成日常工作已經綽綽有餘,主要它的顯示、佈局和快捷程度比較好,因此是我所推薦的mac必備工具之一。關於文章所寫的的腳本可以訪問我的github獲得。     



參考


修訂

初稿                                       2014-11-29               Simon


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章