前回のレッスンでは、標準出力 (stdout) ストリームのリダイレクトについて学習しました。同様に、標準入力 (stdin) ストリームを管理することもできます。デフォルトでは、プログラムはキーボードから stdin を受け取りますが、ファイルや他のプロセスの出力を入力ソースとして使用することもできます。
stdin と stdout の理解
Linux のすべてのコマンドラインプロセスは、少なくとも 2 つの基本的なデータストリーム、つまり標準入力 (stdin) と標準出力 (stdout) を使用して動作します。プログラムは stdin からデータを読み取り、結果を stdout に書き込みます。効果的なコマンドライン操作のためには、stdin と stdout の両方を制御する方法を理解することが不可欠です。
stdin のリダイレクト方法
stdout のリダイレクトに > を使用するのと同じように、stdin をリダイレクトするには < 演算子を使用します。この強力な機能により、コマンドに対して、キーボードからの入力を待つのではなく、ファイルから入力を読み取るように指示できます。これは入力リダイレクトの核となる概念です。
cat stdin を使用した実践的な例
前回のレッスンで「Hello World」というテキストが含まれていた peanuts.txt ファイルをもう一度見てみましょう。次のコマンドを検討してください。
cat < peanuts.txt > banana.txt
ここで何が起こるかを分解します。
< peanuts.txtの部分は、シェルに対してcatコマンドのstdinをリダイレクトし、キーボードからではなくpeanuts.txtから読み取るように指示します。catコマンドはその入力を処理します。この場合、cat stdinを使用することは、peanuts.txtの内容を読み取ることを意味します。> banana.txtの部分は、catの標準出力をbanana.txtという新しいファイルにリダイレクトします。
最終的に、peanuts.txt の内容が banana.txt にコピーされます。この例は、単一の効率的なコマンドで stdin と stdout の両方を管理する方法を効果的に示しています。