写在前面
在mac环境下,我们经常会使用 iTerm2终端连接远程服务器,也经常会有本机和远程服务器之间进行文件共享的需求。这个时候lrzsz就派上用场了。
lrzsz是unix下的开源软件包,支持XMODEM, YMODEM ZMODEM文件传输协议。本文将会展示如何将lrzsz集成到iTerm2终端中,通过sz
和rz
命令和远程服务器传输文件。
其中,s
表示send
,r
表示recieve
,z表示使用的协议为ZMODEM。
安装步骤
1. 安装lrzsz
- 最简单的方式是通过brew安装:
brew install lrzsz
。 - 也可以通过下载源码安装。
2. 下载iterm2-zmodem支持脚本
- 克隆代码库:
git clone https://github.com/mmastrac/iterm2-zmodem.git
- 将
iterm2-send-zmodem.sh
和iterm2-recv-zmodem.sh
脚本拷贝到目录/usr/local/bin/
。
3. 在iTerm2中配置Trigger
iTerm2 > Preference > Profiles > Advanced > Triggers > Edit
- 增加rz和sz的配置如下:
Regular expression: rz waiting to receive.\*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Instant: checked
Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
Instant: checked
配置完成后如下:
更多关于Trigger的配置请参考这里。
-
远程服务器安装lrzsz
使用相关包管理工具安装lrzsz,如在centos下使用yum安装:yum -y install lrzsz
演示
-
本地上传文件到远程服务器
上传文件到远程服务器比较简单,在iTerm2登录远程服务器后,直接在命令行输入命令:rz
,iTerm2收到带有数据匹配到rz waiting to receive.**B0100
,执行脚本/usr/local/bin/iterm2-send-zmodem.sh
,调起Finder将选择的文件上传至远程服务器。
-
远程服务器下载文件到本地
从远程服务器下载文件到本地也很简单,键入命令:sz filename1 filename2 … filenameN
,当iTerm2收到数据匹配到**B00000000000000
时,执行脚本/usr/local/bin/iterm2-recv-zmodem.sh
,调起Finder,将文件下载到选择目录。