Mac下iTerm2配置lrzsz功能

rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具。

优点就是不用再开一个sftp工具登录上去上传下载文件。

近期在mac上通过终端连接服务器,想通过rz和sz实现快速简单的文件上传下载功能

1、安装iTerm2

iTerm2是Mac OS下的一款终端利器,相对于系统自带的终端软件具有很多更好的功能和扩展。官方地址为https://www.iterm2.com

安装iTerm2主要有下面两种方法:

  • 从官网下载安装包进行安装

下载的是压缩文件,解压后是执行程序文件,你可以直接双击,或者直接将它拖到 Applications 目录下。

  • 使用homebrew进行安装

homebrew是mac下的一个包管理器,虽然苹果官方没有相关说明,很多的软件包可以利用homebrew轻松的在命令行进行安装,homebrew的安装可参考官方网站或某博客,安装后最好将软件源替换为国内源,例如阿里云或者清华大学源

2、下载iterm2-send-zmodem.sh和iterm2-recv-zmodem.sh脚本文件

脚本文件在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

3、安装lrzsz

通过homebrew安装,执行brew install lrzsz安装即可

4、配置iterm2

此步骤是关键步骤,打开iTerm2终端,依次点击"Preference"——>"Profiles"——>"Default"——>"Advanced"——>"Edit"



添加两个触发器Triggers,意味着在iTerm2中执行某个命令或输出某个结果(归根到底还是脚本)时,会根据定义的触发器触发某个动作

触发器中需要定义到Regular Expression正则表达式、Action动作、Parameters参数这三项

正则表达式设置方法:

打开终端,分别输入rz命令查看输出

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,配置好之后的最终效果如下:

5、文件传输测试

打开终端,通过终端登录到服务器,再分别执行rz和sz命令,会自动弹出一个界面选择要上传文件所在的位置或选择下载文件的保存位置,大功告成

sz下载文件



rz上传文件

6、rz命令和sz命令参数

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错误”,文件上传就成功了,其他显示则表示文件上传出现问题了。

Mac下iTerm2配置lrzsz功能的更多相关文章

  1. mac下iterm2配置安装,通过expact实现保存账号,及通过跳板登陆配置

    在参考了几款mac不错的ssh工具外,最终选择使用iterm2.本来打算用FinalShell,安装后发现其icon在访达中根本不现实,而且每次访问还需要输入管理员账号密码,强迫症根本受不了... 官 ...

  2. 如何在Mac上配置iTerm2以及给ITerm2配置lrzsz

    Mac安装ITerm2: https://www.jianshu.com/p/9c3439cc3bdb 给ITerm2配置lrzsz: https://www.cnblogs.com/sunshine ...

  3. mac下iterm2快捷方式

    mac下iterm2,一些技巧,做个记录,大部分参考别人的加上自己的补充: 其中option + 左右键来跳转单词还是有问题,结果变为[D[C,等我摸索好了再来补充. 窗口 新建tab:⌘ + t 切 ...

  4. MAC上ITERM2配置SZ, RZ远程上传和下载文件

    MAC上ITERM2配置SZ, RZ远程上传和下载文件 From article 在Windows上的SecureCRT.XShell远程连接Linux服务器,通常可以使用sz.rz等命令来上传和下载 ...

  5. Mac下 如何配置虚拟机软件Parallel Desktop--超详细

    Mac下 如何配置虚拟机软件Pparallel Desktop--超详细 Mac 的双系统解决方案有两种,一种是使用Boot Camp分区安装独立的Windows,一种是通过安装Parallels D ...

  6. Mac 下VIM配置

    Mac下VIM配置 首先,我们去这里下载MacVim,也可用这个网址:(http://code.google.com/p/macvim/),进入后的界面如下: ____________________ ...

  7. MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)

    本文原创,未经同意,谢绝转载!(转载请告知本人并且经过本人同意--By Pacific-hong) 本人小硕一枚,因为专业方向图像相关,所以用到opencv,然后网上MAC下Xcode配置opencv ...

  8. MAC下Xcode配置opencv(2017.3.29最新实践,亲测可行)(转)

    本文原创,未经同意,谢绝转载!(转载请告知本人并且经过本人同意--By Pacific-hong) 本人小硕一枚,因为专业方向图像相关,所以用到opencv,然后网上MAC下Xcode配置opencv ...

  9. Mac下iTerm2使用

    之前一直使用 Mac OS 自带的终端,用起来虽然有些不太方便,但总体来说还是可以接受的,是有想换个终端的想法,然后今天偶然看到一个终端利器 iTerm2,发现真的很强大,也非常的好用,按照网上配置了 ...

随机推荐

  1. C++使用fill初始化二维数组

    类似如下用法: fill(dis[0], dis[0]+maxn*maxn, INF); 因为 dis[0]才是dis的首元素 dis[0][0] 的地址.

  2. [LeetCode] 228. Summary Ranges 总结区间

    Given a sorted integer array without duplicates, return the summary of its ranges. Example 1: Input: ...

  3. python:pytest中的setup和teardown

    原文:https://www.cnblogs.com/peiminer/p/9376352.html 之前我写的unittest的setup和teardown,还有setupClass和teardow ...

  4. 机器学习技法总结(四)(aggregation,vote,bootstrap...)

    研究的动机是:我们采用了不同的模型得到T个不同的g,那么我们是不是可以通过这些不同的g的融合得到更加出色的G呢?因此,便有了以上四种不同的方法:1)(select)直接选择最好的一个作为融合的结果:2 ...

  5. OpenJudge 2755:神奇的口袋

    总时间限制: 10000ms 内存限制: 65536kB 描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体 ...

  6. java File源码理解,探索File路径

    1.方法: new File(path); 我们知道根据输入的路径path的不同 ,File可以根据path的不同格式,来访问文件.那么,path的形式有几种呢? 根据源码 可以知道,输入的路径pat ...

  7. Response知识点小结

    HTTP协议: 1. 响应消息:服务器端发送给客户端的数据 * 数据格式: 1. 响应行 1. 组成:协议/版本 响应状态码 状态码描述 2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状 ...

  8. IP核——FIFO

    一.Quartus 1.打开Quartus ii,点击Tools---MegaWizard Plug-In Manager 2.弹出创建页面,选择Creat a new custom megafunc ...

  9. python threading模块的Lock和RLock区别

    首先了解这两者是什么. 以下说明参考自python官网 Lock:Lock被称为①原始锁,原始锁是一个②在锁定时不属于特定线程的同步基元组件,它是能用的最低级的同步基元组件.原始锁处于 "锁 ...

  10. Python之TensorFlow的(案例)验证码识别-6

    一.这里的案例相对比较简单,主要就是通过学习验证码的识别来认识深度学习中我们一般在工作中,需要处理的东西会存在哪些东西. 二.因为我没有数据集,没有关系,这里自己写了一个数据集,来做测试,为了方便我把 ...