Linux の学習を続ける中で、コマンドがどのように出力を生成するかを見てきました。ここで、I/O(入出力)ストリーム、特に標準出力またはstdoutという重要なトピックに入ります。次のコマンドを実行して、この概念を探ってみましょう。
echo Hello World > peanuts.txt
これを実行すると、カレントディレクトリにpeanuts.txtという名前の新しいファイルが見つかります。その内容を見ると、「Hello World」というテキストが表示されます。何が起こったのかを分解してみましょう。
標準出力 (stdout) の理解
まず、特殊文字なしでコマンドを考えてみましょう。
echo Hello World
デフォルトでは、多くのコマンドは結果をstdout、つまりターミナル画面に送信します。これが、echo Hello Worldがシェルに直接テキストを表示する理由です。プロセスは、入力を受け取る(標準入力または stdin)ために I/O ストリームを使用し、出力を送信します。I/O リダイレクションにより、このデフォルトの動作を変更し、データに対するより大きな制御が可能になります。
> を使用した stdout のリダイレクト
>文字はリダイレクト演算子です。これはstdoutに向かうデータを傍受し、新しい宛先に送信します。
>
私たちの例では、echo Hello Worldの出力を画面ではなくファイルに送信します。ファイルが存在しない場合は作成されます。注意してください。ファイルが既に存在する場合、この演算子は内容を完全に上書きします。
>> を使用した stdout の追記
ファイルの内容を消去せずにファイルに追加したい場合はどうでしょうか?そのためには、>>演算子を使用します。
echo Hello World >> peanuts.txt
この演算子は、出力を指定されたファイルの末尾に追加します。ファイルがまだ存在しない場合は、>演算子と同様に作成されます。stdoutリダイレクトを習得することは、Linux の旅における基本的な一歩です。