tty
何するコマンド?
書き方
tty [オプション]
オプション
| オプション | 説明 |
|---|---|
| -s | 実行結果を画面に表示しない |
| --help | ヘルプを表示する |
| --version | バージョン情報を表示する |
補足事項
「接続端末のデバイスファイル名を表示する」とか言われても、よく分かりませんよね。
細かい部分で間違った説明をすることになりますが、もう少し噛み砕いて書いてみましょう。
UNIX系のOSでは、ログインすると一時的に名札がもらえます。
この名札が「デバイスファイル名」で「あれ?自分って今どんな名札を付けているんだっけ?」を確認するコマンドが「tty」コマンドです。
例えば、ピヨ太君とピヨ子さんが自分の端末からそれぞれSSHで接続しているとしましょう。
ピヨ太君が
tty
と打ちました。
結果は
/dev/pts/0
でした。
同じようにピヨ子さんも
tty
と打ちました。
結果は
/dev/pts/1
でした。
このときの「/dev/pts/0」と「/dev/pts/1」が一時的にもらった名札です。
さて、ここでピヨ太君が、とあるイタズラをしました。
echo "piyopiyo" > /dev/pts/1
というコマンドを打ったのです。
echoの結果を「/dev/pts/1」に送ったれやーな指示をしました。
結果は、どうなるか?
「/dev/pts/1」は確かピヨ子さんの名札でしたね。
そうです。
ピヨ子さんの端末の画面に「piyopiyo」という文字が表示されるのです。
もちろん、権限的にそれが許可されている場合は、ですけどね。
ピヨ太君のコマンドの実行結果がピヨ子さんに届いちゃいます。
このように端末に一時的に割り当てられた名札がデバイスファイル名です。
そして
自分に割り当てられた名札(デバイスファイル名)を確認するコマンド
が「tty」コマンドです。
さらに余談めいてしまいますが、もう少しだけお付き合いください。
「/dev/pts/0」は「/dev/pts/」にある「0」です。
ですからピヨ太君、ピヨ子さんが接続した状態で
ls /dev/pts/
というコマンドを実行すると、結果は
0 1
に なります。
0がピヨ太君で1がピヨ子さん用です。
さてさて、ここでピヨ子さんがログアウトしたとしましょう。
ls /dev/pts/
の実行結果は、どうなるでしょう。
そうですね。
今はピヨ太君しかいませんから
0
に なります。
ピヨ子さんに割り当てられていた「1」は、なくなりました。
「/dev/pts/」には現在接続している奴らの名札が置いてあります。
どの名札を自分が使っているか確認するコマンドが「tty」コマンドです。
