Linuxでログインしているユーザにメッセージを送信する方法

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

コメント

タイトルとURLをコピーしました