用語集:標準入出力・FD

実務で頻出する「標準入出力・ファイルディスクリプタ」関連の用語を、一言定義+最小実例でサッと確認。
入出力の流れを理解し、リダイレクトやパイプを自在に扱えるようにします。

このページで達成できること

  • stdin / stdout / stderr の役割を整理
  • リダイレクトとパイプの使い分けを理解
  • FD を明示して制御する方法を学習
  • 実務での落とし穴(順序や継承の違い)を把握

すぐ引けるミニ索引

用語一言で代表コマンド/例
標準入力(stdin, FD0)プロセスが読むデータ源cat < file
標準出力(stdout, FD1)通常の出力先echo hello > out.txt
標準エラー出力(stderr, FD2)エラーを通知する出力ls nofile 2> err.txt
リダイレクト入出力をファイルや他FDへ切替>, 2>&1
パイプ(pipe)出力を次コマンドの入力に接続`grep error log
tee出力を複製して保存と表示`cmd
/dev/null出力の捨て場所cmd > /dev/null
lsofFDの利用状況を確認lsof -p <PID>

用語解説(繰り返しブロック)

標準入力(stdin, FD0)

とは:プログラムが読むデフォルトの入力。通常はキーボードから。
最小実例

cat < input.txt

関連:リダイレクト / パイプ
落とし穴:非対話環境では stdin が空になる → 入力必須処理はハングすることがある。

標準出力(stdout, FD1)

とは:プログラムの通常の出力。通常は画面に表示。
最小実例

echo hello > out.txt

関連:FD1 / リダイレクト
落とし穴:標準出力と標準エラーを混同するとログ解析が困難になる。

標準エラー出力(stderr, FD2)

とは:エラーや警告を通知するための出力。通常は画面に表示。
最小実例

ls nofile 2> err.txt

関連:FD2 / リダイレクト
落とし穴:stdout と stderr をまとめるか分けるかを意識しないと、ログが混ざる。

リダイレクト(redirect)

とは:入出力をファイルや他FDに流し替える仕組み。
最小実例

cmd > out.txt 2> err.txt
cmd > all.txt 2>&1

関連:FD / stdout / stderr
落とし穴2>&1 >file の順序では stderr がターミナルに残る → 順序は重要。

パイプ(pipe)

とは:あるコマンドの標準出力を次のコマンドの標準入力につなぐ仕組み。
最小実例

grep "500" access.log | wc -l

関連:stdin / stdout / フィルタコマンド
落とし穴:メモリを食うコマンド(sortなど)をパイプに挟むとリソース負担が大きい。

tee

とは:標準出力を複製し、画面表示とファイル保存を同時に行うコマンド。
最小実例

echo hello | tee hello.txt

関連:パイプ / stdout
落とし穴:デフォルトで上書き。追記は tee -a

/dev/null

とは:何を書き込んでも捨てられる特殊ファイル。
最小実例

cmd > /dev/null 2>&1

関連:リダイレクト / stdout / stderr
落とし穴:デバッグ時に捨てすぎて、原因調査ができなくなることがある。

lsof

とは:プロセスが開いているファイルディスクリプタを一覧するツール。
最小実例

lsof -p $$

関連:FD / プロセス / デバッグ
落とし穴:本番環境で乱用すると情報量が多く、出力が膨大になる。

運用の現場Tips

  • エラーと通常出力を分ける:ログ解析や監視で混乱を防ぐ
  • 順序の理解:リダイレクトと FD の評価順で結果が変わる
  • テストに /dev/null:不要な出力を抑制して挙動を確認
  • lsof でトラブルシュート:FDリークやファイル保持の原因調査に有効

関連リンク(学習ハブ内)

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする