GNU/Linux >> Linux の 問題 >  >> Linux

Linux が /dev/tty と /dev/tty0 を使用する方法

/dev/tty 現在の プロセス の制御 tty です 、この特別なファイルを実際に開くすべてのプロセスに対して。必ずしも仮想コンソール デバイス (/dev/tty n )、そして pty、シリアルポートなどである可能性があります。制御 tty が仮想コンソールでない場合、その疑似 tty が実際にシステムコンソールに実装されていても、プロセスはコンソールデバイスと対話する必要はありません。例:ローカルで実行されている Xserver の下の端末エミュレーターのシェルの場合、上記のプログラムは次のような相互作用の連鎖を形成します:

Unix シェル
/dev/pts/2 (≡ /dev/tty そのプロセスのため)
カーネル pty ドライバー
/dev/ptmx
端末エミュレータ
⇕ X Window プロトコル
X サーバー
/dev/tty7 (≡ /dev/tty サーバー用)
システムコンソール
z × c ↿⇂[_̈░░]
ユーザー

/dev/tty の使用 ユーザーランド プログラムには以下が含まれます:

  • すべてのリダイレクトとパイプを無視して、制御端末に何かを書き込みます。
  • ioctl() を作成します – tty_ioctl(4) を参照してください;
  • たとえば、端末から切り離します (TIOCNOTTY)。

/dev/tty0 オペレーティング システムの現在アクティブな (つまり、モニターに表示されている) 仮想コンソールです。 .この特別なファイルは、システム ソフトウェアによって大幅に使用される可能性は低いですが、/dev/console 実質的に tty0 の「エイリアス」です と /dev/console syslog デーモンによって、また場合によってはカーネル自体によって多く使用されます。

違いを示す実験:root を実行します tty3 のシェル (Ctrl +Alt +F3 )または端末エミュレータで。今

# sleep 2; echo test >/dev/tty

次にすばやく Ctrl +Alt +F2 、2 秒待って、Ctrl +Alt +なんでも。出力はどこに表示されますか?
/dev/tty0 の同じテスト .


/dev/tty は、すべてのプロセスの制御 tty です。これがあなたのシェルかもしれません。

プロセスに制御 tty がない場合、/dev/tty は使用できません。はデーモンに当てはまります。

プロセスに制御 tty がある場合、/dev/tty は、プロセスが stdin、stdout、または stderr に使用している実際の tty ドライバーへのドライバー エイリアスです。

man -s7d tty を参照 詳細については。このマニュアルが含まれるセクションは、OS によって異なる場合があるため、セクション 1 のマニュアル ページと混同しないでください。 man -k tty .


Linux
  1. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  2. /dev/dm-Z デバイスから /dev/sdX および /dev/mapper/mpathY デバイスをマップする方法

  3. Linux の /dev/zero および /dev/null ファイルとは

  1. Linux ramdisk (/dev/ram0 - /dev/ram15) の量とサイズを変更するにはどうすればよいですか?

  2. カーネル:/dev/kmem と /dev/mem を無効化

  3. Linux で /dev/random を /dev/urandom にリンクするのは間違っていますか?

  1. LinuxソフトウェアRAIDで故障したハードディスクを交換する方法

  2. / dev/randomを使用してLinuxでランダムパスワードを生成する方法

  3. /dev/sda と /dev/sda1 の違い