Mac电脑安装iTerm2通过rz命令上传文件到远程服务器

发布于:2025-06-27 ⋅ 阅读:(14) ⋅ 点赞:(0)

背景

闲着没事买了个云服务器玩(京东云轻量云主机),Mac本地搞了个java的jar包,想上传到云服务器,通过scp命令在Mac自带的【终端】上怎么都上传不了,如图。但是通过ssh命令(ssh root@主机IP )又能登录上远程服务器,说明网络和密码肯定没问题!
在这里插入图片描述


没办法,只能换了个方式。通过iTerm2rz 命令。
第一次用iTerm 踩了很多坑,这里总结下经验。

iTerm2 实际上也是一个终端,但是比Mac自带的终端多了很多功能,而且你也可以去定制化这个终端( command+i 命令,能打开它的设计面板),这个终端能对 lrzsz 做很好的支持,Mac自带的终端并不能很好的支持 lrzsz 。所以我们实际上是用到的是 lrzsz。
因此我们需要安装两个软件: iTerm2 + lrzsz

步骤

1 安装iTerm2 (在mac自带终端上操作)

brew install --cask iterm2

输入命令会显示如下,没事等几分钟就好了。

用户名某莫某@192 ~ % brew install --cask iterm2
==> Auto-updating Homebrew…
Adjust how often this is run with HOMEBREW_AUTO_UPDATE_SECS or disable with
HOMEBREW_NO_AUTO_UPDATE. Hide these hints with HOMEBREW_NO_ENV_HINTS (see man brew).

成功后电脑里会多一个下方的软件。

在这里插入图片描述

2 安装lrzsz (在mac自带终端上操作)

yum install -y lrzsz 或者 brew install lrzsz

查看下是否安装成功:

用户某某@LGMacBook-Pro ~ %  brew  list lrzsz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrb
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrx
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsb
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsx
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/sbom.spdx.json
/opt/homebrew/Cellar/lrzsz/0.12.20_1/share/man/ (2 files)

3 打开iTerm2终端

直接敲 rz 会报错:

waiting to receive.**B0100000023be50

网上搜了一堆资料,研究了一晚上,发现是需要下载并配置两个脚本:

  • iterm2-send-zmodem.sh
  • iterm2-recv-zmodem.sh

4 下载 mmastrac(两个sh脚本)

我是通过GitHub下载的
登录GitHub官网,搜索mmastrac,找到后,下载ZIP压缩包到本地
在这里插入图片描述

在这里插入图片描述

4 移动iterm2-send-zmodem.sh、iterm2-recv-zmodem.sh 两个脚本文件

  1. 解压iterm2-zmodem-master.zip
  2. 依次移动到这两个文件到 /usr/local/bin/ 目录下

参考命令(记得改源文件路径):

sudo mv /Users/…/Downloads/iterm2-zmodem-master/iterm2-recv-zmodem.sh /usr/local/bin/

弄好后可以进去到/usr/local/bin/ 目录下检查下:
在这里插入图片描述

5 把这两个脚本配置到 iterm2 中

打开iTerm2这个终端软件, 敲命令 cmmand + i ,会打开配置界面:
在这里插入图片描述

然后点下面的加号➕添加两行配置:
在这里插入图片描述
第一行:

Regular expression: rz waiting to receive.\*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh

第二行:

Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh

这两行顺序千万别搞反了!!!

不过这里有个BUG一直没解决,就是每次关闭iterm2后这两个配置就没了,就得重新配置下! 有解决方案的小伙伴记得留言分享~

6 修改脚本

配置好后,运行rz命令后发现还是报错!我又研究了很久,吐血了!🩸原来是下载下来的sh脚本没办法直接用。
原因:我们安装的lrzsz的目录路径和两个sh脚本中的路径对不上!

🅰️先查看下lrzsz的安装路径

用户某某@LGMacBook-Pro ~ %  brew  list lrzsz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrb
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrx
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lrz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsb
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsx
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/lsz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz
/opt/homebrew/Cellar/lrzsz/0.12.20_1/sbom.spdx.json
/opt/homebrew/Cellar/lrzsz/0.12.20_1/share/man/ (2 files)

可以看到 rz、sz 的路径都是: /opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/

🅱️再看下sh脚本中的rz路径
在这里插入图片描述

因此,我们分别修改iterm2-send-zmodem.sh、iterm2-recv-zmodem.sh 两个脚本中的路径为lrzsz的本地实际安装路径即可。

7 最后,上传

在 iTerm终端 通过ssh命令,连接远程服务器(ssh root@主机IP ),cd 到一个你想把文件上传的目录中,然后rz命令,会自动弹出来让你选择文件,然后选择你想上传的文件,点击【choose】就能成功上传啦。 完事后你可以 ls 验证下。
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到