Socat を使った完全なインタラクティブシェルへのアップグレード
より包括的な解決策として、socat
ユーティリティを使用して、タブ補完、履歴ナビゲーション、テキストエディタの互換性など、すべての機能をサポートする完全なインタラクティブシェルを取得することができます。
まず、以下のコマンドを実行して、ターゲットシステムに socat
がインストールされているか確認します。
which socat
socat
が利用可能な場合は、以下の手順に従います。
-
「新しいターミナルウィンドウ」を開き、以下の socat
コマンドを使用してポート 5912
でリスナーを起動します。
socat file:$(tty),raw,echo=0 tcp-listen:5912
接続が確立されるのを待ちます。
-
シンプルシェルで、以下のコマンドを実行してリスナーに接続し、シェルを完全なインタラクティブシェルにアップグレードします。
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:127.0.0.1:5912
-
リスナーを設定したターミナルウィンドウに戻ると、ターゲットシステムとの接続が確立されていることがわかります。これで、通常のターミナルセッションで期待されるすべての機能を備えた完全なインタラクティブシェルが利用できるようになります。
出力例:
labex:project/ $ socat file:$(tty),raw,echo=0 tcp-listen:5912
labex@660d5d5ee229593d40db9301:~$
cat
、ssh
、vim
などのコマンドを使用し、上下矢印キーでコマンド履歴をナビゲートすることで、新しいインタラクティブシェルをテストしてください。