RHEL 7 – RHCSA ノート (チート シート)
3 つの標準ファイル記述子:
1. stdin 0 - Standard input to the program. 2. stdout 1 - Standard output from the program. 3. stderr 2 - Standard error output from the program.
目的 | コマンド |
---|---|
標準出力をファイル名にリダイレクト | > ファイル名または 1> ファイル名 |
std をファイル名に追加 | >> ファイル名 |
std out と std err をファイル名に追加 | >> ファイル名 2>&1 または 1>> ファイル名 2>&1 |
ファイル名から入力を取得 | <ファイル名または 0 <ファイル名 |
標準エラーをファイル名にリダイレクト | 2> ファイル名 |
標準出力と標準エラーをファイル名にリダイレクト | 1> ファイル名 2>&1 または> ファイル名 2>&1 |
I/O リダイレクトの使用例
# cat goodfile badfile 1> output 2> errors
このコマンドは、通常の出力 (goodfile の内容) を file 出力にリダイレクトし、エラー (badfile が存在しないなど) を file errors に送信します。
# mail user_id < textfile 2> errors
このコマンドは、メール コマンドの入力をファイル textfile から取得するようにリダイレクトし、エラーはすべてファイル エラーにリダイレクトします。
# find / -name xyz -print 1> abc 2>&1
このコマンドは、通常の出力をファイル abc にリダイレクトします。構文「2>&1」は、「エラー出力を、通常の出力を指示したのと同じ場所に送信する」ことを示しています。
順序が重要であることに注意してください。 command 2>&1 1>file は command 1>file 2>&1 と同じではありません。これは、2>&1 構造が、標準エラーを現在標準出力が出力されている場所にリダイレクトすることを意味するためです。構築コマンド 2>&1 1>file は、最初に標準エラー出力を標準出力が出力される場所 (おそらくデフォルトでは標準エラー出力が出力される端末) にリダイレクトし、次に標準出力をファイルにリダイレクトします。これはおそらく意図したものではありません.# ( grep Bob filex > out ) 2> err
– grep コマンドのすべての出力はファイル out に送信され、すべてのエラーはファイル err に送信されます。
# 検索 . -name xyz -print 2>/dev/nullこれにより、find コマンドが実行されますが、(アクセスできないディレクトリなどによる) エラー出力が /dev/null に送信されます。エラー出力が本当に重要でない場合を除き、注意して使用してください。
Cent OS