これは私のUbuntuからです
$ ls /dev/*tty*
/dev/tty /dev/tty17 /dev/tty26 /dev/tty35 /dev/tty44 /dev/tty53 /dev/tty62 /dev/ttyS12 /dev/ttyS21 /dev/ttyS30
/dev/tty0 /dev/tty18 /dev/tty27 /dev/tty36 /dev/tty45 /dev/tty54 /dev/tty63 /dev/ttyS13 /dev/ttyS22 /dev/ttyS31
/dev/tty1 /dev/tty19 /dev/tty28 /dev/tty37 /dev/tty46 /dev/tty55 /dev/tty7 /dev/ttyS14 /dev/ttyS23 /dev/ttyS4
/dev/tty10 /dev/tty2 /dev/tty29 /dev/tty38 /dev/tty47 /dev/tty56 /dev/tty8 /dev/ttyS15 /dev/ttyS24 /dev/ttyS5
/dev/tty11 /dev/tty20 /dev/tty3 /dev/tty39 /dev/tty48 /dev/tty57 /dev/tty9 /dev/ttyS16 /dev/ttyS25 /dev/ttyS6
/dev/tty12 /dev/tty21 /dev/tty30 /dev/tty4 /dev/tty49 /dev/tty58 /dev/ttyprintk /dev/ttyS17 /dev/ttyS26 /dev/ttyS7
/dev/tty13 /dev/tty22 /dev/tty31 /dev/tty40 /dev/tty5 /dev/tty59 /dev/ttyS0 /dev/ttyS18 /dev/ttyS27 /dev/ttyS8
/dev/tty14 /dev/tty23 /dev/tty32 /dev/tty41 /dev/tty50 /dev/tty6 /dev/ttyS1 /dev/ttyS19 /dev/ttyS28 /dev/ttyS9
/dev/tty15 /dev/tty24 /dev/tty33 /dev/tty42 /dev/tty51 /dev/tty60 /dev/ttyS10 /dev/ttyS2 /dev/ttyS29
/dev/tty16 /dev/tty25 /dev/tty34 /dev/tty43 /dev/tty52 /dev/tty61 /dev/ttyS11 /dev/ttyS20 /dev/ttyS3
7つの仮想コンソールがあります。
また、gnomeターミナル内のいくつかのタブ、いくつかのemacs(いくつかはシェルを実行していますが、おそらくすべて閉じています)、およびスクリーンセッション(現在は閉じています)を開いています。
/dev/tty
、/dev/tty[[:digit:]]+
、/dev/ttyprintk
、/dev/ttyS[[:digit:]]+
?擬似ttyのデバイスファイルは/ dev/ptyであると言う人がいますが、なぜここにptyファイルまたはディレクトリがないのですか?
$ ls /dev/*pty*
ls: cannot access /dev/*pty*: No such file or directory
わからない/dev/*pts*
手段:
$ ls /dev/*pts*
0 1 10 11 12 13 14 15 16 17 18 2 20 21 22 23 24 26 3 4 5 6 7 8 9 ptmx
よろしくお願いします!
ターミナルとは?
端末は、コンピュータ(ホスト)とリモートで通信するために使用する画面とキーボードで構成されています。まるでパソコンのように使用しますが、端末は通信するホストコンピュータから離れています(部屋の向こう側、または世界の向こう側でも)。
質問1
/dev/tty
は、現在のプロセスの制御端末(存在する場合)を表します。どのttyがどのプロセスに接続されているかを確認するには、シェルプロンプト(コマンドライン)でps -a
コマンドを使用します。 tty
列を見てください。現在使用しているシェルプロセスの場合、/dev/tty
は現在使用しているターミナルです。tty0
、tty1
、tty2
など。ログインすると、tty1
。 tty2
に移動するには、 Alt-F2。 tty1
、tty2
などは仮想端末(「仮想コンソール」と呼ばれることもあります)。異なる仮想端末にログインすることで、同時にいくつかの異なるセッションをコンピュータで実行できます。を使用してそれらを切り替える Alt-F? 「?」のキー必要な仮想端末番号です。コンソールは/dev/tty0
とも呼ばれ、システムメッセージがそのデバイスに送信されてコンソールに表示される場合があります。システムまたはrootユーザーのみが、/dev/tty0
がリンクされている/dev/console
に書き込むことができます。ttyprintk
は、ユーザーがprintk
デバイスへの出力を介してttyprintk
メッセージを作成できるようにする疑似TTYドライバーです。/dev/tty/S[[:digit:]]
は、シリアルポートを表します。各端末は、ホストコンピュータ(多くの場合、PCのみ)のシリアルポートに接続されます。ポートには名前/番号があります。最初のいくつかは次のとおりです:ttyS0
、ttyS1
、ttyS2
など。これらは/dev
(デバイス)ディレクトリにある特別なファイルで表されます。 ttyS0
は、DOSまたはWindowsのCOM1に対応しています。 ttyS1
はCOM2などです。質問3と質問4は関連しています。 ギレスここ から素晴らしい説明があります。彼の答えからの抜粋のいくつかは、
疑似端末は、アプリケーションである端末エミュレータによって提供されます。疑似端末には、次のタイプがあります。
- Xterm、gnome-terminal、konsoleなどのGUIアプリケーションは、キーボードとマウスのイベントをテキスト入力に変換し、出力をいくつかのフォントでグラフィック表示します。
- 画面やtmuxなどのマルチプレクサアプリケーションは、別の端末との間の入出力をリレーして、テキストモードアプリケーションを実際の端末から切り離します。
- Sshd、telnetd、rlogindなどのリモートシェルアプリケーションは、クライアントのリモート端末とサーバーのptyの間で入出力を中継します。
また、 疑似端末のwikiページ から、以下の情報が見られます。
マスターデバイスファイルは、通常/ dev/pty [p-za-e] [0-9a-f]という形式の名前で、ターミナルエミュレーターとの通信のエンドポイントです。この[p-za-e]命名スキームでは、最大256のttyペアが存在できます。また、ロックスキームが採用されていない限り、最初の空きptyマスターを見つけるのは際どい場合があります。そのため、FreeBSDなどの最近のBSDオペレーティングシステムは、Unix98 PTYを実装しています。[4]
BSD PTYは、Unix98 ptyによって廃止されました。そのネーミングシステムは、疑似端末の数と競合状態の危険なしに発生するアクセスへのアクセスを制限しません。/dev/ptmxは「疑似端末マスターマルチプレクサ」です。それを開くと、マスターノードのファイル記述子が返され、関連するスレーブノード/ dev/pts/Nが作成されます
そのため、/dev/pty
が使用できないと思われるため、/dev/pts
が表示されます。
参照
http://www.tldp.org/HOWTO/Text-Terminal-HOWTO-7.html