writeコマンドでコマンドの出力結果を別のターミナルに出力させる

コマンドの出力結果を別のターミナル(仮想端末)に出力したい、といった場合が(超極々)たまにあるのだけど、今まではそういった場合には、以下のように仮想端末に直接リダイレクトをしていた。

echo test123 > /dev/pts/xxx

 

ただ、このやり方だとroot権限が無いと書き込めないので、あんま良くはないよなぁ…と思っていたのだけど、どうやらLinuxには別のターミナルに標準入力を出力するコマンドとしてwriteコマンドというのが最初から用意されていたらしい。
例えば以下のようにコマンドを実行すると、lsの結果を指定したユーザのターミナルに出力できる。

ls | write <username> <仮想端末>
Sponsored Links

以下、コマンドの実行例。

echo -e ABCD\\n1234|write blacknon pts/0

↑のコマンドを実行した際、対象のターミナルには以下のような出力がされる。

Message from blacknon@BS-PUB-UBUNTU-01 on pts/2 at 08:26 ...
ABCD
1234
EOF

 

あまり使う機会はなさそうだけど、これならroot権限もいらないし、一般ユーザ権限でも別のユーザで接続している端末にも出力ができる。

 


Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*