V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
LonnyWong
V2EX  ›  程序员

trzsz ( trz / tsz ) 是兼容 tmux 的 rz / sz,打磨了一整年,终于发布 1.0 正式版。

  •  4
     
  •   LonnyWong · 2022-12-11 03:58:14 +08:00 · 4787 次点击
    这是一个创建于 712 天前的主题,其中的信息可能已经有所发展或是发生改变。

    trzsz ( trz / tsz ) 始于 iTerm2 + tmux 用不了 rz / sz ,使用 Python 开发,兼容 tmux ,支持目录传输,支持拖动上传,支持进度条。github: https://github.com/trzsz/trzsz

    为了支持 web 页面使用 trzsz ( trz / tsz ) 上传和下载,以及支持 electron 开发的一系列终端( 如 tabby 、electerm ),开发了 js 版本 https://github.com/trzsz/trzsz.js

    为了支持更多的原生终端使用 trzsz ( trz / tsz ),开发了 go 版本 https://github.com/trzsz/trzsz-go

    新版本更好地支持跨平台( Mac 、Linux 和 Windows ),特别是优化了从 Mac 和 Linux 通过 ssh 登录到 Windows 服务器的场景。

    中文文档:https://trzsz.github.io/cn/

    39 条回复    2024-06-14 17:44:21 +08:00
    wsseo
        1
    wsseo  
       2022-12-11 05:55:07 +08:00
    支持 windows terminal 吗,怎么使用
    yechentide
        2
    yechentide  
       2022-12-11 07:33:06 +08:00 via iPhone
    有大佬能说下 rz 和 sz 是什么吗
    faketemp
        3
    faketemp  
       2022-12-11 08:19:02 +08:00 via iPhone   ❤️ 1
    @yechentide 不再额外需要 xftp 之类的工具 可以在 ssh 终端中直接下载 /上传文件
    ahu
        4
    ahu  
       2022-12-11 08:27:56 +08:00
    nice job! 👍
    kaneg
        5
    kaneg  
       2022-12-11 09:08:34 +08:00
    在 byobu 里还是不能用,卡在:::TRZSZ:TRANSFER:S:1.1.1:7072079962820
    neighbads
        6
    neighbads  
       2022-12-11 09:16:40 +08:00 via Android
    再次关注。vscode 啥时候能支持....
    idblife
        7
    idblife  
       2022-12-11 09:26:41 +08:00 via iPhone   ❤️ 1
    @yechentide
    自己 google 下吧
    LonnyWong
        8
    LonnyWong  
    OP
       2022-12-11 09:30:49 +08:00 via iPhone
    @wsseo 支持 Windows Terminal 的。

    1. 安装 scoop install trzsz
    2. ssh 登录远程服务器时,在前面加上 trzsz ,如 trzsz ssh [email protected]
    3. 在服务器安装 trzsz ,可参考 https://github.com/trzsz/trzsz-go
    4. 在服务器上执行 trz 上传,执行 tsz xxx 下载 xxx 文件。
    LonnyWong
        9
    LonnyWong  
    OP
       2022-12-11 09:38:48 +08:00 via iPhone
    @neighbads 问过 vscode 了,他们不打算开放 API ,没办法搞。
    另外,vscode 远程开发时,右键有上传和下载的功能的。
    LonnyWong
        10
    LonnyWong  
    OP
       2022-12-11 09:51:35 +08:00 via iPhone
    @kaneg 还没对 byobu 做适配,目前支持 tmux 。
    ruanimal
        11
    ruanimal  
       2022-12-11 10:06:49 +08:00
    trzsz.js 可以在油猴脚本里用吗? 想支持云厂商的 webshell 网页
    LonnyWong
        12
    LonnyWong  
    OP
       2022-12-11 10:15:40 +08:00 via iPhone
    @ruanimal trzsz.js 需要对浏览器和服务器之间的数据交互做“过滤”的,如果云厂商想支持就很容易,油猴可能不太好搞( 我不太熟 )。
    AkideLiu
        13
    AkideLiu  
       2022-12-11 11:44:13 +08:00 via iPhone
    🐮,这个问题困扰很久了。tabby+byobu 用户无奈只能平时只能 sftp ,一会去试试
    shakukansp
        14
    shakukansp  
       2022-12-11 12:46:48 +08:00
    在 iterm2 里面使用 trzsz-iterm2 提示 Please upgrade iTerm2 ?
    LonnyWong
        15
    LonnyWong  
    OP
       2022-12-11 13:39:21 +08:00 via iPhone
    @shakukansp 文本进度条要求 iTerm2 3.5 以上的版本,现在 iTerm2 最新的测试版可以用。

    iTerm2 3.4 可以用 zenity 进度条。

    期待 iTerm2 尽早发布 3.5 正式版。
    AkideLiu
        16
    AkideLiu  
       2022-12-11 14:58:58 +08:00   ❤️ 1

    回来回复一下 byobu + tabby 是能 work 的,我记得 byobu 可以选 tmux 作为后端的
    LonnyWong
        17
    LonnyWong  
    OP
       2022-12-11 15:30:08 +08:00
    我没用过 byobu ,乍一看还以为是独立于 tmux 和 screen 的第三种。

    感谢 @AkideLiu 的回复,原来 byobu 是基于 tmux 或 screen 的。

    我看了一下 byobu 的文档,只要服务器上安装了 tmux 就会默认使用 tmux ,也可以通过 byobu-select-backend 选项来指定,参考: https://manpages.ubuntu.com/manpages/kinetic/en/man1/byobu-select-backend.1.html

    @kaneg 你可以安装 tmux 再试试能不能用。
    ayang23
        18
    ayang23  
       2022-12-11 16:29:59 +08:00
    没想到还有这么好用的东西
    kaneg
        19
    kaneg  
       2022-12-11 18:03:04 +08:00
    @LonnyWong
    我试验了 tmux , 也是会卡住。难道是我的使用姿势不对? 我用的系统是 ubuntu 22.04, tmux 3.2a, 终端工具是 secureCRT.
    LonnyWong
        20
    LonnyWong  
    OP
       2022-12-11 18:22:08 +08:00 via iPhone
    @kaneg 这应该不是卡住,是因为不支持 SecureCRT ,它不是开源的,没办法扩展。

    客户端也要支持 trzsz 才可以的,例如 iTerm2 、tabby 和 electerm 等,其中 iTerm2 要做一点配置,tabby 要装一个插件,electerm 升级一下版本就行。

    一些原生的终端也是支持的,安装 https://github.com/trzsz/trzsz-go ,然后用 trzsz ssh xxx 登录远程服务器。如果 SecureCRT 支持本地 Shell ,从本地 Shell 中使用 trzsz ssh xxx 登录远程服务器,或许也可以。
    EvineDeng
        21
    EvineDeng  
       2022-12-11 18:36:31 +08:00
    这工具好,local 和 remote 都安装了 trzsz-go ,我本地 Konsole 中直接`trxsz ssh xxx`,不借助 tmux ,本地远端的 shell 都是 zsh ,也能上传下载,除了一个小问题:加-d 也不能拖拽文件。
    LonnyWong
        22
    LonnyWong  
    OP
       2022-12-11 21:10:24 +08:00 via iPhone
    @EvineDeng 你用的是什么终端?拖文件到终端时,有没有显示文件的绝对路径?

    另外,trzsz -d ssh xxx 这样登录服务器,才支持拖文件或目录上传的。
    EvineDeng
        23
    EvineDeng  
       2022-12-12 08:34:16 +08:00
    @LonnyWong 是这样登录的,Kosole+zsh ,直接显示的文件绝对路径。
    gniviliving
        24
    gniviliving  
       2022-12-12 09:02:02 +08:00
    支持 termius 吗,虽然 termius 自带 sftp ,但是感觉没 rzsz 命令好用,之前在 secureCRT 用 lrzsz ,但是在 termius 上用不了
    LonnyWong
        25
    LonnyWong  
    OP
       2022-12-12 09:20:57 +08:00 via iPhone
    @EvineDeng trzsz -d ssh xxx 登录时,会检测拖进来的绝对路径,符合规则的才触发上传。

    可以在 https://github.com/trzsz/trzsz-go 提个 issue ,发一下显示的绝对路径出来(前后如果有空格也要一起发出来),我看看是不是规则要调整一下。
    LonnyWong
        26
    LonnyWong  
    OP
       2022-12-12 09:31:08 +08:00 via iPhone
    @gniviliving 目前没有直接支持 Termius ,但可以在 Termius 的本地 shell 中试试 trzsz-go ,用 trzsz ssh xxx 登录远程服务器。

    我不知道 Termius 支不支持插件,如果支持的话,可能可以像 Tabby 那样搞一个: https://github.com/trzsz/tabby-trzsz
    EvineDeng
        27
    EvineDeng  
       2022-12-12 10:21:48 +08:00
    wsseo
        28
    wsseo  
       2022-12-13 14:56:27 +08:00
    通过 Windows terminal 新增 trzsz ssh [email protected] 上传速度只有 20KB/s

    frp.tar.gz [██████████████████████████████████████████████████████████████░░░░░░░░░] 87% | 8.00MB | 3.74MB/s | 00:00 ETA
    Saved frp.tar.gz to C:\Users\xxxx\Desktop
    下载倒是蛮快,这个进度条也有点问题,没到 100 就下载完成了。
    LonnyWong
        29
    LonnyWong  
    OP
       2022-12-13 15:15:46 +08:00
    @wsseo Windows 原生终端上传是很慢,感觉主要问题在于 Windows 的标准输入超级慢,给他们提 issue 了,但是好像没人看。

    没到 100% 完成,那也是真的下载完成了,你可以核对一下文件的大小和 MD5 。进度条的刷新并不是非常严格的,当你下载一个大一些的文件,显示效果会好一些。或者指定 -B 1k 来下载,进度条刷新也会好很多,但是速度会慢很多。

    在 Windows 中,使用 tabby ,或者 electerm 作为终端,上传和下载速度都好很多的,可以试试。
    kiritoyui
        30
    kiritoyui  
       2023-01-11 10:03:06 +08:00
    tabby 上使用 远程服务器无需安装 trzsz 直接使用 sz/rz 命令就能使用,iterm2 就必须要使用触发器 并且远程服务器需要安装 trzsz ,需要使用 tsz/trz 才能使用
    LonnyWong
        31
    LonnyWong  
    OP
       2023-01-11 10:09:49 +08:00 via iPhone
    @kiritoyui 当使用 tmux 时,rz / sz 是会有些问题的,trzsz 可以支持。
    kiritoyui
        32
    kiritoyui  
       2023-01-11 11:13:05 +08:00
    @LonnyWong 开发者你好,我没有使用 tmux ,我的疑问是:iterm 下使用是否能够像 tabby 那样,远程服务器无需安装 trzsz ,直接使用 sz/rz 即可(因为远程服务器太多,不能全部安装 trzsz)
    LonnyWong
        33
    LonnyWong  
    OP
       2023-01-11 11:34:24 +08:00 via iPhone
    @kiritoyui iTerm2 配置一个触发器也是可以支持 rz / sz 的,你网上搜一下,有很多教程的。我以前也是用那个,不过没有进程条,并且 tmux 时会卡死,所以后来开发了 trzsz 。
    kiritoyui
        34
    kiritoyui  
       2023-01-11 11:48:52 +08:00
    @LonnyWong iterm sz/rz 的触发器使用的是 iterm2-send-zmodem.shiterm2-recive-zmodem.sh 这两个脚本,我试一下将 rz/sz 的触发器脚本改成你这个看看是否可行
    LonnyWong
        35
    LonnyWong  
    OP
       2023-01-11 11:53:12 +08:00 via iPhone
    @kiritoyui 不行的,这是两个不同的东西。可以两个同时存在,同时支持 rz / sz 和 trz / tsz 。但是,不能代替另一个。
    kiritoyui
        36
    kiritoyui  
       2023-01-11 12:09:34 +08:00
    @LonnyWong 好的 明白了 好奇 tabby-trzsz 是怎么实现的 sz/rz 也行调用 trzsz
    LonnyWong
        37
    LonnyWong  
    OP
       2023-01-11 12:44:45 +08:00 via iPhone
    @kiritoyui tabby 本来就支持 rz / sz 的,不需要安装插件的。
    kiritoyui
        38
    kiritoyui  
       2023-01-11 15:42:16 +08:00
    @LonnyWong 感谢解惑 明白了
    xusheng
        39
    xusheng  
       160 天前
    我在 windows terminal 上使用了 tssh ,然后用 sz/rz, tsz/trz 传输完文件后,终端的焦点会丢失,即键盘输入什么都没反应,目前只能 ctrl+tab 切换窗口再切回来恢复焦点,大佬知道原因和触发方法么,是不是 sz/rz, tsz/trz 打开的资源管理器页面把焦点搞没了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   984 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:03 · PVG 05:03 · LAX 13:03 · JFK 16:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.