Linuxのすべてのプロセスは、stdin、stdout、およびstderrの3つのデータストリームを生成します。
- stdin :キーボードを介してユーザーから入力を受け取ります
- stdout :画面に出力を表示します
- stderr :画面にエラー情報を表示します
すべてのデータストリームには数値IDがあります。
数値ID | 名前 |
0 | stdin |
1 | stdout |
2 | stderr |
リダイレクトについてもう少し詳しく説明しましょう。
Bashで標準出力と標準エラーをリダイレクトする方法:
コマンドの標準出力をリダイレクトするために、>記号より大きいリダイレクト演算子で1を使用します。
$ls 1>>stdout.txt上記のコマンドはファイルを作成し、lsコマンドの標準出力をstdout.txtファイルに配置します。
stdout.txtファイルを読み取るには、次を使用します。
$猫stdout.txt
次のコマンドを使用して、標準エラーをファイルにリダイレクトすることもできます。
$猫myfile.txt2>>stderr.txt
stderr.txtファイルを表示するには、次を使用します。
$猫stderr.txt
使用2が>記号よりも大きいことを確認してください。ディレクトリにmyfile.txtファイルがないため、catコマンドはstderr.txtファイルに追加されるエラーを出します。
これらの標準出力は、次のコマンドを使用してリダイレクトすることもできます。
$ls 1>>stdout.txt2>>stderr.txt
lsコマンドの出力はに書き込まれます stdout.txt ファイル、しかし stderr.txt エラーが発生しないため、空のままになります。
それでは、stderr.txtを実行してみましょう。
$猫myfile.txt1>>stdout.txt2>>stderr.txt
stderr.txtを読み取るには、以下のコマンドを使用します。
$猫stderr.txt
そしてもちろん、stdout.txtは空になります。
結論 :
実行時のLinuxコマンドは、成功出力またはエラー出力の標準出力を提供します。通常、これらの出力はリダイレクト演算子を使用してリダイレクトできません。 >記号の付いた特定の数値IDを使用する必要があります。このガイドでは、これらの数値キーを使用して、標準出力をファイルにリダイレクトする方法を例とともに学習しました。