ttyとptsについて

dokcer runのオプションで意味不明だったので、調べていました。

docker run -it ←こいつ

  % docker run --help
  -i, --interactive                    Keep STDIN open even if not attached
  -t, --tty                            Allocate a pseudo-TTY

ここでTTYが出てきました。

TTYとは

ttyとは、標準入出力となっている端末デバイス(制御端末、controlling terminal)の名前を表示するUnix系のコマンドである。 元来ttyとはteletypewriter(テレタイプライター)のことを指す。

tty - Wikipedia

ターミナルで打つとこうなります。

  % tty
/dev/ttys004

実際にターミナルで打っている端末の情報ですね。

よくある遊びです。

ここでターミナルを別のウィンドウで立ち上げます。

  % tty  ←ターミナル1
/dev/ttys004

  % tty  ←ターミナル2
/dev/ttys006

ターミナル1のウィンドウから下記コマンドを実行する

% echo "Hello tty" > /dev/ttys006

  % Hello tty←ターミナル2

これを実験するとどういうものかわかりやすいと思います。

pts

ptsはsshでログインした時の端末の情報です。

tty
/dev/pts/0

ということは、誰かがsshで同時接続していた場合に、相手をびっくりさせることができますね。

【参考】

d.hatena.ne.jp