写在前面
在 Mac 环境下, 我们经常会使用 iTerm2 https://www.iterm2.com/index.html 终端连接远程服务器, 也经常会有本机和远程服务器之间进行文件共享的需求. 这个时候 lrzsz 就派上用场了.
https://www.ohse.de/uwe/software/lrzsz.html 是 unix 下的开源软件包, 支持 XMODEM, YMODEM ZMODEM http://www.easysw.com/~mike/serial/zmodem.html 文件传输协议. 本文将会展示如何将 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 的配置请参考这里 https://www.iterm2.com/documentation-triggers.html .
远程服务器安装 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, 将文件下载到选择目录.
image.PNG
更多参考
- https://github.com/mmastrac/iterm2-zmodem
- https://www.ohse.de/uwe/software/lrzsz.html
- https://www.iterm2.com/documentation-triggers.html
来源: http://www.jianshu.com/p/3a8da939de2a