用 go 写了个包装 shell 的客户端程序,支持跨平台 ( win / Linux / mac 等 ),分享并邀请大家体验。 - V2EX
2022-5-15 15:10:22 Author: v2ex.com(查看原文) 阅读量:72 收藏

效果( 就是在普通的 shell 命令前面加上 trzsz ):

trzsz tmux
trzsz /bin/bash
trzsz ssh x.x.x.x
trzsz.exe cmd
trzsz.exe ssh x.x.x.x

在 windows 的 cmd 或 powershell 中,也能运行 ssh 登录到远程服务器,并且支持在服务器上使用 tmux 等。不过,可能只支持 Windows 10 ,没在其他版本上测试过。

目的

在想拦截 shell 的输入和输出做一些事情的时候,我们可以写一个程序来拉起 shell 进程,然后就可以处理 shell 的输入和输出了。

我的目的是要实现类似 rz / sz 上传和下载的功能,不依赖于终端的支持,只要终端可以运行一个在本地的 cmd 或 bash 之类的 shell 就行。

难点

除了需要透传输入和输出之外,shell 还会涉及到终端 pty ,需要处理一些转义字符等。我在开源社区找到了一些不错的组件和代码,实现了支持多平台 ( 特别是 windows 有点复杂 )。有需要的朋友,可以直接抄代码。

项目

地址: https://github.com/trzsz/trzsz-go

如果对你有用,请点个 Star ,感谢你的支持。

用 trzsz 来运行 shell ,可以获得和直接运行完全一致的体验,支持 trz / tsz 上传和下载文件还在实现中 ( 一般周末才能抽空写点开源代码 )。


文章来源: https://v2ex.com/t/852915#reply2
如有侵权请联系:admin#unsafe.sh