内容简介:tmux 不支持 rz / sz ,于是有一个兼容 tmux 的 trz / tsz ( trzsz ), 可以与 iTerm2 一起用,还有一个不错的进度条。 已发布 0.3.1 版本: 1、支持 ctrl + c 优雅退出。 2、支持 kill -SIGTERM 优雅终止。 为什...
tmux 不支持 rz / sz ,于是有一个兼容 tmux 的 trz / tsz ( trzsz ),
可以与 iTerm2 一起用,还有一个不错的进度条。
已发布 0.3.1 版本:
1、支持 ctrl + c 优雅退出。
2、支持 kill -SIGTERM 优雅终止。
为什么开发 trzsz ?
登录远程电脑时用 tmux 保持会话,但 tmux 不支持用 rz / sz 上传和下载文件,这就很不方便了。
重新造一个 rz / sz 比修改 tmux 相对简单很多,并且可以加个进度条,体验上会好很多。
安装指南
远程服务器安装 trzsz-svr
sudo python3 -m pip install --upgrade trzsz-libs trzsz-svr
- 同样也支持 Python 2:
sudo pip install --upgrade trzsz-libs trzsz-svr
- 没有
sudo
权限也可以安装,但是要将安装路径 ( 可能是~/.local/bin
) 添加到 PATH 环境变量中。 - 安装后执行
trz -v
或tsz -v
,如果输出 trzsz 的版本号就是安装成功了,否则检查前面安装的输出是不是有错误。
本地 macOS 安装 trzsz-iterm2
sudo python3 -m pip install --upgrade trzsz-libs trzsz-iterm2
- 同样也支持 Python2:
sudo pip install --upgrade trzsz-libs trzsz-iterm2
- 安装后执行
which trzsz-iterm2
,如果输出/usr/local/bin/trzsz-iterm2
就是安装成功了,如果不是:- 执行
which trzsz-iterm2
没有输出,检查前面安装的输出是不是有错误。 - 执行
which trzsz-iterm2
输出另一个路径,可以建一个软链接:
sudo ln -sv $(which trzsz-iterm2) /usr/local/bin/trzsz-iterm2
- 执行
iTerm2 配置触发器
打开 Preferences -> Profiles -> Advanced -> Triggers -> Edit
,如下配置:
Name | Value | Note |
---|---|---|
Regular Expression | :(:TRZSZ:TRANSFER:[SR]:\d+\.\d+\.\d+:\d+) |
前后无空格 |
Action | Run Silent Coprocess |
|
Parameters | /usr/local/bin/trzsz-iterm2 \1 |
前后无空格 |
Enabled | ✅ | 选中 |
-
不要选中最下面的
Use interpolated strings for parameters
。 -
不同 Profile 的 Trigger 是互相独立的,也就是每个用到的 Profile 都要进行配置。
-
iTerm2 Trigger 的配置允许输入多行,但只显示一行,注意不要复制了一个换行符进去。
本地 macOS 安装 zenity
安装在 /usr/local/bin/zenity
就可以显示进度条,不安装也可以正常使用。
brew install ncruces/tap/zenity
- 如果
Mac M1
安装失败,可以试试用go
进行编译安装:brew install go go install 'github.com/ncruces/zenity/cmd/zenity@latest' sudo cp ~/go/bin/zenity /usr/local/bin/zenity
- 安装后执行
which zenity
,如果输出/usr/local/bin/zenity
就是安装成功了,如果不是:- 执行
which zenity
没有输出,检查前面安装的输出是不是有错误。 - 执行
which zenity
输出另一个路径,可以建一个软链接:
sudo ln -sv $(which zenity) /usr/local/bin/zenity
- 执行
使用指南
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
选项 ) 转义所有已知的控制字符。
-B
缓冲区大小
trz -B 10k
或 tsz -B 2M xxx
等,设置缓存区大小 ( 默认 1M )。太小会导致传输速度慢,太大会导致进度条更新不及时。
-t
超时时间
trz -t 10
或 tsz -t 30 xxx
等,设置超时秒数 ( 默认 100 秒 )。在超时时间内,如果无法传完一个缓冲区大小的数据则会报错并退出。设置为 0 或负数,则永不超时。
异常处理方法
- 如果
tmux
不是运行在远程服务器上,而是运行在本地 mac 上,或者运行在中间的跳板机上。- 因为
trzsz
在远程服务器上找不到tmux
进程,需要使用tmux -CC
控制模式才可以。 - 关于
tmux -CC
控制模式的用法,请参考 iTerm2 与 tmux -CC 集成。
- 因为
- 如果出现了错误,且
trzsz
挂住不能动了:- 按组合键
command + option + shift + r
停止 iTerm2 Coprocesses。 - 按组合键
control + c
停止服务器上的trz
或tsz
进程。
- 按组合键
- 如果
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 '
- 可以试试在
屏幕截图
上传文件示例
下载文件示例
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Pike 4.0 版本发布,类似 Varnish 的 HTTP 缓存服务器
- 如何在低版本的 Spring 中快速实现类似自动配置的功能
- 类似Github的webhook实现
- 类似 Qt 的 GOSP 发布修复更新
- ASP实现类似hashMap功能的类
- 使用 Reactor 完成类似 Flink 的操作
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Numerical Methods and Methods of Approximation in Science and En
Karan Surana / CRC Press / 2018-10-31
ABOUT THIS BOOK Numerical Methods and Methods of Approximation in Science and Engineering prepares students and other readers for advanced studies involving applied numerical and computational anal......一起来看看 《Numerical Methods and Methods of Approximation in Science and En》 这本书的介绍吧!