0Pricing
Linux Command Line & Bash Scripting Mastery · レッスン

入出力のリダイレクト(>、>>、<)

コマンドの出力をファイルにリダイレクトし、ファイルをコマンドの入力として使う方法を身につけ、スクリプトの柔軟性を高めます。

「入出力のリダイレクト(>、>>、<)」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. プロセス管理(ps、top、kill)
  2. 入出力のリダイレクト(>、>>、<)
  3. コマンドのパイプ(|)
  4. バックグラウンドジョブとジョブ制御
← Linux Command Line & Bash Scripting Masteryに戻る