【发布时间】:2011-12-18 09:34:46
【问题描述】:
我有兴趣编写一个基于 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 module我可以写一个伪终端 但是我是 python 新手,我什至无法让该页面上的示例正常工作。
我打算让 python 脚本使用我将编写的 javascript/html 终端 ui 为 http 服务器提供服务(这是我想为这个项目选择 python 的主要原因)。然后我想让 web ui 与后端终端“服务器”对话并将结果返回给 web ui。
如果你能指出正确的方向,也许告诉我应该使用哪个模块 - 如果不是 pty - 并给我一些关于如何编写 python 伪终端服务器的想法,我将不胜感激。
我知道 javascript/php 并且熟悉 bash 脚本——此时我可以选择基于 C 或基于 python 的后端服务器,python 是否适合这个项目?
注意:我打算编写一个使用 ajax post 或 get 方法从后端服务器检索终端输出的 ui。
【问题讨论】:
-
@Ignacio Vazquez-Abrams 非常欢迎您编辑和更正术语。
-
但是你想要的东西会被稀释。我建议你看看每个人的目的和职责,然后决定你的项目需要在哪里拆分。
标签: javascript python unix terminal pty