3

我正在尝试为 Web 浏览器构建一个 SSH 客户端(类似于ajaxterm)。我已经构建了一个使用Paramiko的python 后端SSHClient.invoke_shell(term='vt100')和一个与前端(HTML + AJAX)通信的 Web 服务器。当我通过 SSH 通道发送命令时,系统工作并显示输出,但输出包括 VT100 转义序列。

如果我理解正确,我从 SSH 通道得到的任何东西都应该被解释为 24x80 终端窗口的命令?这意味着转义序列可能会改变颜色、清除屏幕、删除线条、改变线条的行为方式......(我在这里找到了一个很好的列表)这意味着我不能只清除它们?

我检查了 Ajaxterm 的源代码,但不知道如何使用 Terminal 类(所以我可以将它用于我的目的)。

问题:解释输出流并在浏览器中正确显示终端屏幕的最简单方法是什么?换句话说,是否有一个库可以解析输出并为我保留屏幕内容?

如果我误解了终端的内部工作原理,请告诉我。过去我对他们没有太多经验。:)

4

1 回答 1

4

几天前我试图做同样的事情。我没写完,但我找到了一些python终端仿真器库。

我选择pyte,它有一个干净的 API 并且易于使用。pyte 的自述文件末尾提供了执行相同工作的其他库的列表。

于 2011-10-06T13:58:57.423 回答