Javascript 用python为基于web的ubuntu终端编写伪终端

Javascript 用python为基于web的ubuntu终端编写伪终端,javascript,python,unix,terminal,pty,Javascript,Python,Unix,Terminal,Pty,我对编写一个基于web的终端感兴趣,它可以在ubuntu终端中执行和自动完成命令 我在后端服务器上使用了死记硬背的术语:“用于VT102终端仿真的简单C库”,在终端ui上使用了javascript/html。问题是我不能让它在同一个窗口中打开两个终端 在做了一些研究之后,我决定用python编写一个终端服务器/伪终端(以正确的术语为准),它可以: 在ubuntu终端中执行命令(如ls、grep等) 自动完成命令(如$gedi(按tab键)$gedit) 并同时打开多个终端实例(当在其中一个终端

我对编写一个基于web的终端感兴趣,它可以在ubuntu终端中执行和自动完成命令

我在后端服务器上使用了死记硬背的术语:“用于VT102终端仿真的简单C库”,在终端ui上使用了javascript/html。问题是我不能让它在同一个窗口中打开两个终端

在做了一些研究之后,我决定用python编写一个终端服务器/伪终端(以正确的术语为准),它可以:

  • 在ubuntu终端中执行命令(如ls、grep等)
  • 自动完成命令(如$gedi(按tab键)$gedit)
  • 并同时打开多个终端实例(当在其中一个终端中键入ls时,另一个终端不会将ls识别为自其另一个终端会话以来的最后一个命令)
我发现我可以用它来写一个伪终端 然而,我是python新手,我甚至无法让该页面上的示例正常工作

我计划让python脚本为http服务器提供我将编写的javascript/html终端ui(这是我想为这个项目选择python的主要原因)。然后我想让WebUI与后端终端“服务器”对话,并将结果返回给WebUI

如果你能给我指出正确的方向,也许可以告诉我应该使用哪个模块——如果不是pty——并给我一些关于如何编写python伪终端服务器的想法,我将不胜感激

我了解javascript/php,熟悉bash脚本——现在我可以选择基于C或python的后端服务器,python适合这个项目吗


注意:我计划编写一个使用ajax post或get方法从后端服务器检索终端输出的ui。

您需要先学习基本术语。shell是解释输入命令行的程序,例如grep“foo”abc.txt。终端仿真器是模拟终端的程序。终端是一种带有显示器和键盘的设备 20世纪70年代用于访问UNIX大型机。伪终端pty是支持终端模拟器的设备节点,例如与“真实终端设备”(tty1)相反

现在,您可以构建一个shell,它可以在终端中工作,而不是bash或dash;或者,您可以构建一个可在互联网上使用的终端仿真器;您可以在其中运行任何现有的shell。两者都是具有挑战性的任务

Python文档没有多大用处,我建议您首先从Google中获取更多的概念——不仅是Python引用,而且是C,C++。


最后,如果您想在shell中运行Emacs或nano或其他高级程序,您需要使用pty模块。

我有一个朋友也做了类似的事情,但他是通过Google chat完成的,我不知道这会有多大帮助,但看看xmpp(python模块)也许会对您有所帮助,甚至这里还有他的源代码链接: 我没有和他一起工作,但对他来说这真的很容易使用
祝你好运。@Ignacio Vazquez Abrams非常欢迎你编辑和更正术语。但是你想要的东西会被冲淡。我建议您查看每个项目的目的和职责,并确定项目需要拆分的位置。