Linuxの基礎:ファイルディスクリプタとリダイレクト

ファイル記述子について:負でない整数の形式でファイル記述子、開いているファイル記述子と、それぞれがファイルにアクセスするファイル記述子を使用してカーネルに対応して、最もよく知られているファイル記述子STDINがある(標準入力)、彼らのためにSTDOUT(標準出力)、標準エラー出力(標準誤差)、3つのシステムは、以前に予約されたファイルディスクリプタ0、1は、我々はまた、私たちに特別な順序で指定されたファイル記述子を与えることができます。

リダイレクトは意味:IO、中のLinuxは通常、ファイル記述子に関連付けられている指定された別のファイルディスクリプタにファイルディスクリプタの内容にリダイレクトされます。

最も一般的に使用されるコンテンツの標準は、我々は、指定したファイルに出力をリダイレクトすることができます。その代わりに、端末の、リダイレクト演算子(>と>>)を使用して、出力ファイルに送信することができます。>そして>>わずかに異なる、両方をテキストファイルにリダイレクトすることができますが、前者はファイルをクリアして、デフォルトでは、既存のファイルの末尾に追加されますコンテンツを、書きますが、重いですオペレータのための配向は標準出力されるので、>類似>> 1に等しい、> 1と同等です。

1:標準出力と標準エラー出力のリダイレクト

2:<演算子は、ファイルSTDINを読みます

3:カスタムファイルディスクリプタ

4:teeコマンド

1:例えば、echoコマンドが標準出力に文字列を指定され、その後、我々は指定したファイルに指定した文字列を送信しますechoコマンドを組み合わせることができます。

 これは、コンテンツ記述子STDOUT(1)は、test.txtというオペレータをリダイレクトしてファイルにリダイレクトされます。

エラーを処理する場合、標準エラー出力からの出力は、を/ dev / nullにファイルを/ dev / nullに注いだことは、特別なデバイスファイルで、彼はすべてのデータを受信し破棄します。それはそれでデータが永遠に消えてしまいますので入る。また、ブラックホールとして知られています。同じことが、我々はまた、保存のため、ファイルに標準エラー出力をリダイレクトすることができます。

次に、このコマンドはリダイレクト演算子のために、デフォルトでは標準出力、標準出力で、出力がないので、代わりにテキストにリダイレクトする、画面に印刷されたテキストを標準エラー出力が、標準エラー出力します

標準エラー出力のリダイレクト演算子がファイルディスクリプタを指定する前に、標準エラー出力をリダイレクトすることができます

2:コマンドは、さまざまな方法でデータを受信する入力を標準入力から読み取ら:

シンボル未満を意味し、我々は標準入力として使用する画像データファイルを読み込むことができます。cmd <ファイルを、(CMDコマンドは、データファイルが必要です)

CMD2 |多くの場合、次のコマンド、CMD1の標準入力に標準出力のリダイレクトコマンドの前に、パイプが使用される場合。

3:(数値シンボルに&ファイル記述子の後ろに)読み取りのためのファイルディスクリプタを作成するためのexecコマンドを実行します。

書き込み用ファイルディスクリプタを作成します。

4:標準出力ファイルのいずれかにリダイレクトすることができ、他のプログラムもまた、この動作指令ティー、STDINから読み出しティーコマンドを達成することができるデータをファイルにリダイレクトすること、及び、同時に両方の導管を通過することはできませんがで標準出力(stdout)にデータをリダイレクトします。cmd |ティーFILE1 FILE2 | othercmd

たとえば、lsコマンドリストについてcatコマンドは、ファイルの内容と標準出力の両方の結果を表示するには:

ファイルを保存するための追加方法を指定-a

この知識は、execコマンドと同様に、ファイルオープンモード、標準入力と出力の予備的な理解を理解する必要があります。

おすすめ

転載: www.linuxidc.com/Linux/2019-10/161162.htm