書式
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) を見つけるために用いる
バグ
talk デーモンとの通信に使われるプロトコルは、たいした機能がない。BSD 4.2 と一緒にリリースされたバージョンの talk(1) は、別のもっと機能がないプロトコルを使っていて、全く互換性がない。 ベンダー (特に Sun) の出している Unix に古いプロトコルが 使用されていることが判っている。
古いバージョンの talk は、動的な SLIP や PPP 接続をしているような、 複数の IP アドレスを持つマシンで実行すると問題があった。 この問題は netkit-ntalk 0.11 で修正されたが、 通信しようとする相手に影響があるかも知れない。
履歴
コマンドは BSD 4.2 で登場した。