mac iterm2设置rz sz文件传输

news2024/11/30 14:25:17

1、安装lrzsz

$ brew install lrzsz

2、创建并设置iterm2-send-zmodem.sh

sudo vim /usr/local/bin/iterm2-send-zmodem.sh

# /usr/local/bin/iterm2-send-zmodem.sh

#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain

osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
    FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
else
    FILE=`osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
fi
if [[ $FILE = "" ]]; then
    echo Cancelled.
    # Send ZModem cancel
    echo -e \\x18\\x18\\x18\\x18\\x18
    sleep 1
    echo
    echo \# Cancelled transfer
else
    # 这里是根据sz的安装位置来设定的(我的brew install lrzsz安装后就在这里)
    /opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz "$FILE" -e -b
    sleep 1
    echo
    echo \# Received $FILE
fi

3、创建并设置iterm2-recv-zmodem.sh

sudo vim /usr/local/bin/iterm2-recv-zmodem.sh

# /usr/local/bin/iterm2-recv-zmodem.sh

#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain
#!/bin/bash
# Author: Matt Mastracci (matthew@mastracci.com)
# AppleScript from http://stackoverflow.com/questions/4309087/cancel-button-on-osascript-in-a-bash-script
# licensed under cc-wiki with attribution required
# Remainder of script public domain

osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
else
    FILE=`osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
fi

if [[ $FILE = "" ]]; then
    echo Cancelled.
    # Send ZModem cancel
    echo -e \\x18\\x18\\x18\\x18\\x18
    sleep 1
    echo
    echo \# Cancelled transfer
else
    cd "$FILE"
    # 根据sz的安装位置来设定
    /opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz -E -e -b
    sleep 1
    echo
    echo
    echo \# Sent \-\> $FILE
fi

4、设置文件可执行全县权限

sudo chmod 777 /usr/local/bin/iterm2-*

5、设置iterm2 ssh快捷登录(使用sh执行expect登录服务器)

sudo vim /Users/yinsls/my/ssh/login.sh

# /Users/yinsls/my/ssh/login.sh

#!/bin/sh
export LC_CTYPE=en_US
# expect脚本所在位置
filepath=/Users/Yinsls/My/ssh/myCentos.ssh
if [ -f $filepath ]; then
  expect $filepath
else
  echo "$filepath not exits"
fi

6、创建并设置ssh文件

sudo vim /Users/yinsls/my/ssh/myCentos.ssh

# /Users/yinsls/my/ssh/myCentos.ssh

#!/usr/bin/expect -f

# 设置登录服务器ip
set host 175.xx.xxx.x

# 设置登录账号
set user root

# 设置登录的密码
set password 123456

spawn ssh $user@$host
expect "*assword:*"
send "$password\r"
interact
expect eof

7、打开iterm2配置

=> Iterm2(打开iterm2时 点击导航栏中的Iterm2)
=> Preference
=> Profiles
=> Default
=> Advanced
=> Trigger

在这里插入图片描述
在这里插入图片描述

两行分别给三栏设置这些内容

   Regular expression:\*\*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

8、设置shell启动文件
在这里插入图片描述
9、ok,现在就可以command + O(如果没有改过快捷键的话)登录服务器了
在这里插入图片描述
在这里插入图片描述

10、接着测试一下文件传输
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在来解释一下为什么要创建一个sh绕路去执行expec而快捷登录服务器,
其实是因为虽然brew install lrzsz并且设置成功,很可能出现sz和rz能够使用,但却会发现操作之后文件没有找到 (原因就是expect方式会导致sz、rz失效)


对了,如果你并不使用快捷登录方式连接服务器,那就没什么问题,直接ssh root@175.xx.xxx.x的方式手动输入密码,不用设置.sh文件和ssh文件。不使用expect,sz rz老好用了

我也是踩坑后出来,在此心酸一下了. 拜拜~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/512096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云原生】使用外网Rancher2.5.12搭建阿里云内网K8s 1.20集群

目录 一、目标二、解决方案三、草图四、版本信息五、资源规划六、必要条件七、开始部署1、安装Docker2、安装Rancher3、解析Rancher Server URL域名4、创建K8s集群5、注册K8s集群节点 八、验证 一、目标 在云平台搭建一套高可用的K8s集群 二、解决方案 第一种:使…

创客匠人产品怎么样?

创客匠人产品经过多年的更新与送代,现如今应用范畴已经逐渐完善,客户群体也越来越来越广泛。虽然有很多人都有听说过创客匠人,但是对于创客匠人的功能和性质可能并不是得分的了解,为了便于大家选择,下面就由小编我为大…

谈谈几种分布式锁实现

大家好,我是易安!今天我们呢谈一谈常见的分布式锁的几种实现方式。 什么是分布式锁 在JVM中,在多线程并发的情况下,我们可以使用同步锁或Lock锁,保证在同一时间内,只能有一个线程修改共享变量或执行代码块…

Linux监听器 -- inotify

inotify作为Linux系统的一个监听器,能够监听文件或者目录的变化。 inotify接口 inotify的接口主要有三个,分别是inotify_init、inotify_add_watch 和 inotify_rm_watch。下面分别进行详细介绍。 inotify_init 函数用于创建inotify句柄,函数…

一图看懂 pytz 模块:现代以及历史版本的世界时区定义数据库,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 pytz 模块:现代以及历史版本的世界时区定义,将时区数据库引入 Python,资料整理笔记(大全) 🧊摘要&am…

算法小课堂(七)字符串

一、概念 1.1相关概念 0C中有两种字符串表示形式:C风格字符串和string类类型。 C风格字符串是 字符数组使用null字符\0终止的一维字符数组,字符指针是一个指针变量,里面存放一个字符的地址 而string类处理起字符串来会方便很多,完…

Golang中的数组和切片

目录 数组 基础知识 声明并初始化一个数组 遍历一个数组 切片 基础知识 声明并初始化一个切片 向切片中添加元素 切片的遍历和切片表达式 数组和切片的区别 数组 基础知识 数组是一种由固定长度的特定类型元素组成的序列,元素可以是任何数据类型&#x…

数组——知识点大全(简洁,含使用演示和代码)

目录 一.一维数组的创建 1.数组的基本形式 2.变长数组 3.数组的初始化 二.数组的本质 三.一维数组的使用 1.访问数组成员 2.计算数组的大小 四.一维数组在内存中的存储 五.二维数组 1.二维数组的形式 2.二维数组的初始化规则 六.二维数组的使用 1.打印二维数组 …

Linux下新加新磁盘分区及挂载

一:新插入磁盘查看 查看插入磁盘 法1:$sudo fdisk -l 法2: $sudo lsblk 二:磁盘分区及格式化 1: 分区 $sudo fdisk /dev/nvme0n1 进入分区工具后,我们可以输入 m 看指令说明: Command (m for help): …

前端框架比较:Vue.js、React、AngularJS三者的优缺点和应用场景

章节一:引言 在当前的互联网开发中,前端框架已经成为了不可或缺的一部分。然而,前端框架如此之多,该如何选择呢?Vue.js、React和AngularJS是目前比较受欢迎的三个前端框架,它们各自有着不同的优缺点和应用…

MySQL笔记(三) 联结、组合查询、全文本搜索、视图、索引、触发器、事务

文章目录 联结关系表为什么要使用联结维护引用完整性 内部联结联结多个表创建高级联结使用表别名 自联接自然联结外部联结 OUTER JOIN外部联结的类型 使用带聚集函数的联结要点 组合查询 UNION创建规则注意 全文本搜索查询拓展布尔文本搜索总结 视图为什么使用视图视图的规则和…

虚拟机与主机互传文件方法分享

现在虚拟机的使用已经非常普及,无论新手学习,还是运维工程师搭建虚拟化平台,都会使用到虚拟机。对个人用户来说,非常方便就能搭建很多操作系统进行学习;对企业用户来说更是降低了服务器的硬件成本。 使用虚拟机的时候…

本周日直播,全链路数据治理实践论坛开放报名

5月14日,09:00-12:00,由阿里云资深技术专家温绍锦老师出品的 DataFun Summit 2023:数据治理在线峰会-全链路数据治理论坛,将邀请来自阿里、Aloudata大应科技、爱奇艺的4位专家就相关主题进行深度分享, 出品人&#xff…

JAVA-继承

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 1.为什么需要继承 2. 继承的语法 3.子类构造方法 4.super和this的异同 5.final 关键字 总结 前言 继承是面向对象语法的三大特征之一。在以后写…

【Python 装饰器成长路径】零基础也能轻松掌握的学习路线与参考资料

Python装饰器是Python语言的一个重要特性,可以让代码更加简洁、优雅,并且让代码重用性更加高效。本文针对Python装饰器的学习路线,参考资料和优秀实践进行详细介绍。 文章目录 一、学习路线二、参考资料三、优秀实践 一、学习路线 了解函数…

10. 类的友元

一、类的友元 生活中你的家有客厅(public),有你的卧室(private),客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去,但是,你也可以允许…

01-mysql安装篇(rpm方式安装+压缩包安装)

文章目录 一、rpm方式安装1、检查是否安装了mariadb2、下载mysql3、上传解压4、安装5、检查安装6、开启mysql服务7、登陆mysql8、修改密码设置规则(简单型-学习用)9、修改密码10、授权远程登陆11、启停mysql命令12、rpm方式安装说明 二、压缩包方式安装V…

前端技术搭建飞机大战小游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了弹珠游戏,当然很多伙伴再评论区提出了想法,后续我们会考虑实现的,今天还是继续按照我们原定的节…

2023年第三届长三角高校数学建模竞赛】A 题 快递包裹装箱优化问题 详细数学建模过程

1 题目 2022 年,中国一年的包裹已经超过 1000 亿件,占据了全球快递事务量的一半以上。近几年,中国每年新增包裹数量相当于美国整个国家一年的包裹数量, 十年前中国还是物流成本最昂贵的国家,当前中国已经建立起全世界…

阿里云服务器建站教程来了(十分钟网站上线)

使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程: …