リダイレクションの概要
Linuxシステムはすべての入出力をファイルとして扱います。リダイレクションは、これらの基本入出力ストリームの方向を変更し、コマンドの結果が画面に表示される代わりにファイルに書き込まれたり、ファイルの内容がコマンドの入力として使用されたりするようにします。
標準入出力ストリーム
すべてのコマンドは基本的に以下の3つの標準ストリームを使用します。
- 標準入力 (stdin, 0): コマンドがデータを読み込むチャネル。デフォルトはキーボードです。
- 標準出力 (stdout, 1): コマンドの正常な結果が出力されるチャネル。デフォルトは画面(ターミナル)です。
- 標準エラー (stderr, 2): コマンドのエラーメッセージが出力されるチャネル。デフォルトは画面(ターミナル)です。
リダイレクション演算子
様々なリダイレクション演算子を使用して入出力の方向を制御できます。以下の生成されたコマンドのようにredirectを直接使用するとエラーが発生します。必ず >, >>, < などの記号でなければなりません。
1. 標準出力リダイレクション
2. 標準エラーリダイレクション
3. 標準入力リダイレクション
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`redirect` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
よく使われる例
リダイレクションを活用した様々な例を通じて、入出力の制御方法を習得しましょう。
コマンド結果をファイルに保存
ls -l > file_list.txt
`ls -l` コマンドの結果を `file_list.txt` ファイルに保存し、既存ファイルがある場合は上書きします。
複数のコマンド結果を1つのファイルに追加
echo "--- 作業開始 ---" >> log.txt
date >> log.txt
`echo` コマンドの結果を `log.txt` ファイルに追加し、続けて `date` コマンドの結果を同じファイルに追加します。`>>` を使用して既存の内容を保持します。
エラーメッセージのみを別のファイルに分離
ls non_existent_file 2> error.log
存在しないファイルに対して `ls` コマンドを実行し、エラーメッセージ(`2>`)のみを `error.log` ファイルに送ります。正常な出力は画面にそのまま表示されます。
入力ファイルをコマンドに渡す
sort < numbers.txt
`sort` コマンドの入力を `numbers.txt` ファイルに指定してファイルの内容をソートします。`sort` はファイルの内容を標準入力として受け取り処理します。
出力とエラーの両方を1つのファイルに
ls /home non_existent_file &> output_and_error.log
正常な出力とエラーメッセージの両方を `output_and_error.log` ファイルに保存します。