我正在尝试为web浏览器构建一个SSH客户端(类似于ajaxterm)。我已经构建了一个使用Paramiko的SSHClient.invoke_shell(term='vt100')的python后端和一个与前端(HTML + AJAX)通信的web服务器。当我通过SSH通道发送命令时,系统可以工作并显示输出,但输出包括VT100转义序列。
如果我理解正确的话,我从SSH通道得到的任何东西都应该被解释为24x80终端窗口的命令?这意味着转义序列可能会改变颜色,清除屏幕,删除线条,改变线条的行为方式...(我找到了一个很好的列表here)这意味着我不能直接把它们清除掉吗?
我查看了Ajaxterm的源代码,但不知道如何使用Terminal类(所以我可以使用它)。
问题:解释输出流并在浏览器中正确显示终端屏幕的最简单方法是什么?换句话说,有没有一个库可以解析输出并为我保留屏幕内容?
如果我误解了终端的内部工作原理,请告诉我。我过去对他们没有太多的经验。:)
发布于 2011-10-06 21:58:57
几天前我也试过做同样的事情。我没有完成它,但我发现了一些python终端模拟器库。
我选择了pyte,它有一个干净的API,很容易使用。pyte的自述文件末尾提供了执行相同工作的其他库的列表。
https://stackoverflow.com/questions/7674295
复制相似问题