兼容 tmux,类似 rz / sz 的 trzsz 发布 1.1.1 稳定版
兼容 tmux,类似 rz /sz 的 trzsz (trz /tsz) 发布 1.1.1 稳定版,新版本支持在 iTerm2 中拖文件或目录上传,优化了对 Windows 的支持。
trzsz
是一个兼容 tmux 的文件传输工具,和 lrzsz ( rz / sz ) 类似,并且有进度条和支持目录传输。
GitHub: https://github.com/trzsz/trzsz
Gitee: https://gitee.com/trzsz/trzsz
为什么?
考虑 laptop -> hostA -> hostB -> docker -> tmux
这种场景,使用 scp
或 sftp
是不方便的。
在这种场景下,使用 lrzsz
( rz / sz ) 是很方便的,但是很可惜它与 tmux
不兼容。
tmux
不愿意支持 rz / sz ( 906, 1439 ),而重新造一个工具比修改 tmux
简单很多。
安装指南
在远程服务器上安装
用 Python3 安装
sudo python3 -m pip install --upgrade trzsz
用 Python2 安装
sudo python2 -m pip install --upgrade trzsz
用 Homebrew 安装
brew update brew install trzsz
用 Node.js 安装
sudo npm install -g trzsz
或者安装用 Go 写的 trzsz
没有 sudo
权限也可以安装,只要将安装路径 ( 可能是 ~/.local/bin
) 添加到 PATH
环境变量中即可。
支持的终端
iTerm2 -- 参考 Trzsz-iTerm2 安装文档。
tabby -- 安装 tabby-trzsz 插件即可。
electerm -- 升级到
1.19.0
以上的版本即可。trzsz-go – 只要是支持本地 shell 的终端就可以用。
trzsz.js -- 让运行在浏览器中的 webshell 和用 electron 开发的终端支持
trzsz
。
如果你的终端也支持 trzsz
,请告诉我,我很乐意将它加到此列表中。
使用指南
trz
上传文件
trz
命令可以不带任何参数,将上传文件到当前目录。也可以带一个目录参数,指定上传到哪个目录。
trz /tmp/
tsz
下载文件
tsz
可以带一个或多个文件名(可使用相对路径或绝对路径,也可使用通配符),将下载指定的文件。
tsz file1 file2 file3
-q
静默模式
trz -q
或 tsz -q xxx
( 加上 -q
选项 ),则在传输文件时不显示进度条。
-y
覆盖模式
trz -y
或 tsz -y xxx
( 加上 -y
选项 ),如果存在相同文件名的文件就直接覆盖。
-b
二进制模式
trz -b
或 tsz -b xxx
( 加上 -b
选项 ),二进制传输模式,对于压缩包、图片、影音等较快。
-e
转义控制字符
二进制模式时,控制字符可能会导致失败,trz -eb
或 tsz -eb xxx
( 加上 -e
选项 ) 转义所有已知的控制字符。
-d
传输文件夹
trz -d
或 tsz -d xxx
( 加上 -d
选项 ),则可以上传或下载指定文件夹和文件。
-B
缓冲区上限
trz -B 20m
或 tsz -B 2M xxx
等,设置最大缓冲区上限 ( 默认 10M )。会自动根据网速选择合适的缓冲区大小,但不会超过此上限。
-t
超时时间
trz -t 10
或 tsz -t 30 xxx
等,设置超时秒数 ( 默认 20 秒 )。在超时时间内,如果无法传完一个缓冲区大小的数据则会报错并退出。设置为 0 或负数,则永不超时。
异常处理方法
如果
tmux
不是运行在远程服务器上,而是运行在本地电脑上,或者运行在中间的跳板机上。方案1:使用
tmux -CC
与 iTerm2 集成,请参考 iTerm2 与 tmux -CC 集成。方案2:在本地电脑上安装 trzsz-go,设置
alias ssh="trzsz ssh"
可以方便使用。
如果出现了错误,且
trzsz
挂住不能动了:- 按组合键
control + c
可以停止服务器上的trz
或tsz
进程。 - 对于 iTerm2 用户,按组合键
command + option + shift + r
可以停止 iTerm2 Coprocesses。
- 按组合键
如果
trz -b
二进制上传失败,并且登录远程服务器时使用了telnet
或docker exec
:- 可以试试转义所有控制字符,例如
trz -eb
。
- 可以试试转义所有控制字符,例如
如果
trz -b
二进制上传失败,并且远程服务器使用 Python3 ( 版本小于 3.7 ):- Python3 ( 版本小于 3.7 ) 支持 base64 模式,不使用
-b
选项即可,使用trz
代替。 - 如果想用
trz -b
二进制上传,则需要升级 Python3 到 3.7 以上的版本,或者使用 Python2。
- Python3 ( 版本小于 3.7 ) 支持 base64 模式,不使用
如果
trz -b
或tsz -b
二进制传输失败,并且登录远程服务器时使用了expect
:- 可以试试在
expect
脚本前设置环境变量export LC_CTYPE=C
,例如:#!/bin/sh export LC_CTYPE=C expect -c ' spawn ssh xxx expect "xxx: " send "xxx\n" interact '
- 可以试试在
屏幕截图
trzsz 在 iTerm2 中 text 进度条示例
trzsz 在 iTerm2 中 zenity 进度条示例
trzsz 在 tabby 中 tabby-trzsz 插件示例

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
EventMesh 发布由腾讯贡献的 CNCF Serverless Workflow Engine 实现
EventMesh 动态事件驱动的应用程序运行时,能够用动态插件式基础服务对系统进行解耦,支持不同技术栈的混合多云、复杂分布的拓扑结构等广泛用例。以事件驱动为核心,增强事件处理能力,优化编排协调过程,并提供联邦治理机制。为企业实现数字化转型提供了应用进程间通信的全套解决方案,帮助企业降低系统复杂度,节约开发维护成本。 EventMesh v1.7.0是进入Apache孵化后更新的第6个版本,本次版本为大家带来了 14 个新增特性,其中重磅的EventMesh Workflow Engine特性来自于腾讯的朱同学(GitHub id Walter)贡献,同时强化了 28 个模块,完善和修复了 22 个可能的安全问题,在文档和代码风格方面做了 9 处改进……具体有哪些,请大家下滑了解一下,关于分布式运行时用起来有多爽 ?效果怎么样?案例有哪些?欢迎来社区讨论! EventMesh架构图 EventMesh v1.7.0版本新增的主要特性: 支持工作流引擎与服务编排 EventMesh Workflow Engine在本次版本与大家见面,其设计的整体架构如下图所示: EventMe...
- 下一篇
radareorg/radare2 <5.8.0 存在 realloc 调用中的整数溢出漏洞
漏洞描述 radareorg/radare2 是一个开源的类 UNIX 逆向工程框架和命令行工具集。 radareorg/radare2 5.8.0 之前版本中的 core_anal_graph_label 方法中的 realloc 和 memcpy 函数存在整数溢出漏洞,在基于 DWARF 数据连接源代码行的过程中,生成的大小(32 位有符号整数)可能会溢出。realloc 和 memcpy 调用的大小不同,可能会导致在非预期位置写入。攻击者可利用此漏洞非法内存写入或造成程序崩溃。 漏洞名称 radareorg/radare2 <5.8.0 存在 realloc 调用中的整数溢出漏洞 漏洞类型 整数溢出或超界折返 发现时间 2022-12-11 漏洞影响广度 极小 MPS编号 MPS-2022-67371 CVE编号 CVE-2022-4398 CNVD编号 - 影响范围 radareorg/radare2@(-∞, 5.8.0) 修复方案 升级radareorg/radare2到 5.8.0 或更高版本 参考链接 https://www.oscs1024.com/hd/MPS...
相关文章
文章评论
共有0条评论来说两句吧...