2

私はubuntuターミナルでコマンドを実行してオートコンプリートできるWebベースのターミナルを書くことに興味があります。

私は、ROTEを使用するAnyterm http://www.anyterm.orgをいじりました:バックエンドサーバーでの「VT102ターミナルエミュレーション用の単純なCライブラリ」、およびターミナルui用のjavascript/html。問題は、同じウィンドウで2つの端末を開くことができないことでした。

いくつかの調査を行った後、私はターミナルサーバー/擬似端末(正しい用語のいずれか)をPythonで作成することにしました。これは次のことができます。

  • ubuntuターミナルでコマンドを実行します(ls、grepなど)
  • コマンドをオートコンプリートします($ gedi(押されたタブ)$ geditなど)
  • ターミナルの複数のインスタンスを同時に開いてください(一方にlsと入力すると、もう一方のターミナルは、別のターミナルセッション以降の最後のコマンドとしてlsを認識しません)

私は、pty pythonモジュールを使用して疑似端末を作成できることを発見しましたが、Pythonは初めてであり、そのページの例を機能させることさえできませんでした。

私は、Pythonスクリプトでhttpサーバーにjavascript / htmlターミナルUIを提供することを計画しています(これが、このプロジェクトでPythonを選択したかった主な理由です)。次に、Web UIをバックエンドターミナル「サーバー」と通信させ、結果をWebUIに戻します。

あなたが私を正しい方向に向けることができれば、多分私がどのモジュールを使うべきかを教えてください-ptyではないにしても-そして私がそれをいただければ幸いです。

私はjavascript/phpを知っており、bashスクリプトに精通しています-この時点で、CベースまたはPythonベースのバックエンドサーバーを使用できますが、Pythonはこのプロジェクトに適していますか?

注:バックエンドサーバーからターミナル出力を取得するためにajaxpostまたはgetメソッドを使用するUIを作成することを計画しています。

4

2 に答える 2

4

最初に基本的な用語を学ぶ必要があります。シェルは、 grep "foo" abc.txtなどの入力コマンド ラインを解釈するプログラムです端末エミュレーターは、端末を模倣するプログラムです。ターミナルは、1970 年代に UNIX メインフレームにアクセスするために使用された、ディスプレイとキーボードを備えたデバイスです。疑似端末ptyは、たとえば「実際の端末デバイス」(tty1) とは対照的に、端末エミュレータをサポートするデバイス ノードです。

これで、 bash やダッシュの代わりにターミナルで動作するshellを作成できます。または、インターネット経由で使用できるターミナル エミュレーターを作成することもできます。その中で既存のシェルを実行できます。どちらも、それ自体が挑戦的なタスクです。

Python のドキュメントはあまり役に立ちません。最初に、これらの概念をもっとグーグルで検索することから始めることをお勧めします。Python のリファレンスだけでなく、C、C++ も同様です。

最後に、シェルで Emacs や nano などの高度なプログラムを実行する場合は、pty モジュールを使用します。

于 2011-10-30T22:34:55.857 に答える
0

同様のことをした友人がいましたが、彼はGoogleチャットでそれを行いました。どれだけ役立つかはわかりませんが、xmpp(python modual)を見てください。彼のソース コード: chatIO 私は彼と一緒に仕事をしたことはありませんが、彼にとって Good Luck を使うのは本当に簡単でした。

于 2011-10-30T22:36:42.550 に答える