私が知っている限り、/dev/pts
ファイルはsshまたはtelnetセッション用に生成されます。
ベストアンサー1
には何も保存されていません/dev/pts
。ファイルシステムは純粋にメモリにのみ存在します。
項目は次のとおり/dev/pts
です。擬似端末(ptyと呼ばれる)。 Unixカーネルには共通の概念があります端末。端末は、アプリケーションが端末を介して出力を表示し、入力を受け取る方法を提供します。端末機器。プロセスには次のものがあります。制御端子- テキストモードアプリケーションの場合、これがユーザーと対話する方法です。
端末は、ハードウェア端末(「tty」、「teletype」の略語)、または擬似端末(「pty」)のいずれかです。ハードウェア端末は、シリアルポート(ttyS0
、…)、USB(ttyUSB0
、…)、PC画面、キーボード(、…)などの特定のインターフェースを介して接続されますtty1
。擬似端末は、アプリケーションである端末エミュレータによって提供されます。擬似端末のいくつかのタイプは次のとおりです。
- GUIアプリケーション(xterm、gnome-terminal、konsoleなど)は、キーボードイベントとマウスイベントをテキスト入力に変換し、出力を特定のフォントでグラフィカルに表示します。
- マルチプレクサアプリケーション(screenやtmuxなど)は、他の端末の入力と出力を中継して、実際の端末からテキストモードのアプリケーションを分離します。
- リモートシェルアプリケーション(sshd、telnetd、rlogindなど)は、クライアントのリモート端末とサーバーのptyの間で入出力を中継します。
プログラムが書き込み用に端末を開くと、プログラムの出力が端末に表示されます。複数のプログラムが同時にターミナルに出力することは一般的ですが、出力のどの部分がどのプログラムから出るのかを区別することは不可能であるため、時には混乱することがあります。制御端末に書き込もうとするバックグラウンドプロセスSIGTTOU信号によって自動的に一時停止。
プログラムが読み取り用に端末を開くと、ユーザーの入力がプログラムに渡されます。複数のプログラムが同じ端末から読み出される場合、各文字はプログラムの一つに独立してルーティングされる。これはお勧めできません。通常、特定の時間に1つのプログラムだけが積極的に端末からデータを読み取る。プログラムは、制御端末にないときに制御端末からデータを読み取ろうとします。展望はいSIGTTIN信号によって自動的に一時停止。
実験するには、tty
端末で実行して端末デバイスが何であるかを確認してください。/dev/pts/42
他の端末のシェルで次を実行しますecho hello >/dev/pts/42
。文字列がhello
別の端末に表示されます。cat /dev/pts/42
別の端末を実行して入力してください。コマンドを終了するにはcat
(他の端末を使いにくくすることができます)Ctrl+を押しますC。
たとえば、他の端末に書き込むことが通知を表示するのに役立ちます。write
コマンドはまさにそのことをします。データは通常、他の端末から読み取られません。