TALK(1)

名前
talk - 他のユーザーと会話をする

書式
talk person [ttyname]

説明
talk は、視覚的な通信プログラムであり、 ユーザーの端末の行を他のユーザーの端末にコピーする。

使用可能なオプションは以下の通りである。

person
    自分が使っているマシン上にいる誰かと会話をしたい場合は、 person を相手のログイン名にする。 他のホスト上にいるユーザーと会話をしたい場合は、 person を ‘user@host’ の形式で指定する。

ttyname
    複数の端末にログインしているユーザーと会話をしたい場合は、 使用する端末名を指示するための引き数 ttyname を指定することができる。 ここで、 ttyname は ‘ttyXX’ または ‘pts/X’ という形式である。

最初に呼び出しを行うとき、 talk は相手ユーザーのマシンの talk デーモンとコンタクトをとり、 以下のようなメッセージを相手に送る。
    Message from TalkDaemon@his_machine...
    talk: connection requested by your_name@your_machine.
    talk: respond with: talk your_name@your_machine

この時点で、相手は以下のように入力して返答する。

    talk  your_name@your_machine

ログイン名が同じであれば、相手はどのマシンから返事をしてもかまわない。 一度、相手との接続が確立すると、 2 人のユーザーは同時に書き込みを行うことができる。 2 人の書き込みは、分割されたウィンドウに表示される。 control-L ‘^L’ を打ち込むと、画面を再描画する。 削除 (erase)・行削除 (kill line)・単語削除 (word erase) 文字 (通常はそれぞれ ^H, ^U, ^W に対応) は通常の動作する。 会話を終了する場合は、単に中断 (interrupt) 文字 (通常は ^C) を入力すればよい。 そうすると talk は、カーソルを画面の一番下に移動させ、端末を元の状態に戻す。

netkit-ntalk 0.15 から talk は後方スクロールが可能になった。 自分のウインドウをスクロールするには、esc-p と esc-n を使う。 相手のウインドウをスクロールするには、ctrl-p と ctrl-n を使う。 このキーは、0.16 のキーとは逆になっている。 最初は戸惑うかも知れないが、 自分自身の画面をスクロールする必要はあまりないため、 エスケープキーとの入力しづらい組合せを使用している。

talk からの呼び出しを受けたくない場合、 mesg(1) コマンドを使ってブロックすることができる。 デフォルトでは talk からの呼び出しはブロックされない。 nroff(1), pine(1), pr(1) などは出力が見にくくなるのを防ぐため、一時的にメッセージをブロックする。

ファイル
/etc/hosts
    受信者のマシンを見つけるために用いる
/var/run/utmp
    受信者の端末名 (tty) を見つけるために用いる

関連項目
mail(1), mesg(1), who(1), write(1), talkd(8)

バグ
talk デーモンとの通信に使われるプロトコルは、たいした機能がない。

4.2BSD と一緒にリリースされたバージョンの talk(1) は、別のもっと機能がないプロトコルを使っていて、全く互換性がない。 ベンダー (特に Sun) の出している Unix に古いプロトコルが 使用されていることが判っている。

古いバージョンの talk は、動的な SLIP や PPP 接続をしているような、 複数の IP アドレスを持つマシンで実行すると問題があった。 この問題は netkit-ntalk 0.11 で修正されたが、 通信しようとする相手に影響があるかも知れない。

履歴
talk コマンドは 4.2BSD で登場した。