项目地址:https://github.com/trzsz/trzsz-go
版本:v0.1.8 支持目录传输,支持拖文件和目录上传。
1 、在 Ubuntu 用 apt 安装
sudo apt update && sudo apt install software-properties-common
sudo add-apt-repository ppa:trzsz/ppa && sudo apt update
sudo apt install trzsz
Debian 也可以用 ppa:trzsz/ppa
这个源,详情可参考 How to add PPA repositories in Debian
2 、在 Fedora 、CentOS 或 RHEL 用 yum 安装
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
3 、在 macOS 用 brew 安装
brew update
brew install trzsz-go
其实,在 Linux 下也以用 Homebrew 的。
4 、用法:
4.1 、客户端和服务端都安装好 trzsz
4.2 、在客户端使用 trzsz ssh xxx
登录
4.3 、在服务端使用 trz
上传,使用 tsz xxx
下载
增加了几种安装方式:
1、Debian 详见 https://github.com/trzsz/trzsz-go
2、Windows Scoop:
scoop bucket add extras
scoop install trzsz
3、ArchLinux 使用 yay 安装:
yay -Syu
yay -S trzsz
1
ByteCat 2022-07-02 14:05:39 +08:00 1
Windows scoop 没搜到,加一下吧
|
3
Trim21 2022-07-02 14:33:26 +08:00 via Android 1
已经在用 goreleaser 的话可以直接设置一下 goreleaser ,支持创建 scoop 仓库并且自动更新…
|
4
icepie 2022-07-02 14:34:11 +08:00
给 archlinux 也打包一下吧
|
6
ByteCat 2022-07-02 14:55:30 +08:00
另外希望有一个 apt 仓库~ 我基本都是用 Debian ,现在手动下载添加 path 的 😂
用还是挺好用的,支持 |
8
LonnyWong OP 合入 scoop 的 extras 要求 at least 100 stars and 50 forks ,现在 269 个 stars ,希望不要求 forks 达到 50 。
合入 scoop 的 main 的要求就更高了 at least 500 stars and 150 forks ,希望有一天能进去。 extras 的 PR 地址: https://github.com/ScoopInstaller/Extras/pull/8789 在合入之前,也可以这样安装: scoop install https://raw.githubusercontent.com/lonnywong/Scoop-Extras/master/bucket/trzsz.json 卸载方法:scoop uninstall trzsz |
10
LonnyWong OP @icepie 发布到 AUR 中了。
方法一,用 makepkg 安装: sudo pacman -S git base-devel git clone https://aur.archlinux.org/trzsz.git cd trzsz/ makepkg -sri 方案二,用 yay 安装( 需要先用 makepkg 来安装 yay ): sudo pacman -S git base-devel git clone https://aur.archlinux.org/yay.git cd yay/ makepkg -sri yay -S trzsz |
11
LonnyWong OP @ByteCat Debian 可以这样安装:
sudo apt install gpg ca-certificates sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7E51D1AD956055CA echo 'deb 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 |
12
LonnyWong OP @ByteCat Windows scoop 已经合入了,安装方式:
scoop bucket add extras scoop install trzsz 另外,Debian 的安装方式提示 apt-key 过时了,换了一种更安全的方式,详见 https://github.com/trzsz/trzsz-go 里的 README.md ( V2EX 贴不进来 ) |
13
ByteCat 2022-07-03 00:10:39 +08:00
@LonnyWong Good! Windows with scoop && Debian with apt 测试可用,Windows Terminal 也完全没有问题,很棒的项目,已 Star !
|
14
icepie 2022-07-03 02:04:14 +08:00
建议实现一下 bash zsh fish 等 shell 的补全
|
15
LonnyWong OP @icepie 经过 trzsz 登录后,shell 的补全能力没有丢失吧?你是指在哪里,怎么样使用时,没有补全?
|
16
icepie 2022-07-03 15:16:04 +08:00 1
例如我在 fish 使用, 输入 ssh 再按 tab 即可通过 ssh_config 补全已保存的连接信息
根据 fish 补全的文档: https://fishshell.com/docs/current/completions.html 我简单写了一下配置 ``` cat -p ~/.config/fish/completions/trzsz.fish 15:11:45 # fish completion for trzsz function __fish_trzsz_print_remaining_args set -l tokens (commandline -opc) (commandline -ct) set -e tokens[1] if test -n "$argv" and not string match -qr '^-' $argv[1] string join0 -- $argv return 0 else return 1 end end function __fish_complete_trzsz_subcommand set -l args (__fish_trzsz_print_remaining_args | string split0) __fish_complete_subcommand --commandline $args end # Complete the command we are executed under trzsz complete -c trzsz -x -a "(__fish_complete_trzsz_subcommand)" ``` 然后我输入 trzsz ssh 按 tab 就能和 单独输入 ssh 再 tab 一样实现补全了 十分感谢作者的开发, 这个只是个与程序本身无关的小细节, 不用太在意 可以参考 platformio 的实现: https://docs.platformio.org/en/latest/core/userguide/system/completion/index.html |
17
LonnyWong OP @icepie 感谢分享,我明白你的意思了。
如果要通用的话,trzsz ssh 是根据第二个参数来补全,trzsz -d ssh 是根据第三个参数来补全。在输入这些的时候,trzsz 还没有运行,trzsz 怎么样与 shell 进行沟通,让 shell 按第几个参数来做补全的?例如 shell 会在后台询问 trzsz ,接下来的补全策略是什么? |
18
LonnyWong OP @icepie 应该是要写一些 completion 的脚本,发布到什么平台,然后用户从那里来安装?
|
19
icepie 2022-07-04 02:39:46 +08:00
比如 platformio 是有一个参数可以 copy 这些 completion 到系统目录的
$ pio system completion install PlatformIO CLI completion has been installed for fish shell to ~/.config/fish/completions/pio.fish Please restart a current shell session 咱也可以集成在 cli 里 不需要啥特别的发布平台 |
20
LonnyWong OP @icepie 明白了。感觉可以为 trzsz 加一些参数来安装。例如:
trzsz --completion help trzsz --completion install trzsz --completion uninstall 可以自动识别出当前是什么 shell ,哪里有源代码可以参考? 如果你有空的话,欢迎你来一起搞,提个 PR 过来。到时一起讨论,可能做一点小调整,然后我就会合入。注意用你 github 的邮箱来提交代码,会把你列在贡献者列表中。 我也要上班,一般周末才有空搞。现在 js 版的功能落后了很多,还没空去写。 另外,我也在考虑用并行提高传输速度:现在是读文件和压缩,然后发送到远程(接收端反过来),这是串行的。可以做成并行的,在发送到远程的同时,可以做下一轮的读文件和压缩。因为实现比较复杂,并且如果网络很慢,读文件和压缩很快,这样的效果不会有多好的,所以一开始没有这样写。 |
21
everyx 2022-07-04 09:36:24 +08:00 1
|