Linux/Unixシステムにおいて、writeコマンドは他のログインユーザーの端末にメッセージを送信し、シンプルなリアルタイム通信を実現するために使用されます。
基本構文
write <ユーザー名> [<端末名>]
<ユーザー名>:メッセージを受信する対象ユーザー(システムにログインしている必要があります)。[<端末名>]:オプションのパラメータです。対象ユーザーが複数の端末(例:ローカル端末、SSH接続)にログインしている場合、特定の端末を指定できます(指定しない場合は最初の端末に送信されます)。
使用手順
現在ログインしているユーザーと端末を確認する
まず、whoまたはwコマンドを使用して、対象ユーザーのログイン情報(ユーザー名と端末名)を確認します:who # 出力例: # user1 tty_1 2025-08-23 09:00 # user2 pts_0 2025-08-23 09:30 (192.168.1.100)ここで
tty_1、pts_0は端末名です(ttyはローカル端末、ptsはリモート/擬似端末を指します)。メッセージを送信する
ユーザーuser2のpts_0端末にメッセージを送信します:write user2 pts_0実行後、入力モードに入ります。メッセージ内容を直接入力し(1行ずつ)、
Enterキーで送信します。対話を終了するにはCtrl+Dを押します。受信側の表示
ユーザーuser2の端末にはメッセージがリアルタイムで表示され、以下のような形式になります:Message from user1@localhost on pts_1 at 10:00 ... お疲れ様です。メッセージのテストです。 EOF # 送信元が終了したことを示す
注意点
権限の制限
- 受信側がmesg n(メッセージの受信を禁止)を設定している場合、writeコマンドは失敗し、「write: user2 has messages disabled」のようなエラーメッセージが表示されます。
- 同じグループのユーザーまたはrootユーザーのみがメッセージを送信できます(一部のシステムではデフォルトで制限されています)。端末の指定
ユーザーが複数の端末にログインしており、端末を指定しない場合、writeは自動的に最初の端末を選択しますが、それは受信者が現在アクティブな端末とは限りません。そのため、whoで確認してから指定することを推奨します。代替案
writeは単純なテキストメッセージのみをサポートします。より複雑な通信が必要な場合は、talk(双方向チャット)またはwall(すべてのユーザーにブロードキャスト)を使用してください。
例
# ログインしているユーザーを確認
who
# 出力例:user2 pts_0 2025-08-23 10:00 (192.168.1.1)
# user2にメッセージを送信
write user2 pts_0
重要なアップデートがあります。
(Ctrl+Dで終了)
writeコマンドは、マルチユーザーシステムで短い通知を迅速に伝えるのに適しており、早期のUnixシステムにおけるシンプルなインスタントメッセージングツールです。