作者: dslztx
链接: https://dslztx.github.io/blog/2017/02/16/Ubuntu-Shell下使用sz-rz命令传输文件/
一、环境配置
- 安装lrzsz软件包
sz和rz命令在lrzsz软件包中,通过以下命令进行安装:
sudo apt-get install lrzsz
- 安装GNU screen软件包
在Windows操作系统环境下的Xshell等程序中执行“sz/rz”命令,会自动弹出一个图形界面窗口(是对ZMODEM协议信号捕获事件的响应),用于选取“从服务器接收文件传输目的路径/待发送到服务器的文件路径”。
而在Ubuntu Shell下,可通过GNU screen软件包下的screen命令环境捕获ZMODEM协议信号,从而实现选取“从服务器接收文件传输目的路径/待发送到服务器的文件路径”。
二、实际操作
- 发送文件到服务器
- 打开一个Shell
- 执行screen命令,进入screen命令环境
- 按下Ctrl+a组合键,然后再输入:zmodem catch命令,设置screen命令环境捕获ZMODEM协议信号
- 在以上screen命令环境下与服务器建立SSH连接
- 执行rz命令,ZMODEM协议信号被screen命令环境捕获,出现如图1所示待补全命令,待补全部分为“待发送到服务器的文件路径”
- 输入“待发送到服务器的文件路径”,成功发送文件到服务器当前所处目录下
图一:
- 从服务器接收文件
- 打开一个Shell
- 执行screen命令,进入screen命令环境
- 按下Ctrl+a组合键,然后再输入:zmodem catch命令,设置screen命令环境捕获ZMODEM协议信号
- 在以上screen命令环境下与服务器建立SSH连接
- 执行sz 文件路径命令,ZMODEM协议信号被screen命令环境捕获,出现如图2所示可直接执行命令
- 图2所示命令执行后,服务器的文件被传输到本地,自动置于用户主目录下
图2:
三、其他
在screen命令环境下,按下Ctrl+a组合键,然后再输入:encoding enc命令,可以设定环境编码格式。
参考文献:
[1]http://uhle.blog.163.com/blog/static/194117144201121044756789/
[2]http://adammonsen.com/post/256
[3]https://www.gnu.org/software/screen/manual/screen.html
[4]https://www.gnu.org/software/screen/manual/screen.html#Character-Processing
0
公司测试系统使用VPN加堡垒机才能访问,文件传输很麻烦。家里的电脑是Ubuntu,无法传输文件,刚好找到了这篇文章作者的博客,看到了这篇文章。亲身实践,确实可行。
试试 nc ,强推 rsync
是吗? 我一会试试。