リモートアクティブ端末でコマンドを実行する

リモートアクティブ端末でコマンドを実行する

PID 6350を使用して端末エミュレータ(T1)を開くとしましょう。

別の端末(C1)で次のコマンドを入力します。

echo "ls\n" > /proc/6350/fd/0

これにより、lsT1 に新しい行が書き込まれますが、実行されません。なぜ?

cat|bash私もwithを試してみましたが、echo "ls\n" > /proc/catid/fd/0まだ実行されていません。

コマンドを他の端末にエコーしてコマンドを実行するにはどうすればよいですか?

考えられる答え:

$ mkfifo toto;
$ bash < toto;
$ echo "ls" > toto;

この場合、端末に直接書き込むことはできません(すべては、コマンド(C1)がその端末に表示するのと同じ方法で表示されます。

ベストアンサー1

ttyecho他の端末(tty / pts)にコマンドを送信し、そのコマンドを実行できるコマンドラインユーティリティがあります。

sudo ttyecho -n /dev/pts/5 ls

望むより:コマンドまたはデータを別の端末に送信するユーティリティ(tty / pts)

また見なさい:ttyechogithubのソースコード

もう一つの興味深いttyコマンドは、selectortty入力バッファを更新するコンソールのリアルタイムインタラクティブパターンマッチングです。

# selector examples
selector -v -x @ <(find . -maxdepth 2 -type d | awk '{print $0"@cd "$0}')
selector -v -x @ <(grep -E -o 'http[^ ]+' fileWithURLS)

望むより:セレクタ - コンソールの動的検索

おすすめ記事