Linuxでログインしているユーザ(端末)にメッセージを送信する方法についてまとめてみました。
全ユーザにメッセージを送信する「wall」コマンドと、個別のユーザにメッセージを送信する「write」コマンドそれぞれについて説明していきます。
注意点としては、どちらのコマンドともXwindow(GUI)上にはメッセージを送信することが出来きません。Xwindow上でTerminal(端末)を起動している場合は、そこにメッセージを送信することは可能です。
また、どちらのコマンドも日本語には対応していません。
wallコマンド(全ユーザに送信)
「wall」コマンドを使用すると、システムにログインしている全ユーザにメッセージを送信することが出来ます。
メッセージを指定しなかった場合は、メッセージ入力待ち状態にとなりそこから入力する形になります。
wal オプション メッセージ
オプション
「wall」コマンドで指定できるオプションは「-n」のみですが、このオプションはrootユーザのみが使用可能で、指定するとメッセージ送信時のバナーを下記表示例のように変更します。
オプションなしの場合
「-n」オプションを指定せずにメッセージを送信します。
# wall Test1
バナーは「Broadcast message from 」といったメッセージから始まっています。
Broadcast message from root@localhost.localdomain (pts/0) (Sun Apr 29 11:03:33 2018): Test1
オプションありの場合
「-n」オプションを指定してメッセージを送信します。
# wall -n Test1
バナーは「Remote broadcast message 」といったメッセージから始まります。
Remote broadcast message (Sun Apr 29 11:03:56 2018): Test1
使用例
「wall」コマンドの使用例として、コマンド実行時にメッセージを指定した場合と、指定しなかった場合についてまとめてみます。
メッセージを指定しなかった場合
メッセージを指定せずに「wall」コマンドを実行した場合は、メッセージ入力待ち状態になるので、送信したいメッセージを入力し、最後に改行(Enterキーを押下)した後に「Ctrl」+「d」を押下することでメッセージを送信することができます。
「Test1」「Test2」「Test3」というメッセージを送信してみます。
# wall Test1 Test2 Test3 (「Ctrl」+ 「d」を押下することでメッセージが送信される)
別ユーザの端末では下記のようなメッセージが表示されます。
$ Broadcast message from root@localhost.localdomain (pts/0) (Sun Apr 29 10:48:59 2018): Test1 Test2 Test3
メッセージを指定した場合
「wall」コマンド実行時にメッセージを入力すると、直ぐにメッセージを送信してしまうため複数行のメッセージを送信することが出来ません。
# wall Test1
別ユーザの端末上では下記のように表示されます。
Broadcast message from root@localhost.localdomain (pts/0) (Sun Apr 29 11:00:18 2018): Test1
writeコマンド(個別に送信)
「write」コマンドを使用すると個別のユーザにメッセージを送信することが出来ます。
コマンドを実行するとメッセージ入力待ち状態になりますので、メッセージの入力後は「Ctrl」+「d」を押下することで入力を終了しメッセージを送信することができます。
write ユーザ名 tty名
tty名の入力は省略できますが、指定したい場合は「w」コマンドや「who」コマンドなどでTTY名を確認してください。
使用例
実際にメッセージを送信してみます。
# write tamohiko write: tamohiko is logged in more than once; writing to pts/3 Test message (「Ctrl」+「d」でメッセージ入力を終了)
メッセージ送信先では下記のように、どのユーザからメッセージをが送信されたかというバナーの表示後にメッセージが表示されてきます。
送信元からのメッセージ入力が完了すると「EOF」と表示されます。
$ メッセージ from tamohiko@localhost.localdomain (root として) on pts/2 at 13:19 ... Test message EOF
コメント