同じ Linux マシンにログインしているユーザにメッセージを送る「wall」「write」コマンド
以前、/dev/pts/0 などに echo すると、他のユーザのセッションに対して echo できる、というネタを紹介した。
ttyコマンドの結果が/dev/pts/0なユーザのセッションにおいて、
$ echo 'TEST' > /dev/pts/0と実行すると、自身のプロンプトに
TESTという文字列が出力される。さらに、ココで別の TTY を指定すると、
$ echo 'TEST' > /dev/pts/1今度は
/dev/pts/1のユーザのプロンプトに、突然TESTの文字が出力される。
Windows には以前、net send や msg というコマンドがあり、コレを使うと他のユーザに向けてメッセージを送信できた。
これらと同様に、Linux においても、同一マシンにログインする別のユーザに向けてメッセージを飛ばすコマンドがあった。それが wall と write コマンドだ、
wall コマンド
wall コマンドは、ログインしている全ユーザにメッセージを一斉送信できる。$ wall でメッセージが入力できるようになり、Control + D を押して終了すると、メッセージが一斉送信される。
- 参考 : wallコマンドの使い方まとめ【Linuxコマンド集】
- 参考 : 【 wall 】コマンド――ログインしている端末に一斉メッセージを送る : Linux基本コマンドTips(79) - @IT
- 参考 : ログイン中の全ユーザーのターミナルにメッセージを表示するには
write コマンド
write コマンドはユーザ名を指定してメッセージを送信できる。前述の > /dev/pts/0 に近い。$ write 【ユーザ名】 と指定してメッセージ入力に移る。メッセージ送信を終了するには Control + D だ。
日本語は普通には送信できない
残念ながら、これらのコマンドでは日本語を普通には送信できない。日本語文字が文字化けしてしまうのだ。Base64 エンコードして送信することで回避する方法もあったりしたが、少々面倒。
イマドキ使う機会もないかもしれないが、見つけたので紹介した次第。
こんな記事で2019年はさようなら。良いお年を。