読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

tty と pts

◆tty(Tele-TYpewriter)

キーボードと出力です。 LinuxではPCに直接つながっているコンソールターミナルで、

Alt+1、Alt+2、Alt+3

などで端末を切り替えられますが、それがそれぞれ

tty1、tty2、tty3

に対応しています。

 

◆pts(pesudo-tty)

ttysの仮想化です。擬似ttyです。 たとえばsshで接続された時などに使われます。またxterm等の端末エミュレータを実装するのにも使われています。 ちなみにキーボードは標準入力です。

 

◆確認してみる

現在ログインしているユーザーの情報などを確認する、w、finger、who コマンドから見えるアレもttyです

$ w
USER     TTY      FROM      LOGIN@   IDLE   JCPU   PCPU WHAT
vagrant  pts/0    10.0.2.2  03:45    0.00s  0.50s  0.50s w
vagrant  pts/1    10.0.2.2  03:45    2:42s  0.35s  0.35s -bash

これは vagrant pts/0 vagrant pts/1 の2セッションでログインしています。 ttyとすると、現在の端末を確認でき舞う。

$ tty
/dev/pts/1

sshして入ったのでttysでなくptsです。

 

◆echoで遊んでみる

2つターミナルを起動してメッセージを送り合ってみます。 送信側(pts/0)

$ tty
/dev/pts/0

受信側(pts/1)

$ tty
/dev/pts/1

送信側(pts/0)からptsを指定してechoします。

$ echo hoge > /dev/pts/1

すると受信側(pts/1)では

$ hoge

と勝手に表示されます。 いたずらで同じサーバにSSHしている人にメッセージを送ったりすると楽しいかもです。

 

ソース:

端末の識別子 -ptsとtty-

ttyについて ttyやptsってなんぞ? whoコマンド