問題タブ [terminal-emulator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JSFアプリケーションでの対話型端末エミュレーション
JSF(Primefaces)/ Spring / Hibernateに裏打ちされた(基本的にデータマイニング)Webアプリケーションを開発しています。次のステップでは、Webアプリケーションがユーザーを要求されたホストにSSHで接続できるように、ある種のターミナルエミュレーションを作成する必要があります。
この質問の目的は、私たちの要件に適したテクノロジーを見つけることです。現在、Javaアプレットとjnlpを使用して概念実証を行っていますが、それらの制限/可能性を事前に確認するのに十分なほど深く理解していません。
ユースケース:(プロジェクト仕様から簡略化):
Javaアプレットでエミュレーションを行うと仮定しましょう。p:selectOneメニュー( hostMenu)、p:dataTable(scriptTable )、およびアプレットを含む単純なWebページを想像してみてください。HostMenuアイテムは、サーバーURL、ログイン、およびパスワードを含むオブジェクトによってサポートされています。データをアプレットにコピーしてSSH接続を確立する選択変更トリガーイベント。
これでscriptTableに、ユーザーが定義した単純な事前定義されたスクリプトがあります。スクリプトは本当に単純なものと考えてください(Linuxマシンのls -lなど)。テーブルのダブルクリックイベントは、アプレットのsshセッションでスクリプトを実行します。
その他の要件と契約上の制限
- ssh接続は(サーバーではなく)クライアントコンピューターで実行する必要があります
- エミュレーションは完全にインタラクティブである必要があります(特に、Linuxマシンでは、TABキーのオートコンプリート)
- Webページでは、AJAXリクエストはアプレットをリセットしません(リクエスト前にマシンに接続されたままになります)
すべての応答が評価されます。applets/jnlp以外のテクノロジーもそうです。たとえば、JSFから外部エミュレーター(Putty、Linuxコンソール)と相互作用する可能性があることがわかっている場合は、それらを使用できます。
java - Javaターミナルエミュレータ
vt100ターミナルをエミュレートするライブラリまたはクラスを知っている人はいますか(グラフィカルかどうかは関係ありません)。基本的に必要なのは、vt100端末のロジックを実装するクラスです(「削除」コードを受信すると削除関数が呼び出される場合や、GUIベースの場合は1文字が削除されます)。
emacs - emacs のターミナル モードで動作しないバインディングをブロックしますか?
端末は ASCII 制御コードの送信方法しか認識していないため、 GUI モードで機能する一部の emacs キーボード バインディングは端末モードでは機能しません。キーを非 ASCII 制御コードにバインドしたときに emacs に文句を言わせる方法はありますか? 私はターミナルで時々しか emacs を実行せず、通常はリモートでのみ実行し、通常は何かが壊れているためだけに実行します。
また、特に 1 つの OS から別の OS (たとえば、Solaris -> Linux) にリモート接続するときに、修飾キーでさえ再マップされる (esc <-> ctrl が入れ替わる、または右の alt が機能するが左の alt が機能しない) 経験がありました。これがいつ発生したかを検出し、キーボード バインドを適切に切り替える方法はありますか?
基本的に: 端末で emacs をリモートで使用するたびに、GUI で一貫性のないエクスペリエンスが得られるのは残念です。
macos - ターミナルエミュレーターは、どのプロセスが接続されているかをどのように知ることができますか?
OS X Terminal.app には、「アクティブなプロセス名」を表示するオプションがあります。端末内のフォアグラウンド プロセス (の 1 つ) の名前を妥当な精度で表示します。たとえば、 を実行するmake
と、ビルド プロセスに含まれるさまざまなサブプロセスの名前が表示されます ( cc
、collect
、ld
など)。これはどのように機能しますか?
これまでの私の有力な仮説は、アタッチされたセッションのフォアグラウンド プロセス グループを追跡し、そのプロセス グループ内で最近開始されたプロセスを選択するというものです。ただし、これを実装するために使用するシステム コールやサービスについては明確ではありません。
emacs - 端末用の Emacs 入力デコードマップ
ターミナルの Emacs での Ctrl-矢印キーバインドについて質問しました。
そして、Linux 端末エミュレーターはこの組み合わせを処理しないと言われました。loadkeys
これらのキーを処理するコマンド用のファイルを作成できました。
次に、ルートからロードします。
その後、コンソールで Ctrl-right または Ctrl-left をクリックするたびに、「右」または「左」が出力されます。これを Emacs で処理する必要があります。この質問から私が理解する限り:
Emacs 23.1.1 でのバインド M-<up> / M-<down>
関数を使用して行う必要がありinput-decode-map
ます。しかし、私はそれを機能させることができませんでした。助けてください。
ssh - SSH 経由で特定のターミナル エミュレータにアクセスする
背景: Linux ボックス (ホストと呼びます) を毎日使用しています。ただし、GUI/マウス/キーボードが機能しなくなり、ホストがハングすることがあります。再起動する以外に何もできませんでした(ホスト)。だから、私は常にそれ(ホスト)で実行されているsshサーバーに接続して、安全に電源を切ることができます。これは、ラップトップで VNC クライアントを使用して行います (REMOTE と呼びます)。ホストから画面全体を複製するため、ホストのマウス/キーボードが機能しない場合でも、REMOTE で閉じることができます。しかし、VNC はネットワーク使用量が高く、低速です。通常のssh接続に置き換えたい。
問題の再定義: したがって、「ホスト」の端末に「hello world」を際限なく出力する単純なプログラムを開始するとします。SSH経由で「REMOTE」で同じ端末(Hello Worldの印刷付き)を表示するにはどうすればよいですか。見るだけでなく、このプログラムを制御して、停止したり、殺したりします。
android - 「タッチ」は機能し、「mkdir」は失敗しますか?
ディレクトリ内で、機能して失敗する状況があり得るでしょtouch
うか。mkdir
inode
これらの呼び出しは両方とも、親ディレクトリへの書き込みを伴うことを理解しています。したがって、タッチが機能した場合、inode が書き込み可能であることを自動的に意味するのではないので、mkdir
失敗する可能性はありません。
これはAndroidであり (レポートを聞いただけで、実際にはこのケースは見ませんでした)、コマンドはターミナル エミュレーター/system
からディレクトリ内で実行されていましたsu
が (要求後)、IMO に違いはありません。
編集: mkdir で失敗しました"permission denied"
gtk - キーボードを使用して VTE でテキストを選択できない
VTE ライブラリを使用して、C で独自の端末アプリケーションを作成しています。キーボードでテキストを選択できないことを除いて、すべてがうまく機能します。たとえば、何かを入力したばかりの場合、ほとんどの端末では、Shift キーを押しながら左矢印キーで前のテキストを選択すると、好きな場所に貼り付けることができます。VTE では、現在のカーソル位置に D が表示されるだけです。キープレスからTRUEを返すことで、端末でのDの出力を明らかにブロックできますが(これは行っています)、それでもテキストを選択できません。
から手動で開始できると思いましvte_terminal_get_cursor_position()
たが、選択の境界を取得した後、VTE でテキストのブロック (見つけることができる) を選択する方法はありません。
tinytermやevilvteなどの他のVTEベースのプロジェクトを見てきましたが、そのキーの組み合わせが押されたときにターミナルにもDを出力するだけです。
キーボードを使用して VTE でテキストを選択する方法はありますか? ありがとう。
訂正: キーボードでテキストを選択できる端末があったとしても、非常に少ないことがわかりました。それがどうやって頭に入ったのかわからない。とにかく、私はまだそれが便利な機能だと思うので、疑問は残ります. どんなアイデアでも大歓迎です。
x11 - Windows から Windows への X Server - それはまったく可能ですか?
リモートの Windows マシンで実行されているアプリケーションを表示する Windows で X サーバー (mobaxterm、xming など) を実行できるかどうか疑問に思っています。
リモートのLinuxマシンで実行されている場合は可能ですが、windows-windows環境で可能かどうかはまだ疑問です。
ローカルの Windows マシンで Windows リモート アプリケーションを開く必要があります。VNC / radmin / RDP を使用できることはわかっていますが、問題は、これらのソリューションがすべてのリモート マシンを提供することです。xclock を開くのと同じように、ローカル Windows で特定のアプリケーションのみを表示する必要があります。
アドバイスをお願いします...ありがとう