LinuCレベル1 101出題範囲「1.03.3 ストリーム、パイプ、リダイレクトの使用」の解説まとめ

IT資格

LinuCレベル1 101試験の出題範囲「1.03.3 ストリーム、パイプ、リダイレクトの使用」の解説をまとめて紹介します。

重要度4
概要テキストデータを効果的に処理するためにストリームのリダイレクトや接続ができる。この作業には標準入力、標準出力、標準エラー出力へのリダイレクト、あるコマンドの出力を別のコマンドの入力にパイプする、あるコマンドの出力を別のコマンドの引数として使用する、出力を標準出力とファイルの両方に送るといったことが含まれる。
詳細標準入力、標準出力、標準エラー出力をリダイレクトする。
 ・<, >, >>, 2>&1
あるコマンドの出力を別のコマンドの入力にパイプする。
 ・| (縦線)
あるコマンドの出力を別のコマンドの引数として使用する。
 ・xargs
出力を標準出力とファイルの両方に送る。
 ・tee
LinuCレベル1 101試験 出題範囲 | LPI-Japan
仮想環境を含むLinuxシステムの基本操作とシステム管理が行えるエンジニアであることを認定します。試験センターの他に自宅でも受験できます。受験費用は税込16,500円。

標準入力、標準出力、標準エラー出力をリダイレクト

LinuCレベル1 101試験の出題範囲に指定されているリダイレクトについて解説します。出題範囲に指定されている以下の記号について、また、リダイレクトについてLinuC公式の101試験の例題の解説に以下のように説明があります。

<, >, >>, 2>&1

リダイレクトは、入出力の切り替えを行う機能です。
「>」は標準出力の切り替えを意味し、「<」は標準入力の切り替えを意味します。

「コマンド > ファイル」を実行すると、コマンドが標準出力に出力したデータを、ディスプレイに出力するのではなく、ファイルに出力する動きになります。
この時、ファイルが存在しない場合はファイルを作成し、ファイルが存在する場合、データを上書きします。

一方で、「コマンド >> ファイル」を実行すると、データの追記が行われます。

また「コマンド < ファイル」を実行すると、入力をキーボードからファイルに切り替えます。つまりファイルを読み込んでコマンドに入力として渡す動きになります。

その他の使い方として、以下が挙げられます。

「コマンド 2> ファイル」を実行すると、標準エラー出力をファイルに出力します。
「コマンド > ファイル 2>&1」を実行すると、標準出力・標準エラー出力ともにファイルに出力します。

ストリーム、パイプ、リダイレクトの使用 - Linux技術者認定 LinuC | LPI-Japan
LinuCレベル1を受験される方向けに101試験の例題と解説をご紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に含ま...

より詳しい説明は以下の例題の解説が参考になります。

ストリーム、パイプ、リダイレクトの使用 - Linux技術者認定 LinuC | LPI-Japan
LinuCレベル1を受験される方向けに101試験の例題と解説をご紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に含ま...

解説に記載してある説明を引用して紹介していきます。

「標準入力」「標準出力」「標準エラー出力」の概要

準備中。

リダイレクト時に使用する「<, >, >>, 2>&1」などの説明

前述した以下の例題の解説を参照して、リダイレクトに使用する記号、<や>などについての解説をします。

ストリーム、パイプ、リダイレクトの使用 - Linux技術者認定 LinuC | LPI-Japan
LinuCレベル1を受験される方向けに101試験の例題と解説をご紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に含ま...

まずは「<」については以下のように説明されています。

リダイレクト記号の「<」は、標準入力の切り替えをするために使用されます。
・ <(入力リダイレクト)
標準入力を指定したファイルから読み込みます。コマンドは、ファイルの内容を入力として受け取ります。
例:

$ sort < input.txt

このコマンドでは、input.txt の内容が sort コマンドの標準入力として渡され、その内容がソートされます。

次に「>」についての説明です。「>」は標準出力した内容をファイルに上書きします。

リダイレクト記号「>」は、標準出力の出力先を変更するために使用されます。
・ >(上書きリダイレクト)
標準出力を指定したファイルに上書きします。もしファイルが存在すれば、その内容は消去され、新しい内容が書き込まれます。
例:

$ echo "Hello, World!" > output.txt

このコマンドでは、”Hello, World!” という文字列が output.txt に書き込まれます。もし output.txt がすでに存在していれば、その内容は上書きされます。

・ >>(追記リダイレクト)
標準出力を指定したファイルに追記します。ファイルが既に存在していれば、ファイルの末尾に新しい内容が追加されます。
例:

$ echo "Hello again!" >> output.txt

このコマンドでは、”Hello again!” が output.txt の末尾に追加されます。

・ 2>(標準エラー出力のリダイレクト)
標準エラー出力を指定したファイルに上書きします。エラーメッセージをファイルに保存する際に使用します。
例:

$ ls nonexistent_directory 2> error.log

このコマンドでは、存在しないディレクトリ(nonexistent_directory)を参照し、エラーメッセージが error.log ファイルに保存されます。error.log ファイルには、以下のようにエラーメッセージが書き込まれます。

$ cat error.log
   ls: 'nonexistent_directory' にアクセスできません: そのようなファイルやディレクトリはありません

・ 2>>(標準エラー出力の追記)
標準エラー出力を指定したファイルに追記します。エラーメッセージを追記して保存する場合に使用します。
例:

$ ls nonexistent_directory 2>> error.log

このコマンドでは、エラーメッセージが error.log の末尾に追加されます。

・ 2>&1(標準エラーの出力先を標準出力にする)
標準エラー出力を標準出力に合わせてリダイレクトします。この方法で、標準エラー出力も標準出力と同じファイルに書き込むことができます。
例:

$ echo "Output" > all_output.log 2>&1

このコマンドでは、標準出力と標準エラー出力が両方とも all_output.log に書き込まれます。

タイトルとURLをコピーしました