Skip to content

Latest commit

 

History

History
264 lines (165 loc) · 9.12 KB

README.cn.md

File metadata and controls

264 lines (165 loc) · 9.12 KB

trzsz-go ( trz / tsz ) - 推荐 Go 版 trzsz

MIT License GitHub Release WebSite 中文文档

trzsz-go 使所有支持本地 shell 的终端都支持 trzsz ( trz / tsz —— 和 rz / sz 类似、兼容 tmux )。

⭐ 推荐在服务器上使用 go 版 trzsz,在本地电脑使用 trzsz-ssh ( tssh )

有关 trzsz ( trz / tsz ) 更详细的文档,请查看 https://trzsz.github.io/cn

安装方法

  • Ubuntu 可用 apt 安装

    sudo apt install trzsz
    sudo apt update && sudo apt install software-properties-common
    sudo add-apt-repository ppa:trzsz/ppa && sudo apt update
    
    sudo apt install trzsz
  • Debian 可用 apt 安装

    sudo apt install trzsz
    sudo apt install curl gpg
    curl -s 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x7074ce75da7cc691c1ae1a7c7e51d1ad956055ca' \
        | gpg --dearmor -o /usr/share/keyrings/trzsz.gpg
    echo 'deb [signed-by=/usr/share/keyrings/trzsz.gpg] https://ppa.launchpadcontent.net/trzsz/ppa/ubuntu jammy main' \
        | sudo tee /etc/apt/sources.list.d/trzsz.list
    sudo apt update
    
    sudo apt install trzsz
  • Linux 可用 yum 安装

    sudo yum install trzsz
    • 国内推荐使用 wlnmp 源,安装 trzsz 只需要添加 wlnmp 源( 配置 epel 源不是必须的 ):

      curl -fsSL "https://sh.wlnmp.com/wlnmp.sh" | bash
      
      sudo yum install trzsz
    • 也可使用 gemfury 源( 只要网络通,所有操作系统通用 )

      echo '[trzsz]
      name=Trzsz Repo
      baseurl=https://yum.fury.io/trzsz/
      enabled=1
      gpgcheck=0' | sudo tee /etc/yum.repos.d/trzsz.repo
      
      sudo yum install trzsz
  • ArchLinux 可用 yay 安装

    yay -S trzsz
    yay -Syu
    yay -S trzsz
  • MacOS 可用 homebrew 安装

    brew install trzsz-go
    brew update
    brew install trzsz-go
  • Windows 可用 scoop / winget / choco 安装

    scoop install trzsz / winget install trzsz / choco install trzsz
    scoop install trzsz
    winget install trzsz
    choco install trzsz
  • 用 Go 直接安装( 要求 go 1.20 以上 )

    go install github.com/trzsz/trzsz-go/cmd/...@latest
    go install github.com/trzsz/trzsz-go/cmd/trz@latest
    go install github.com/trzsz/trzsz-go/cmd/tsz@latest
    go install github.com/trzsz/trzsz-go/cmd/trzsz@latest

    安装后,trzsz 程序一般位于 ~/go/bin/ 目录下( Windows 一般在 C:\Users\your_name\go\bin\ )。

  • 用 Go 自己编译( 要求 go 1.20 以上 )

    sudo make install
    git clone --depth 1 https://github.com/trzsz/trzsz-go.git
    cd trzsz-go
    make
    sudo make install
  • 可从 GitHub Releases 中下载,国内可从 Gitee 发行版 中下载,解压并加到 PATH 环境变量中。

使用方法

在本地电脑使用

  • 在命令前添加 trzsz,就可以支持 trzsz ( trz / tsz ) 上传和下载了,如:

    trzsz bash
    trzsz PowerShell
    trzsz ssh x.x.x.x
  • 在命令前添加 trzsz --dragfile,就可以启用拖拽上传功能,如:

    trzsz -d ssh x.x.x.x
    trzsz --dragfile ssh x.x.x.x

在跳板机上使用

  • 如果在跳板机上使用 tmux,则需要再使用 trzsz --relay ssh 登录远程服务器,如:

    trzsz ssh jump_server
    tmux
    trzsz --relay ssh remote_server

在服务器上使用

  • 与 lrzsz ( rz / sz ) 类似,使用 trz 命令上传文件,使用 tsz /path/to/file 命令下载文件。

  • 有关 trzsz 更详细的文档,请查看 https://trzsz.github.io/cn/

使用建议

  • 为了使用方便,可以设置 alias ,例如 alias ssh="trzsz ssh",又或者 alias ssh="trzsz -d ssh" 支持拖文件上传。

  • 如果在本地电脑使用 tmux,先不带 trzsz 运行 tmux,然后再使用 trzsz ssh 登录远程服务器。

支持 Zmodem

  • 使用 -z--zmodem 启用 rz / sz 功能,例如 trzsz -z ssh remote_server

  • 需要在客户端( 本地电脑 )上安装 lrzsz,例如 brew install lrzszapt install lrzsz 等。

  • trzsz --zmodem ssh xxx 不兼容 Windows,你可以使用 trzsz-ssh ( tssh ) 代替,如 tssh --zmodem xxx

  • 关于进度条,己传文件大小和传输速度不是精确值,会有一些偏差,它的主要作用只是指示传输正在进行中。

剪贴板集成

  • 使用 -o--osc52 启用剪贴板集成功能,例如 trzsz -o ssh remote_server

  • 启用剪贴板集成功能后,支持远程服务器通过 OSC52 序列写入本地剪贴板。

  • 在 Linux 系统,剪贴板集成功能需要安装 xclipxsel 命令。

可配置项

trzsz 使用的配置文件是 ~/.trzsz.conf( Windows 是 C:\Users\your_name\.trzsz.conf ),如:

DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/
DragFileUploadCommand = trz -y
ProgressColorPair = B14FFF 00FFA3
  • 如果 DefaultUploadPath 不为空,上传选择文件时会默认打开此目录。

  • 如果 DefaultDownloadPath 不为空,下载文件时会自动下载到此目录( 不需要再弹窗选择路径 )。

  • DragFileUploadCommand 的默认值是 trz,如果想上传时覆盖现有文件可配置成 trz -y,如果想使用 rz 上传可配置成 rz

  • ProgressColorPair 配置进度条的颜色,需要配置 2 个颜色并且不要带 #,进度条将从第一个颜色渐变到第二个颜色。

常见问题

  • 如果 MSYS2Git Bash 遇到错误 The handle is invalid

    • trzsz 前面加上 winpty 即可,如 winpty trzsz ssh x.x.x.x 这样登录服务器。
    • Git Bash 已默认安装有 winptyMSYS2 需要手工安装 pacman -S winpty
  • MSYS2Cygwin 等,不支持直接使用 /usr/bin/ssh 那个 ssh,可能会传输失败。需要使用 Windows 自带的 OpenSSH

    • MSYS2 中用法 winpty trzsz /c/Windows/System32/OpenSSH/ssh.exe x.x.x.x
    • Cygwin 中用法 trzsz "C:\Windows\System32\OpenSSH\ssh.exe" x.x.x.x
    • ⭐ 推荐使用 trzsz-ssh ( tssh ),tssh 等同于 trzsz ssh
  • 拖文件或目录到终端后,没有自动上传?

    • 检查 ssh 登录时有没有加上 --dragfile 选项,如 trzsz --dragfile ssh x.x.x.x
    • 检查服务器上有没有安装 trzsztrz 应在某个 PATH 路径下。
    • 在 Windows 中,检查标题有没有管理员三个字,以管理员运行 时可能会由于 UAC 设置的原因导致拖不了文件。
    • 在 Windows Terminal 中,需要将文件或目录拖到左上角,显示粘贴文件路径 时再放开。
    • 在 Windows 的 cmdPowerShell 中,一次只能拖一个文件或目录,拖多个也只有鼠标正对着的那个是生效的。

开发指引

想要让你自己开发的 ssh 客户端支持 trzsz ?请参考 go ssh client example

录屏演示

Windows 系统

windows trzsz ssh

Ubuntu 系统

ubuntu trzsz ssh

拖拽上传

drag files ssh

联系方式

有什么问题可以发邮件给作者 lonnywong@qq.com,也可以提 Issues 。欢迎加入 QQ 群:318578930。

赞助打赏

❤️ 赞助 trzsz ❤️,请作者喝杯咖啡 ☕ ? 谢谢您们的支持!