入出力のリダイレクト(>、>>、<)
コマンドの出力をファイルにリダイレクトし、ファイルをコマンドの入力として使う方法を身につけ、スクリプトの柔軟性を高めます。
「入出力のリダイレクト(>、>>、<)」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
I/Oリダイレクションとは
Linuxでは、コマンドが出力を生成したり、入力を必要としたりすることがよくあります。入出力(I/O)リダイレクションを使うと、コマンドが入力を受け取る場所や、出力を送る場所を変更できます。
画面(ターミナル)に出力を表示するだけでなく、ファイルに保存したり、ファイルの内容を別のコマンドに直接渡したりできます。
標準ストリームを理解する
Linuxのすべてのコマンドは、3つの「標準」データストリームとやり取りします。
- Standard Input (STDIN):コマンドが入力を受け取る場所です(通常はキーボード)。
- Standard Output (STDOUT):コマンドが通常の出力を送る場所です(通常は画面)。
- Standard Error (STDERR):コマンドがエラーメッセージを送る場所です(通常はこれも画面)。
リダイレクションを使うと、これらのデフォルトの出力先や入力元を変更できます。
「>」で出力を取得する
>演算子は、コマンドの標準出力(STDOUT)をファイルにリダイレクトするために使用します。画面に表示する代わりに、コマンドの出力が指定したファイルに書き込まれます。
重要:ファイルがすでに存在する場合、>は新しい出力でファイルの内容全体を上書きします。重要なデータを誤って削除しないよう注意してください。
例:コマンドの出力を保存する
ls -lコマンドの出力をmy_files.txtという名前のファイルに保存しましょう。その後、catを使ってファイルの内容を確認します。
ls -l > my_files.txt
cat my_files.txt「>>」でファイルに追加する
ファイルを上書きするのではなく、末尾に新しい内容を追加したい場合があります。そのときに使うのが>>演算子です。
>>は標準出力(STDOUT)をファイルにリダイレクトします。ファイルがすでに存在する場合は、既存の内容を残したまま、新しい出力をファイル末尾に追加します。
例:ログに追加する
まず、簡単なファイルを作成します。次に、>>を使って別の行を追加します。元の内容が保持されることを確認してください。
echo "First line of log." > app_log.txt
echo "Second line added." >> app_log.txt
cat app_log.txt「2>」でエラーを処理する
エラーメッセージはどうなるのでしょうか。エラーメッセージは標準エラー(STDERR)に送られます。STDERRをファイルにリダイレクトするには、ファイルディスクリプター2の後に>演算子を付けた2>を使用します。
これは、通常の出力を乱雑にせずエラーを記録したり、スクリプトをデバッグしたりする際に非常に便利です。
例:エラーメッセージを記録する
存在しないディレクトリを一覧表示してみましょう。通常、エラーメッセージは画面に表示されますが、代わりにerrors.logへリダイレクトします。
ls /this/path/does/not/exist 2> errors.log
echo "Command finished. Check errors.log."
cat errors.log「<」で入力を渡す
<演算子は、標準入力(STDIN)をリダイレクトするために使用します。コマンドがキーボードからの入力を待つ代わりに、指定したファイルから直接入力を読み取るようにします。
これは、コマンドが大量の入力を必要とするタスクを自動化したり、ファイルの内容を直接処理したりする場合に役立ちます。
例:ファイルから並べ替える
並べ替えられていない名前を含むファイルを作成し、<を使ってsortコマンドにそのファイルから入力を読み取らせます。
echo -e "Charlie\nAlice\nBob" > names.txt
sort < names.txtクイックチェック:リダイレクション
標準出力のリダイレクト、出力の追加、エラー処理、ファイルからの入力について学びました。理解度を確認してみましょう。
復習:I/Oリダイレクションの力
よくできました。LinuxにおけるI/Oリダイレクションの基礎を習得しました。
>はSTDOUTをリダイレクトし、ファイルを上書きします。>>はSTDOUTをリダイレクトし、ファイルに追加します。2>はSTDERRをリダイレクトし、エラーメッセージを取得します。<はSTDINをリダイレクトし、コマンドがファイルから読み取れるようにします。
これらの演算子は、スクリプト作成、ログ記録、タスクの自動化において非常に強力です。練習を続けてください。
よくある質問
「入出力のリダイレクト(>、>>、<)」レッスンは無料ですか?
はい。「入出力のリダイレクト(>、>>、<)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
「入出力のリダイレクト(>、>>、<)」で何を学びますか?
コマンドの出力をファイルにリダイレクトし、ファイルをコマンドの入力として使う方法を身につけ、スクリプトの柔軟性を高めます。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「入出力のリダイレクト(>、>>、<)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- プロセス管理(ps、top、kill)
- 入出力のリダイレクト(>、>>、<)
- コマンドのパイプ(|)
- バックグラウンドジョブとジョブ制御