私たちは、知っているLinuxの標準入力デバイスは、デフォルトのキーボードを指し、標準出力デバイスは、デフォルトの表示を参照します。このセクションの入力および出力のリダイレクションを導入することである、すなわち、文字通りの意味で理解することができます。
- 入力リダイレクションは:代わりにキーボード入力装置の新たなデバイスとして再指定を指します。
- 出力リダイレクションは:代わりに表示出力デバイスの新しいデバイスとして再指定を指します。
典型的に、または代わりに新しいとしてキーボード入力装置のコマンド・ファイルの結果と、新しい出力装置は、一般に、ファイルを参照します
Linuxの入力のリダイレクト
入力リダイレクション、その効果を表1に示す記号を使用する必要性のために。
コマンドシンボル形式 | 効果 |
---|---|
コマンド<ファイル | コマンド入力装置として指定されたファイル |
コマンド<<区切り | これは、区切り文字列がカスタマイズ実際に、それは(読み出しデータ区切り文字を含まない)停止の区切り文字を検出するまでの標準的な入力装置(キーボード)からの読み出しを示しています |
コマンド<資料1>ファイル2 | 実行結果は、コマンドファイル入力装置1、ファイル2へのコマンドとして出力されます。 |
[実施例1]
デフォルトでは、catコマンドは、標準入力装置(キーボード)を受け入れ、コンソールに、その後ファイルの代わりに、入力装置としてキーボード、コマンドであれば入力装置として指定されたファイルに、およびファイルの内容が読み込まれ、コンソール上に表示されます。
で、/ etc / passwdファイル(システム内のすべてのユーザーのための基本的な情報に格納されている)の例として、次のコマンド
[ルートは、@ localhostの〜] #のCAT / etc / passwdファイル #がここに出力情報を省略し、読者が自分の見ることができ ます。[root @ localhostの〜] #1 </ etc / passwdファイルCATを #の出力上記と同じコマンドを
なお、最初の行の同じ結果であるがしかし、入力装置としてキーボードの代表であり、2行目は、入力装置として、/ etc / passwdファイルです。
【例 2】
[ルート@ localhostの〜] #の猫<< 0 > c.biancheng.net > Linuxの > 0 c.biancheng.net のLinux
区切り文字が入力されない限り0、0として指定された場合、入力データが有することができることが分かります。
[実施例3]
まず、新しいテキストファイルa.txは、次のコマンドを実行します。
[ルート@ localhostの〜] #のCATのA.TXT [ルート@ localhostの〜] #のCAT </ etc / passwdファイル> A.TXT [ルート@ localhostの〜] #のCAT A.TXTの #1 と同じ内容を出力して、/ etc / passwdファイルデータ
これは、入力装置としてリダイレクト/ etc / passwdファイルが見ることができ、出力は、最終的にA.TXTに/ etc / passwdファイルの内容をコピーするために、A.TXTにリダイレクトされます。
Linuxの出力のリダイレクト
入力のリダイレクトと比較すると、出力のリダイレクトは、我々はより高い周波数を使用しています。差が入力リダイレクションであり、そして、出力のリダイレクトはまた、2つの技術エラー出力と標準出力のリダイレクトをリダイレクトするように細分することができます。
例えば、LSの属性情報を使用すると、それぞれ、2つのファイルを表示するためのコマンドが、次のようにファイルが、存在しません。
[ルート@ localhostの〜] #のタッチdemo1.txt [ルート@ localhostの〜] #lsの-l demo1.txt -rw-RW-r--の。1ルートルート0 10月12日15:02 demo1.txt [ルート @localhost〜] #lsの-l demo2.txt < -不存在的文件 LS:アクセスできないdemo2.txt:そのようなファイルやディレクトリはありません
上記のコマンド、demo1.txt存在するので、コマンド実行の標準出力されるファイルの出力属性情報の正しい数; demo2.txtが存在しないと、このようにエラーメッセージがlsコマンドの後に表示行いますコマンドのエラー出力です。
ここでも、ファイルに書き込まれた順番に画面上の元のデータを出力するために、二つの出力情報は、異なる方法で処理されます。
これに基づき、標準出力のリダイレクトとエラー出力と追加書き込みモードを空にして書き込みを含む各リダイレクト。したがって、出力は、表2に示すように、記号およびアクションを使用する必要がある、リダイレクトされます。
コマンドシンボル形式 | 効果 |
---|---|
コマンド>ファイル | 指定されたファイルへのリダイレクトを出力するコマンドの標準出力、ファイルが既にデータが含まれている場合は、既存のデータをクリアし、新しいデータを書き込むことになります。 |
コマンド2>ファイル | ファイルがすでにデータが含まれている場合は、指定したファイルにリダイレクトコマンド実行のエラー出力は、既存のデータをクリアし、新しいデータを書き込むことになります。 |
コマンド>>ファイル | ファイルがすでにデータが含まれている場合は、指定したファイルへのリダイレクトを出力するコマンドの標準出力は、新しいデータが元のコンテンツに書かれています。 |
2 fileコマンド>> | ファイルがすでにデータが含まれている場合は、指定したファイルにリダイレクトコマンド実行のエラー出力は、新しいデータが元のコンテンツに背を書かれています。 |
コマンド>>ファイル2>&1 または コマンドファイル&>> |
標準出力またはエラー出力ファイルが既にデータが含まれている場合は、指定したファイルに書き込まれる新しいデータは元の内容に書かれています。一体化され、第1の形式のこと最後2>&1注、それが固定された文言とみなすことができます。 |
(例4)新しい「Linuxの」Linux.txt文字列テキストファイル、テキストファイル、空demo.txtで、次のコマンドを実行します。
[ルート@ localhostの〜] #CAT Linux.txt> demo.txt [ルート@ localhostの〜] #のCAT demo.txt Linuxの [ルート @localhost〜] #CAT Linux.txt> demo.txt [ルート@ localhostの〜] #のCAT demo.txt のLinux < - ここでは、Linuxは新しいLinuxの書き込み、オリジナルのLinuxをクリアすることです後 、[ルート @localhostを〜] #CAT Linux.txt >> demo.txt [ルート@ localhostの〜] #CATデモ。 TXT のLinux のLinux < - 追加元のデータに新しいデータを書き込む方法の後に 、[ルート @localhost〜] #のdemo.txt CATのB.TXT> CAT:B.TXT:いいえファイルまたはディレクトリ<SUCH -エラーディスプレイへの出力、まだ出力 [ルート @localhost〜] #のCAT 2> demo.txt B.TXT [ルート@ localhostの〜] #のCATのdemo.txtの CAT:B.TXT:いいえそのようなファイルやディレクトリは< - ファイルを空にした後、エラーメッセージ出力を書きますファイルに [ルート @localhost〜] #のCAT B.TXT 2 >> demo.txt [ルート@ localhostの〜] #のCATのdemo.txtの B.TXT:そのようなファイルやディレクトリはありませんCAT CAT:B.TXT:ファイルまたはディレクトリSUCH NO < -追加の書き込みエラー出力