LinuxのTTYとは何ですか?(およびttyコマンドの使用方法)
tty
コマンドは何をしますか?使用している端末の名前が出力されます。TTYは「テレタイプライター」の略です。コマンドの名前の背後にある物語は何ですか?それにはもう少し説明が必要です。
1800年代からのテレプリンター
1830年代と1840年代に、テレプリンターとして知られる機械が開発されました。これらのマシンは、入力されたメッセージを「ネットワークを介して」離れた場所に送信できます。メッセージは、ある種のキーボードで送信者によって入力されました。それらは受信側で紙に印刷されました。それらは、以前はモースや同様のコードに依存していた電信の進化のステップでした。
メッセージはエンコードおよび送信され、受信、デコード、および印刷されました。メッセージをエンコードおよびデコードするために使用されるいくつかの手法がありました。最も有名で、最も多作なものの1つは、1874年にエミールボドーによって特許を取得しました。エミールボドーは、ボーレートの名前が付けられています。彼の文字エンコード方式は、ASCIIより89年前のものです。
Baudotのエンコーディングは、最終的にテレプリンタエンコーディングの標準に最も近いものになり、ほとんどのメーカーで採用されました。Baudotの元のハードウェア設計には、ピアノの鍵盤と同様に5つの鍵盤しかありませんでした。オペレーターは、各文字の特定のキーの組み合わせを学習する必要がありました。最終的に、Baudotエンコーディングシステムは従来のキーボードレイアウトに結合されました。
その進歩を示すために、マシンはテレタイプライターと名付けられました。これはテレタイプに短縮され、最終的にはTTYに短縮されました。頭字語TTYの由来はここにありますが、電信はコンピューティングと何の関係があるのでしょうか。
ASCIIとテレックス
ASCIIが1963年に到着したとき、それはテレタイプメーカーによって採用されました。電話の発明と普及にもかかわらず、テレタイプは依然として強力でした。
テレックスは、書かれたメッセージを世界中に送信できるようにするテレタイプの世界的なネットワークでした。それらは、第二次世界大戦後から1980年代のファックス機ブームまでの期間に書かれたメッセージを送信する主要な手段でした。
コンピュータも進化していました。彼らは、リアルタイムでユーザーと対話し、複数のユーザーをサポートできるようになりました。古いバッチ作業方法では不十分になりました。人々は彼らの結果を24時間以上待ちたくありませんでした。パンチカードのスタックを作成し、結果を一晩待つことはもはや受け入れられませんでした。
人々は、指示を入力して結果を返送できるデバイスを必要としていました。人々は効率を求めていました。
再利用されたテレタイプ
テレタイプは、入出力デバイスとして最適な候補でした。結局のところ、それはメッセージの入力、エンコード、送信、受信、デコード、および印刷を可能にするように設計されたデバイスでした。
接続のもう一方の端にあるデバイスが別のテレタイプではなかった場合、テレタイプは何を気にしましたか?同じエンコーディング言語を話し、メッセージを受信してメッセージを送り返すことができる限り、テレタイプは満足のいくものでした。
そしてもちろん、それは多かれ少なかれ標準的なキーボードを使用していました。
ハードウェアエミュレートされたテレタイプ
テレタイプは、その時代の大型のミニおよびメインフレームコンピューターと対話するためのデフォルトの手段になりました。
それらは最終的に、電子機器を使用してそれらの電気機械機械をエミュレートするデバイスに置き換えられました。これらには、ロール紙の代わりにブラウン管(CRT)がありました。コンピューターからの応答を配信するとき、彼らは揺れませんでした。画面上でカーソルを移動したり、画面をクリアしたり、テキストを太字にしたりするなど、これまで不可能だった機能を許可しました。
DEC VT05は、仮想テレタイプの初期の例であり、有名なDECVT100の祖先でした。何百万ものDECVT100が販売されました。
ソフトウェアエミュレートテレタイプ
LinuxやmacOSなどの他のUnixライクなオペレーティングシステムのデスクトップ環境では、ターミナルウィンドウやx-termやKonsoleなどのアプリケーションが仮想テレタイプの例です。しかし、これらは完全にソフトウェアでエミュレートされます。それらは疑似テレタイプと呼ばれます。これはPTSに短縮されました。
そして、それがtty
出てくるところです。
ttyは何を教えてくれますか?
Linuxには、すべてのターミナルウィンドウ疑似テレタイプ(PTS)からの接続を処理する疑似テレタイプマルチプレクサがあります。マルチプレクサはマスターであり、PTSはスレーブです。マルチプレクサは、/ dev / ptmxにあるデバイスファイルを介してカーネルによってアドレス指定されます。
このtty
コマンドは、疑似テレタイプスレーブがマスターへのインターフェイスに使用しているデバイスファイルの名前を出力します。そして、それは事実上、ターミナルウィンドウの数です。
tty
ターミナルウィンドウのレポートを見てみましょう。
tty
応答は、/ dev / pts / 0にあるデバイスファイルに接続していることを示しています。
テレタイプ(TTY)のソフトウェアエミュレーションであるターミナルウィンドウは、疑似テレタイプ(PTS)として疑似テレタイプマルチプレクサに接続されています。そしてそれはたまたまゼロです。
サイレントオプション
-s
(サイレント)オプションが原因tty
何も出力を発生しないように。
tty -s
ただし、終了値を生成します。
- 0:標準入力がエミュレートされたまたは物理的なTTYデバイスからのものである場合。
- 1:標準入力がTTYデバイスから来ていない場合。
- 2:構文エラー、誤ったコマンドラインパラメータが使用されました。
- 3:書き込みエラーが発生しました。
これは、Bashスクリプトで最も役立つ可能性があります。ただし、コマンドラインでも、ターミナルウィンドウ(TTYまたはPTSセッション)で実行している場合にのみコマンドを実行する方法を示すことができます。
tty -s && echo "In a tty"
TTYセッションで実行しているため、終了コードは0であり、2番目のコマンドが実行されます。
ザ・フーコマンド
他のコマンドでTTY番号を明らかにすることができます。このwho
コマンドは、自分自身を含む、ログインしているすべてのユーザーの情報を一覧表示します。
AlecとMaryはLinuxコンピューターにリモート接続されています。それらはPTS1および2に接続されています。
ユーザーdaveは、「:0」に接続されているように表示されます。
これは、コンピューターに物理的に接続されている画面とキーボードを表します。画面とキーボードはハードウェアデバイスですが、デバイスファイルを介してマルチプレクサに接続されています。tty
/ dev / pts / 2であることを明らかにします。
WHO
tty
関連:Linuxで現在のユーザーアカウントを確認する方法
TTYへのアクセス
Ctrl + Altキーを押しながら、ファンクションキーの1つを押すと、フルスクリーンのTTYセッションにアクセスできます。
Ctrl + Alt + F3を押すと、tty3のログインプロンプトが表示されます。
ログインしてtty
コマンドを発行すると、/ dev / tty3に接続していることがわかります。
これは(ソフトウェアでエミュレートされた)疑似テレタイプではありません。これは仮想テレタイプです(ハードウェアでエミュレートされます)。これは、コンピューターに接続された画面とキーボードを使用して、以前のDECVT100のような仮想テレタイプをエミュレートします。
ファンクションキーCtrl + AltをファンクションキーF3〜F6とともに使用し、必要に応じて4つのTTYセッションを開くことができます。たとえば、tty3にログインし、Ctrl + Alt + F6を押してtty6に移動できます。
グラフィカルデスクトップ環境に戻るには、Ctrl + Alt + F2を押します。
Ctrl + Alt + F1を押すと、グラフィカルデスクトップセッションのログインプロンプトに戻ります。
一度に、Ctrl + Alt + F1からCtrl + Alt + F6まででフルスクリーンのTTYコンソールが開き、Ctrl + Alt + F7でグラフィカルデスクトップ環境に戻ります。古いLinuxディストリビューションを実行している場合、これがシステムの動作のようになる可能性があります。
これは、Manjaro、Ubuntu、およびFedoraの現在のリリースでテストされ、すべて次のように動作しました。
- Ctrl + Alt + F1:グラフィカルデスクトップ環境のログイン画面に戻ります。
- Ctrl + Alt + F2:グラフィカルデスクトップ環境に戻ります。
- Ctrl + Alt + F3:TTY3を開きます。
- Ctrl + Alt + F4:TTY4を開きます。
- Ctrl + Alt + F5:TTY5を開きます。
- Ctrl + Alt + F6:TTY6を開きます。
これらのフルスクリーンコンソールにアクセスできるため、コマンドラインのみのLinuxインストールを使用しているユーザー(および多くのLinuxサーバーはこのように構成されています)は、複数のコンソールを使用できます。
グラフィカルデスクトップ環境を備えたLinuxマシンで作業していて、セッションがフリーズする原因があったことがありますか?これで、TTYコンソールセッションの1つにホップして、状況の修正を試みることができます。
を使用top
しps
て、失敗したアプリケーションを特定してkill
から終了するかshutdown
、コンピュータの状態が許す限り適切に終了するためにを使用できます。
関連:Linuxターミナルからプロセスを強制終了する方法
歴史のある3つの小さな手紙
このtty
コマンドの名前は1800年代後半のデバイスに由来し、1971年にUnixに登場し、今日までLinuxおよびUnixライクなオペレーティングシステムの一部となっています。
小さなチャップは彼の後ろにかなりの物語を持っています。