【ティーティーワイ】

TTY とは?

最終更新:
💡 タイプライター時代から続く「対話窓口」、今も端末の心臓部で動いている

テレタイプ端末に由来する、UNIX系OSで文字の入出力を受け持つ端末デバイスの総称。現代のLinuxでは仮想コンソールや、ターミナルエミュレータ・SSHが使う擬似端末(pts)などとして使われている。

📌 このページのポイント
TTY の種類と仕組み 起源: テレタイプ キーボード+プリンター 1960〜70年代の端末 → 物理TTY → 現代の TTY 仮想コンソール /dev/tty1 〜 tty6 擬似端末(pts) /dev/pts/0, pts/1 ... 仮想コンソール(/dev/ttyN) tty1 tty2 … Ctrl+Alt+F1〜F6 などで切り替え 割り当て・台数は環境により異なる 擬似端末(/dev/pts/N) ターミナル SSH接続 ターミナルを開くたびに動的に生成 `tty` コマンドで確認: /dev/pts/0
TTY の種類(仮想コンソールと擬似端末)
ひよこ ひよこ
TTYって何の略なの?
ペンギン先生 ペンギン先生
Teletypewriter(テレタイプライター)の略だよ。1960〜70年代にはキーボードとプリンターが一体になった「テレタイプ」という機械がコンピュータの端末として広く使われていたんだ。その名前が今のLinuxにも残っているんだよ
ひよこ ひよこ
今のパソコンにはテレタイプなんてないのに、なぜ残っているの?
ペンギン先生 ペンギン先生
「文字を打ち込んで、結果を文字で受け取る窓口」という役割は今も同じだからだね。Linuxには画面とキーボードを使う仮想コンソール(/dev/tty1 など)があって、多くのディストリビューションではCtrl+Alt+F1〜F6 などで切り替えられるよ。いくつ用意されるかやGUIがどれを使うかは環境によるんだ
ひよこ ひよこ
ptsっていうのもTTYと関係あるの?
ペンギン先生 ペンギン先生
pts(pseudo terminal slave)は「擬似端末」と呼ばれるもので、ターミナルエミュレータを開いたりSSHで接続したりするたびに動的に作られる端末だよ。そこで tty コマンドを実行すると /dev/pts/0 のように表示されるはず。仮想コンソールの /dev/tty1 とは仕組みが違うけど、どちらもプログラムからは端末として見えるんだ
ひよこ ひよこ
TTYに関係する設定っていじれるの?
ペンギン先生 ペンギン先生
stty コマンドで端末の設定を確認・変更できるよ。stty -a で現在の設定を一覧でき、stty -echo で入力した文字を画面に表示しないようにできる(パスワード入力のような動きだね)。stty raw は入力をほぼ加工せずにプログラムへ渡すモードなんだ
ひよこ ひよこ
設定をいじって画面がおかしくなったらどうするの?
ペンギン先生 ペンギン先生
stty sane を試してみよう。入力の表示や改行の扱いなどを、実用的な標準の設定に戻してくれるよ。文字を打っても表示されない状態だと、コマンドを見えないまま入力してEnterを押すことになるけど、それで戻ることが多いんだ
もっと詳しく知りたい人へ

スクリプトで「not a tty」と言われるのはなぜ?

そのプログラムが、標準入力や標準出力が端末(TTY)であることを前提にしているのに、パイプやファイル、ジョブの実行環境などから動かされていて端末がつながっていないからだよ。tty コマンドも、標準入力が端末でなければ(POSIXロケールでは)「not a tty」と表示するよ。SSHでリモートのコマンドを実行するときは、ssh -t で擬似端末を割り当てると動く場合があるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「TTY」って出てきたら「コンピュータと文字でやり取りするための端末(とその仕組み)」と思えればだいたいOK!
📖 おまけ:英語の意味
「teletypewriter」 = テレタイプライター
💬 キーボードと印字装置が一体になったテレタイプ端末が起源だよ。1963年に登場したTeletype Model 33などがコンピュータの端末として広く使われ、その略称がUNIXに残っているんだ

参考資料

← 用語集にもどる