コンソール

FreeBSD の /dev 以下にある tty* とかの意味を知らなかったのでちょっと調べてみた。
console, ttyv0 C-A-F1に対応。デフォルトコンソール。
ttyv1 C-A-F2 に対応。
...
ttyv8 C-A-F9 に対応。X が使う。
ttyv1 から ttyv8 までを仮想コンソールという。
ttyp0 - ttyp8... GNU screen のウィンドウ
/etc/ttys を見ると "Pseudo terminals" と書いてあるから疑似ターミナルというのだろうか?


kterm を開いても tty* は開かれない(端末をエミュレートするのだから当然か)。
screen は kterm の上にのっかって ttyp? と接続していることになる。
/dev/tty はつねにカレントプロセスの端末を表す。
tty(1) というコマンドで現在の端末デバイスを調べることができる。

root になって echo hoge>/dev/ttyv1 などとすると write(1) と同じことができる。

# write の使い方
write USER ttyp0
sassato asobini ikouyo. syukudai nanka uttyarakashitesa.
^D

talk(1) は /etc/inetd.conf でコメントアウトされている次の行を有効にしないと使えない。

#ntalk	dgram	udp	wait	tty:tty	/usr/libexec/ntalkd	ntalkd 


ついでに write するときによく使う w 関連についてメモ。
who は Version 1 AT&T UNIX から登場。POSIX.1 で制定。
who -uTH とすると全部表示。
who am I は who -m と同じ。
w は 3.0 BSD から。
who でなく w を使う用途が思い付かない。
whoami は echo $USER と同じ。id が登場したため時代後れとなった。id -un と等価。


watch(8) も初めて使ってみる。なかなか面白い。