在原生終端實(shí)現(xiàn)類似 rz鬓梅、sz 上傳下載文件與目錄的功能

trzsz ( trz / tsz ) 是一個(gè)兼容 tmux 的文件傳輸工具溯祸,和 lrzsz ( rz / sz ) 類似坟比,并且有進(jìn)度條和支持目錄傳輸。

GitHub開(kāi)源地址: https://github.com/trzsz/trzsz-go

trzsz-go 使所有支持本地 shell 的終端都支持 trzsz ( trz / tsz —— 和 rz / sz 類似妻枕、兼容 tmux )僻族。

? 推薦在服務(wù)器上使用 go 版 trzsz,在本地電腦使用 trzsz-ssh ( tssh )屡谐。

有關(guān) trzsz ( trz / tsz ) 更詳細(xì)的文檔述么,請(qǐng)查看 https://trzsz.github.io/cn

安裝方法

  • 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 可用 apt 安裝

    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 安裝

    • 國(guó)內(nèi)推薦使用 wlnmp 源愕掏,安裝 trzsz 只需要添加 wlnmp 源( 配置 epel 源不是必須的 ):

      curl -fsSL "https://sh.wlnmp.com/wlnmp.sh" | bash
      
      sudo yum install trzsz
      
    • 也可使用 gemfury 源( 只要網(wǎng)絡(luò)通度秘,所有操作系統(tǒng)通用 )

      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 -Syu
    yay -S trzsz
    
  • MacOS 可用 homebrew 安裝

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

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

    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 以上 )

    git clone --depth 1 https://github.com/trzsz/trzsz-go.git
    cd trzsz-go
    make
    sudo make install
    
  • 可從 GitHub Releases 中下載剑梳,國(guó)內(nèi)可從 Gitee 發(fā)行版 中下載唆貌,解壓并加到 PATH 環(huán)境變量中。

使用方法

在本地電腦使用

  • 在命令前添加 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
    

在跳板機(jī)上使用

  • 如果在跳板機(jī)上使用 tmux,則需要再使用 trzsz --relay ssh 登錄遠(yuǎn)程服務(wù)器粱侣,如:

    trzsz ssh jump_server
    tmux
    trzsz --relay ssh remote_server
    

在服務(wù)器上使用

  • 與 lrzsz ( rz / sz ) 類似羊壹,使用 trz 命令上傳文件,使用 tsz /path/to/file 命令下載文件齐婴。

  • 有關(guān) trzsz 更詳細(xì)的文檔油猫,請(qǐng)查看 https://trzsz.github.io/cn/

使用建議

  • 為了使用方便柠偶,可以設(shè)置 alias 情妖,例如 alias ssh="trzsz ssh",又或者 alias ssh="trzsz -d ssh" 支持拖文件上傳诱担。

  • 如果在本地電腦使用 tmux毡证,先不帶 trzsz 運(yùn)行 tmux,然后再使用 trzsz ssh 登錄遠(yuǎn)程服務(wù)器蔫仙。

可配置項(xiàng)

trzsz 使用的配置文件是 ~/.trzsz.conf( Windows 是 C:\Users\your_name\.trzsz.conf )料睛。注意路徑必須包含 / 結(jié)尾,如:

DefaultUploadPath =
DefaultDownloadPath = /Users/username/Downloads/
  • 如果 DefaultUploadPath 不為空摇邦,上傳選擇文件時(shí)會(huì)默認(rèn)打開(kāi)此目錄恤煞。

  • 如果 DefaultDownloadPath 不為空,下載文件時(shí)會(huì)自動(dòng)下載到此目錄( 不需要再?gòu)棿斑x擇路徑 )施籍。

支持 Zmodem

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

  • 需要在客戶端( 本地電腦 )上安裝 lrzsz丑慎,例如 brew install lrzsz喜喂、apt install lrzsz 等。

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

  • 關(guān)于進(jìn)度條铛绰,己傳文件大小和傳輸速度不是精確值诈茧,會(huì)有一些偏差,它的主要作用只是指示傳輸正在進(jìn)行中捂掰。

常見(jiàn)問(wèn)題

  • 如果 MSYS2Git Bash 遇到錯(cuò)誤 The handle is invalid敢会。

    • trzsz 前面加上 winpty 即可曾沈,如 winpty trzsz ssh x.x.x.x 這樣登錄服務(wù)器。
    • Git Bash 已默認(rèn)安裝有 winpty鸥昏,MSYS2 需要手工安裝 pacman -S winpty塞俱。
  • MSYS2Cygwin 等,不支持直接使用 /usr/bin/ssh 那個(gè) ssh吏垮,可能會(huì)傳輸失敗障涯。需要使用 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遗嗽。
  • 拖文件或目錄到終端后粘我,沒(méi)有自動(dòng)上傳?

    • 檢查 ssh 登錄時(shí)有沒(méi)有加上 --dragfile 選項(xiàng)痹换,如 trzsz --dragfile ssh x.x.x.x 征字。
    • 檢查服務(wù)器上有沒(méi)有安裝 trzsztrz 應(yīng)在某個(gè) PATH 路徑下娇豫。
    • 在 Windows 中匙姜,檢查標(biāo)題有沒(méi)有管理員三個(gè)字,以管理員運(yùn)行 時(shí)可能會(huì)由于 UAC 設(shè)置的原因?qū)е峦喜涣宋募?/li>
    • 在 Windows Terminal 中锤躁,需要將文件或目錄拖到左上角搁料,顯示粘貼文件路徑 時(shí)再放開(kāi)。
    • 在 Windows 的 cmdPowerShell 中系羞,一次只能拖一個(gè)文件或目錄郭计,拖多個(gè)也只有鼠標(biāo)正對(duì)著的那個(gè)是生效的。

開(kāi)發(fā)指引

想要讓你自己開(kāi)發(fā)的 ssh 客戶端支持 trzsz 椒振?請(qǐng)參考 go ssh client example昭伸。

錄屏演示

Windows 系統(tǒng)

windows trzsz ssh

Ubuntu 系統(tǒng)

ubuntu trzsz ssh

拖拽上傳

drag files ssh
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市澎迎,隨后出現(xiàn)的幾起案子庐杨,更是在濱河造成了極大的恐慌,老刑警劉巖夹供,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灵份,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡哮洽,警方通過(guò)查閱死者的電腦和手機(jī)填渠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人氛什,你說(shuō)我怎么就攤上這事莺葫。” “怎么了枪眉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵捺檬,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我贸铜,道長(zhǎng)堡纬,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任萨脑,我火速辦了婚禮隐轩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘渤早。我一直安慰自己,他們只是感情好瘫俊,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布鹊杖。 她就那樣靜靜地躺著,像睡著了一般扛芽。 火紅的嫁衣襯著肌膚如雪骂蓖。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天川尖,我揣著相機(jī)與錄音登下,去河邊找鬼。 笑死叮喳,一個(gè)胖子當(dāng)著我的面吹牛被芳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播馍悟,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼畔濒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了锣咒?” 一聲冷哼從身側(cè)響起侵状,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎毅整,沒(méi)想到半個(gè)月后趣兄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡悼嫉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年艇潭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暴区,死狀恐怖闯团,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仙粱,我是刑警寧澤房交,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站伐割,受9級(jí)特大地震影響候味,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜隔心,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一白群、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧硬霍,春花似錦帜慢、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至拜轨,卻和暖如春抽减,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背橄碾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工卵沉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人法牲。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓史汗,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親皆串。 傳聞我的和親對(duì)象是個(gè)殘疾皇子淹办,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容