疑似端末が互いに制御して戻りマークを取得する方法

疑似端末が互いに制御して戻りマークを取得する方法

問題は:私の擬似端末は/ dev / pts / 0で、ターゲット擬似端末は/ dev / pts / 4であり、テキストdev / pts / 4を印刷するためにターゲット擬似端末を取得しようとしています。エコテキスト> /コマンドを使用してください。

したがって、最初の質問は次のようになります。 echo text > /dev/pts/4 コマンドを使用すると、ターゲットホストにテキストが表示されますが、1つの欠点は、テキストを表示した後にターゲットに別の行が表示され、Ctrl +を押す必要があることです。 c手動シャットダウン、上記の状況を回避する方法は?

第二に、man pty> / dev / pts / 4を使用した後、ターゲット疑似ターミナルはptyマニュアルを開きますが、欠点は私の擬似ターミナルもテキストを表示した後に空白行を生成することです。シャットダウンするためにctrl + cを使用しようとしましたが、うまくいかず、問題を解決する唯一の方法は疑似端末を閉じることです。だからバックグラウンドで man pty > /dev/pts/4 & を再実行してみました。疑似端末には空行が表示されていませんが、対象の疑似端末に man マニュアルは表示されませんでした。

2番目の質問は、ターゲットの疑似端末にマニュアルを正常に表示させる方法です。しかし、私の擬似端末は空行とキャリッジリターンを表示しません。

最後の問題は、ターゲット疑似端末のすべてのマークを傍受したいということです。

多くの質問と説明があります。答えてくれてありがとう!

答え1

追加の入力が必要な場合があります。改行文字を送信すると、コマンドが完了したことをターゲットシェルに通知するのに役立ちます。

echo -n text > /dev/pts/4

または-e改行を追加してください。同じ違いがあります。

echo -e "text\n" > /dev/pts/4

-sこのオプションは次のように使用できますman

man -s pty > /dev/pts/4

これしなければならないマニュアルページがロードされた後、ターゲット疑似端末が新しい行を表示するのを防ぎます。ページをリダイレクトする「正しい」方法manは、次のscriptコマンドを使用して対話する新しいシェルセッションを作成することです。

script -q -c 'man pty' /dev/pts/4

環境変数(例:学期そして携帯用小型無線ポケットベル) がターゲット端末に対して正しく設定されています。

特定の疑似端末に送信されたすべての出力を傍受するにはtee/dev/pts/4

{ echo "text" ; other_command ; } | tee /dev/pts/4

echo "text"これはsum出力をother_command現在の端末sumに送信します/dev/pts/4

キャプチャしたい場所何もないプロセスを送信するには、セッション共有とロギングを許可するためにシステムコールトレースまたはターミナルマルチプレクサ(または)/dev/pts/4を含める必要があります。screentmux

ああ、tee空白行にも役立ちます:echo text | tee /dev/pts/4

関連情報