Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linux I /Oでリダイレクトする方法についてのいくつかのヒント

Linux I /Oでリダイレクトする方法についてのいくつかのヒント

  

Linux I /Oリダイレクトは非常に簡単ですが、スクリプト作成やシステム管理に非常に役立ちます。
はじめに、I /Oリダイレクトとは何ですか?いわゆるI /Oリダイレクトとは、単にファイル、またはコマンド、プログラム、スクリプト、さらにはスクリプト内のコードブロックをキャプチャするプロセスです。出力は、別のファイル、コマンド、プログラム、またはスクリプトへの入力として送信されます。
I /Oリダイレクトに関しては、ファイル記述子の概念が含まれていますLinuxシステムでは、システムはファイルを追跡できるように、開いている各ファイルにファイル識別子を割り当てます。 Cプログラミングのファイルハンドルに似たものがいくつかありますが、ファイル識別子は数字で、数字は意味が異なりますデフォルトでは、システムは3を占め、0は標準入力(stdin)と1は標準出力(stdout)です。 、2標準エラー(stderr)、および3-9は予約済みの識別子で、一時的な接続として標準入力、出力、またはエラーとして指定できます。これは通常、多くの複雑なリダイレクト要求を解決します。
標準入力は通常キーボードの入力を指します標準出力は通常モニタの出力を指します。
標準エラーは通常ディスプレイに送られます。それらの関係については、次の例を参照してください。
#ls /dev < Br>このコマンドは、/devディレクトリ内のすべてのファイルを一覧表示し、結果を画面に出力します。
ここで/devはコマンドlsの標準入力(キーボードから入力)で、画面に表示される結果は標準出力(/devディレクトリの内容)またはタイトルに戻る、リダイレクトは標準入力または標準出力です。他の方法に変更するには、次の例を参照するか、または同等のものを参照してください。
#ls /dev 1> filename#注:「1」と「>」の間にスペースはありません。ファイル識別子が指定されていない場合、システムのデフォルトは1になるため、1を省略することもできます。
上記の例を変更した場合は、>"に変更してください。;>>"は、ファイル名ファイルの末尾に出力を追加し、ファイルが存在しない場合は作成することを意味します。次の
#ls /dev>> filename
は標準エラーをファイルにリダイレクトすることもできます。
#ls -qw /dev 2> filename
明らかに-qwはエラーパラメータです。エラーメッセージがディスプレイに表示されますが、2標準エラー(stderr)はファイルfilenameにリダイレクトされるため、ディスプレイにエラーメッセージは表示されず、メッセージはファイルに書き込まれます。
次のコマンドは、標準出力とエラーをファイルに送ります。
#ls /dev&> filename
"&"これは標準出力と標準エラーを表します。通常の出力またはエラーメッセージがfilenameに書き込まれます。
標準の入力、出力、およびエラーのファイル識別子を再定義する
ファイル識別子を再定義するには、i>& jコマンドを使用してファイル識別子iをjにリダイレクトします。;""アドレスを取得"として理解する

次の例を参照してください。
#e xec 5>& 1
は、ファイル識別子5を標準出力に送ることを意味します。標準入力を保存します。
#grep search-word
一般的に、grepコマンドはファイルfilenameをgrepコマンドとして使用します。キーボードから入力する代わりに標準入力。
前述したように、システムはファイルを追跡できるように、開いている各ファイルにファイル識別子を割り当てます。デフォルトのファイル識別子は何ですか。答えは0で、これは標準入力、またはキーボードから入力されたと言えます。もちろん、このファイル識別子は単独で指定することもできます:
#e cho 123456789> filenameファイル名に文字列を書き込みます#e xec 3<> filenameファイルfilenameを開き、ファイル識別子を指定します文字は3 #read -n 4<& 3ではファイルから4文字が読み取られ、ハンドルは4番目の文字#e cho -nの末尾をポイントしています>& 3 5番目の文字にポイントを書き込みます5番目の文字をカバーする、-nは#e xec 3をラップしないことを意味します - > - ファイル識別子をクローズします。
cat filenameファイルの結果は1234.6789になります。ファイル識別子がjであることを示します。「& - 」は、ファイル識別子を閉じることを意味します。ファイル識別子を閉じる操作については、次を参照してください。
n<& - 入力ファイル識別子を閉じるn 0<& - または<& - 標準入力を閉じるn>& - 出力ファイルの識別子を閉じるn 1> - または& - 標準出力を閉じる標準出力
他のコマンドがあります下記のように参照
> filenameまたは> filename
は、ファイルfilenameを空に設定する、つまりファイルの内容を空にする、ファイルが存在しない場合は空のファイルを作成する、という2つのコマンドです。唯一の違いは、> filenameがすべてのシェルで機能していないことです。

Copyright © Windowsの知識 All Rights Reserved