Stderr と Stdout を Bash のファイルにリダイレクトする

Abid Ullah 2024年2月15日
  1. Linux の標準出力と標準エラー
  2. 標準出力を Bash のファイルにリダイレクトする
  3. 標準エラーを Bash のファイルにリダイレクトする
  4. 標準出力と標準エラーを Bash のファイルにリダイレクトする
Stderr と Stdout を Bash のファイルにリダイレクトする

この記事では、Linux の標準出力と標準エラーについて説明します。 Bash で標準出力と標準エラーをリダイレクトする方法を確認します。

Linux の標準出力と標準エラーという用語の理解を始めましょう。

Linux の標準出力と標準エラー

Linux では、コマンドは、ファイルまたは任意の属性である可能性があるユーザーからの入力を受け取ります。 これらのコマンドを実行すると、標準出力と呼ばれる、入力した入力の出力が得られます。

この標準出力は、成功またはエラーの可能性があります。 得られた出力がエラーである場合、それを標準エラーと呼びます。

どちらもターミナル画面に表示されます。 コードをテストまたはデバッグするために、標準出力と標準エラーをファイルに保存したい場合があります。

Linux では、これら 2つの出力をファイルにリダイレクトすることができ、それを保存するプロセスはリダイレクトと呼ばれます。

Linux では、すべてのプロセスに対して、標準入力 (stdin)、標準出力 (stdout)、および標準エラー (stderr) の 3つのデータ ストリームがあります。

標準入力 (stdin) は、キーボードを介してユーザーからの入力を受け取ります。 標準出力 (stdout) は、端末画面に出力を表示します。

標準エラー (stderr) は、エラー情報を画面に表示します。 デフォルトでは、標準出力と標準エラーの両方が端末画面に出力されます。

Linux では、各データ ストリームに一意の数値 ID があります。

  • 標準入力 (stdin) の場合、数値 ID は 0 です。
  • 標準出力 (stdout) の場合、数値 ID は 1 です。
  • 標準エラー (stderr) の場合、数値 ID は 2 です。

標準出力と標準エラーのリダイレクトについて詳しく説明しましょう。

標準出力を Bash のファイルにリダイレクトする

Linux では、数値 ID を使用して stdout をファイルにリダイレクトできます。 コマンドの標準出力をリダイレクトするには、記号 > であるリダイレクト操作で 1 を使用します。

この例では、ls コマンドを使用します。 ls コマンドの出力をファイルにリダイレクトします。

次に、テキスト ファイルを表示して、ファイルに保存されている ls コマンドの出力を確認します。

コード例:

$ ls 1> stdout.txt

ファイルを表示するには、次のコマンドを使用します。

$ cat stdout.txt

コードの出力:

ls コマンドの出力をファイルにリダイレクト

上のターミナル画面に示されているように、ターミナルで ls 1> stdout.txt コマンドを使用しました。 このコマンドは、ls コマンドの出力を stdout.txt という名前のファイルに保存します。

Linux で ls コマンドを使用して、すべてのファイルとディレクトリを一覧表示します。 そのため、ls コマンドの出力をファイルにリダイレクトします。

cat コマンドを使用してファイルを表示すると、ls コマンドの標準出力がファイルに格納されていることがわかりました。 これは、数値 ID を使用してコマンドの標準出力をファイルにリダイレクトする方法です。

標準エラーを Bash のファイルにリダイレクトする

数値 ID を使用して 標準エラー をファイルにリダイレクトすることもできます。 標準エラーをファイルにリダイレクトするには、その数値 ID 2 とリダイレクト演算子 > を使用します。

ターミナルで次のコマンドを使用してそれを行うことができます。

コード例:

$ cat file.txt 2> stderr.txt

stderr.txt という名前のファイルを表示するには、次のコマンドを使用します。

$ cat stderr.txt

標準エラー出力をファイルにリダイレクト

ご覧のとおり、ターミナルで cat file.txt 2> stderr.txt コマンドを使用しました。 file.txt という名前のファイルが現在のディレクトリにないため、cat コマンドは、stderr.txt ファイルに追加したエラーを返します。

cat コマンドを使用して stderr.txt ファイルを表示すると、そのようなファイルまたはディレクトリはありません というエラーが表示されていることがわかります。 これは、cat コマンドの標準エラーを stderr.txt という名前のファイルにリダイレクトしたことを意味します。

これは、コマンドの標準エラーをファイルにリダイレクトする方法です。

標準出力と標準エラーを Bash のファイルにリダイレクトする

1つのコマンドを使用して、これら 2つの出力をファイルにリダイレクトすることもできます。 そのために、次のコマンドを使用します。

コード例:

$ ls 1> stdout.txt 2> stderr.txt

stdout.txt ファイルを表示するには、次のコマンドを使用します。

$ cat stdout.txt

stderr.txt ファイルを表示するには、次のコマンドを使用します。

$ cat stderr.txt

1つのコマンドを使用して stdout と stderr をリダイレクトする

ご覧のとおり、1つのコマンドで標準出力と標準エラーをファイルにリダイレクトしました。 ls コマンド出力はファイル stdout.txt に保存され、stderr.txt はエラーが発生しないため空のままになります。

これは、単一のコマンドを使用するだけで、標準出力と標準エラーをファイルにリダイレクトする方法です。

この Linux の記事が、コマンドの標準出力と標準エラーを Bash のファイルにリダイレクトする方法を理解するのに役立つことを願っています。

著者: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

関連記事 - Linux File