我有兴趣编写一个基于 Web 的终端,它可以在 ubuntu 终端中执行和自动完成命令。
我摆弄了 Anyterm http://www.anyterm.org,它在后端服务器上使用 ROTE:“用于 VT102 终端仿真的简单 C 库”,在终端 ui 上使用 javascript/html。问题是我不能让它在同一个窗口中打开两个终端。
在做了一些研究之后,我决定在 python 中编写一个终端服务器/伪终端(以正确的术语为准),它可以:
- 在 ubuntu 终端执行命令(如 ls、grep 等...)
- 自动完成命令(如 $gdi (pressed tab) $gedit)
- 并同时打开多个终端实例(当在一个终端中键入 ls 时,另一个终端不会将 ls 识别为自另一个终端会话以来的最后一个命令)
我发现使用pty python 模块我可以编写一个伪终端,但是我是 python 的新手,我什至无法让该页面上的示例正常工作。
我打算让 python 脚本使用我将编写的 javascript/html 终端 ui 为 http 服务器提供服务(这是我想为这个项目选择 python 的主要原因)。然后我想让 web ui 与后端终端“服务器”对话并将结果返回给 web ui。
如果你能指出我正确的方向,也许告诉我应该使用哪个模块 - 如果不是 pty - 并给我一些关于如何编写 python 伪终端服务器的想法,我将不胜感激。
我知道 javascript/php 并且熟悉 bash 脚本 - 此时我可以选择基于 C 或基于 python 的后端服务器,python 是否适合这个项目?
注意:我打算编写一个使用 ajax post 或 get 方法从后端服务器检索终端输出的 ui。