カテゴリ: Linux基礎 更新日: 2026/05/23

Linuxの標準入出力とは?stdin・stdout・stderrの基本を初心者向けにわかりやすく解説

Linuxの標準入出力とは?stdin・stdout・stderrの基本を解説
Linuxの標準入出力とは?stdin・stdout・stderrの基本を解説

先生と生徒の会話形式で理解しよう

生徒

「Linuxでコマンドを実行すると、文字が表示されますよね?あれってどういう仕組みなんですか?」

先生

「いいところに気がつきましたね。あれは『標準出力』という仕組みで表示されています。」

生徒

「標準出力?ほかにも種類があるんですか?」

先生

「はい。Linuxには標準入力、標準出力、標準エラー出力の3つがあります。それぞれ役割が違います。」

生徒

「なんだか難しそうです…」

先生

「大丈夫です。キーボードと画面の関係に例えると、とてもわかりやすくなりますよ。」

1. Linuxの標準入出力とは?

1. Linuxの標準入出力とは?
1. Linuxの標準入出力とは?

Linuxの標準入出力とは、プログラムやコマンドがデータを受け取ったり、結果を表示したりするための基本的な仕組みです。初心者の方でも理解しやすいように説明すると、パソコンとのやり取りの入口と出口のようなものです。

例えば、キーボードから文字を入力して、画面に結果が表示されるという流れがあります。このとき、入力する部分と表示される部分がそれぞれ役割を持っています。

  • 入力する部分が標準入力
  • 表示される部分が標準出力
  • エラーが表示される部分が標準エラー出力

この3つをまとめて標準入出力と呼びます。Linuxコマンドを理解するうえでとても重要な基本知識です。

2. 標準入力 stdinとは?

2. 標準入力 stdinとは?
2. 標準入力 stdinとは?

標準入力とは、プログラムがデータを受け取る入口のことです。一般的にはキーボードからの入力が標準入力になります。

たとえば、文字を入力してその内容を表示するコマンドであるcatを使うと、標準入力の動きがよくわかります。


cat
hello
hello

この例では、キーボードからhelloと入力しています。この入力が標準入力としてプログラムに渡され、そのまま画面に表示されています。

つまり、標準入力とは外からデータを受け取る窓口のようなものです。

3. 標準出力 stdoutとは?

3. 標準出力 stdoutとは?
3. 標準出力 stdoutとは?

標準出力とは、コマンドの実行結果を画面に表示する仕組みです。普段ターミナルに表示されている内容はほとんどが標準出力です。

例えば、ファイル一覧を表示するlsコマンドを実行すると、結果が画面に表示されます。


ls
Documents  Downloads  file.txt

この表示が標準出力です。プログラムが処理した結果をユーザーに伝えるための出口になります。

初心者の方は、画面に表示されるものはすべて標準出力と考えておくと理解しやすいです。

4. 標準エラー出力 stderrとは?

4. 標準エラー出力 stderrとは?
4. 標準エラー出力 stderrとは?

標準エラー出力とは、エラーが発生したときに表示される専用の出力です。標準出力とは別の経路で表示されるのが特徴です。

存在しないファイルを表示しようとするとエラーになります。


cat nofile.txt
cat: nofile.txt: No such file or directory

このエラーメッセージが標準エラー出力です。通常の結果とは区別して扱われます。

なぜ分ける必要があるかというと、結果とエラーを別々に処理できるようにするためです。これにより、エラーだけをログに保存するなどの操作が可能になります。

5. 標準入出力の番号を理解しよう

5. 標準入出力の番号を理解しよう
5. 標準入出力の番号を理解しよう

Linuxでは標準入出力にはそれぞれ番号が割り当てられています。この番号を知っておくと、リダイレクト操作が理解しやすくなります。

  • 標準入力 stdin は 0
  • 標準出力 stdout は 1
  • 標準エラー出力 stderr は 2

この番号は普段あまり意識しませんが、出力の切り替えなどで使われます。


echo "hello"
hello

このechoコマンドの結果は標準出力として画面に表示されています。番号1の出口から出ているイメージです。

6. 標準入出力をイメージで理解する

6. 標準入出力をイメージで理解する
6. 標準入出力をイメージで理解する

標準入出力は難しく感じるかもしれませんが、身近なもので例えるととてもシンプルです。

次のように考えると理解しやすくなります。

  • 標準入力はキーボードからの入力
  • 標準出力は画面への表示
  • 標準エラー出力はエラーメッセージ専用の表示

つまり、入力して処理して結果を出すという流れの中で、それぞれ役割が分かれているだけです。

この仕組みを理解しておくと、ファイルに出力したり、エラーだけを分けたりといった操作がスムーズにできるようになります。

7. 標準入出力とリダイレクトの関係

7. 標準入出力とリダイレクトの関係
7. 標準入出力とリダイレクトの関係

標準入出力はリダイレクトと深く関係しています。リダイレクトとは、出力先や入力元を変更する仕組みです。

例えば、標準出力をファイルに保存することができます。


echo "hello" > output.txt

このコマンドでは、本来画面に表示されるはずの標準出力が、output.txtというファイルに書き込まれます。

このように標準入出力を理解することで、Linuxの操作の幅が一気に広がります。

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

初心者の方がよく混乱するのは、標準出力と標準エラー出力の違いです。どちらも画面に表示されるため、同じものに見えてしまいます。

しかし内部では別々に扱われているため、リダイレクトの際に違いが重要になります。

また、標準入力は普段意識しにくいですが、パイプやファイル入力を使うときに重要になります。

最初はキーボードが入力、画面が出力という基本だけ覚えておけば問題ありません。

まとめ

まとめ
まとめ

今回はLinuxの標準入出力について、標準入力stdin、標準出力stdout、標準エラー出力stderrという三つの基本概念を中心に詳しく振り返りました。Linuxコマンドを扱う上で、この標準入出力の仕組みを理解することは非常に重要であり、コマンド操作の理解度を大きく高めるポイントとなります。特に初心者の方にとっては、キーボードからの入力がどのようにプログラムに渡され、どのように結果が画面に表示されるのかを理解することが、Linux操作の第一歩になります。

標準入力は、ユーザーが入力したデータをプログラムが受け取る入口の役割を持っています。通常はキーボードからの入力が該当しますが、ファイルやパイプからの入力も同じ仕組みで扱われます。catコマンドの例のように、入力された内容がそのまま処理されることで、標準入力の役割が明確に理解できます。Linux初心者の方は、まずこの入力の流れを意識することで、コマンドの動きを自然に理解できるようになります。

次に標準出力は、コマンドの実行結果を表示する出口の役割を持っています。lsコマンドやechoコマンドの結果が画面に表示されるのは、この標準出力によるものです。普段何気なく見ているターミナルの表示は、すべてこの標準出力を通じて出力されています。この仕組みを理解することで、出力結果をファイルに保存するリダイレクト操作などもスムーズに理解できるようになります。

さらに重要なのが標準エラー出力です。これはエラー情報を表示するための専用の出力経路であり、通常の結果とは別に扱われます。例えば存在しないファイルを指定した場合に表示されるエラーメッセージは、この標準エラー出力によるものです。この仕組みによって、エラーだけをログとして保存することや、正常な出力と分けて処理することが可能になります。Linuxの実務においては、この違いを理解しているかどうかが非常に重要になります。

また、標準入力、標準出力、標準エラー出力にはそれぞれ番号が割り当てられていることも重要なポイントです。標準入力は0、標準出力は1、標準エラー出力は2という番号があり、リダイレクト操作やシェルスクリプトで活用されます。これらの番号を理解することで、より高度なLinux操作が可能になります。

リダイレクトとの関係も非常に重要です。標準出力をファイルに保存したり、標準エラー出力だけを別のファイルに書き出すことで、ログ管理やトラブルシューティングが効率的に行えます。Linuxの現場では、このリダイレクト機能を活用する場面が非常に多いため、標準入出力の理解は欠かせません。

最後に、初心者がつまずきやすいポイントとして、標準出力と標準エラー出力の違いが挙げられます。どちらも画面に表示されるため違いが分かりにくいですが、内部では完全に別の経路で処理されています。この違いを理解することで、コマンドの挙動をより正確に把握できるようになります。

サンプルプログラムで復習

echo "sample output"
sample output

cat missing.txt
cat: missing.txt: No such file or directory

echo "file output" > result.txt
先生と生徒の振り返り会話

生徒

「標準入力はキーボードからの入力で、標準出力は画面に表示される結果、標準エラー出力はエラー専用の表示という理解で合っていますか」

先生

「その理解で問題ありません。さらに番号がそれぞれ決まっていることも覚えておくと便利です」

生徒

「標準出力と標準エラー出力は見た目は同じですが内部では違うというのがポイントですね」

先生

「その通りです。この違いを理解することでリダイレクトやログ管理ができるようになります」

生徒

「これでLinuxコマンドの仕組みがかなり理解できました」

先生

「とても良い理解です。今後はパイプやリダイレクトと組み合わせてさらに活用していきましょう」

カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
patch -Rオプションの使い方を完全ガイド!初心者でもわかるLinuxでパッチを元に戻す方法
New2
テキスト・データ処理
less -Xオプションの使い方を完全ガイド!終了後も画面内容を残す方法
New3
ファイル・ディレクトリ操作
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
New4
ディスクとファイルシステム管理
dfコマンドの使い方を完全ガイド!初心者でもわかるLinuxのディスク使用量確認方法
人気記事
No.1
Java&Spring記事人気No1
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
lsコマンドとは?Linuxでファイルやディレクトリを一覧表示する基本を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
pwdコマンドとは?初心者でもわかる現在の作業ディレクトリの確認方法を解説!