rz,sz是Linux/Unix同Windows進行ZModem文件傳輸的命令行工具。
優勢就是不用再開一個sftp工具登陸上去上傳下載文件。
近期在mac上經過終端鏈接服務器,想經過rz和sz實現快速簡單的文件上傳下載功能html
iTerm2是Mac OS下的一款終端利器,相對於系統自帶的終端軟件具備不少更好的功能和擴展。官方地址爲https://www.iterm2.com
安裝iTerm2主要有下面兩種方法:git
下載的是壓縮文件,解壓後是執行程序文件,你能夠直接雙擊,或者直接將它拖到 Applications 目錄下。github
homebrew是mac下的一個包管理器,雖然蘋果官方沒有相關說明,不少的軟件包能夠利用homebrew輕鬆的在命令行進行安裝,homebrew的安裝可參考官方網站或某博客,安裝後最好將軟件源替換爲國內源,例如阿里雲或者清華大學源正則表達式
腳本文件在iterm2的官方github倉庫上,地址爲:
https://github.com/mmastrac/iterm2-zmodem
腳本下載後須要放在mac的/usr/local/bin目錄下,而且添加可執行權限服務器
127:~ ssgeek$ cd /usr/local/bin/ 127:bin ssgeek$ wget -c https://raw.githubusercontent.com/mmastrac/iterm2-zmodem/master/iterm2-recv-zmodem.sh 127:bin ssgeek$ wget -c https://raw.githubusercontent.com/mmastrac/iterm2-zmodem/master/iterm2-send-zmodem.sh 127:bin ssgeek$ chmod +x iterm2-recv-zmodem.sh 127:bin ssgeek$ chmod +x iterm2-send-zmodem.sh
經過homebrew安裝,執行brew install lrzsz安裝便可網絡
此步驟是關鍵步驟,打開iTerm2終端,依次點擊"Preference"——>"Profiles"——>"Default"——>"Advanced"——>"Edit"
添加兩個觸發器Triggers,意味着在iTerm2中執行某個命令或輸出某個結果(歸根到底仍是腳本)時,會根據定義的觸發器觸發某個動做
觸發器中須要定義到Regular Expression
正則表達式、Action
動做、Parameters
參數這三項
正則表達式設置方法:
打開終端,分別輸入rz命令查看輸出ide
127:~ honganrong$ rz rz waiting to receive.**B0100000023be50
輸入sz命令,查看輸出工具
127:~ honganrong$ sz Desktop/a.txt **B00000000000000
將輸出rz waiting to receive.**B0100000023be50
和**B00000000000000
加上轉義符號後填寫至Regular Expression
下便可,也可進一步加上正則表達式簡寫後再填寫,爲了精確起見,保留原樣便可
Action
選擇Run Silent Coprocess...
,Parameters
填寫的就是以前下載的兩個腳本,同時還須要勾選Instant
選項,表示當即執行觸發器
關於參數和正則表達式的對應關係能夠這樣理解:咱們利用rz
上傳和sz
下載文件通常都是經過終端登陸到Linux
服務器上以後執行的:在服務器上執行rz
上傳,那麼對於Mac電腦來講,它就是須要從本地發送一個文件到服務器,即send
;一樣的,在服務器上執行sz
下載,那麼對於mac電腦來講,它就是須要從服務器接收一個文件到本地,即receive
,簡寫爲recv
,配置好以後的最終效果以下:
測試
打開終端,經過終端登陸到服務器,再分別執行rz和sz命令,會自動彈出一個界面選擇要上傳文件所在的位置或選擇下載文件的保存位置,大功告成
sz下載文件
rz上傳文件
網站
sz命令
用途說明:sz命令是利用ZModem協議來從Linux服務器傳送文件到本地,一次能夠傳送一個或多個文件。相對應的從本地上傳文件到Linux服務器,可使用rz命令。
經常使用參數:
-a 以文本方式傳輸(ascii)。 -b 以二進制方式傳輸(binary)。 -e 對控制字符轉義(escape),這能夠保證文件傳輸正確。 若是可以肯定所傳輸的文件是文本格式的,使用 sz -a files 若是是二進制文件,使用 sz -be files
rz命令
-b 以二進制方式,默認爲文本方式。(Binary (tell it like it is) file transfer override.) -e 對全部控制字符轉義。(Force sender to escape all control characters; normally XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.)
若是要保證上傳的文件內容在服務器端保存以後與原始文件一致,最好同時設置這兩個標誌,以下所示方式使用:
rz -be
此命令執行時,會彈出文件選擇對話框,選擇好須要上傳的文件以後,點肯定,就能夠開始上傳的過程了。上傳的速度取決於當時網絡的情況。 若是執行完畢顯示「0錯誤」,文件上傳就成功了,其餘顯示則表示文件上傳出現問題了。