問題
UNIXにおいて,あるコマンドの標準出力を,直接別のコマンドの標準入力につなげる機能はどれか。
キーボード:1〜4で選択・Enterで次へ
答え合わせ
- A
- B
- C
- D
自信の3択
えらぶと、この端末に記録します(登録はいりません)
解説
答えは a「パイプ」 です。
UNIXのパイプは「コマンドAの結果をそのままコマンドBへ流し込む」機能。記号は |(縦棒)。
たとえば `ls | grep txt` なら、`ls`(ファイル一覧)の結果を `grep txt`(txtを含む行を抽出)に直結します。
👉 覚え方:パイプ=出力をホースで次のコマンドに流す。
ほかの選択肢:b バックグラウンドジョブ(&)=コマンドを裏で実行/c ブレース展開({ })=文字列の組合せを作る/d リダイレクト(> や <)=出力や入力をファイルにつなぐ。
なぜこれが正解か
UNIX系シェルにおけるパイプ(pipe)は、`コマンドA | コマンドB`形式でコマンドAの標準出力をコマンドBの標準入力へ直接接続する機能。中間ファイルを介さず効率的なデータフロー処理を実現する。設問の「標準出力を別のコマンドの標準入力につなげる」はパイプの定義そのもの。
各選択肢の解説
- a パイプ(|):正解。プロセス間通信の基本機能。
- b バックグラウンドジョブ(&):プロセスを背景で実行する。データの受け渡しとは別概念。
- c ブレース展開({a,b,c}):シェルでの文字列パターン生成。例:`echo file{1,2,3}.txt`
- d リダイレクト(>, <, >>):標準入出力をファイルへ向ける/ファイルから読む。コマンド同士の直結ではない。
覚え方・ひっかけ注意
シェル機能の識別:
- パイプ(|):標準出力→標準入力直結
- リダイレクト(>, <, >>, 2>&1):ファイル⇔標準入出力
- コマンド置換($(cmd), ``):コマンド出力を文字列として埋め込み
- ブレース展開({}):パターン文字列生成
- **グロブ(, ?)*:ファイル名パターンマッチング
- ジョブ制御(&, fg, bg):プロセス背景化
試験では「標準出力を別コマンドへ」「直結」がパイプの合図。
理論的背景
UNIXパイプはDouglas McIlroyが1972年にUNIX V3で実装したプロセス間通信(IPC: Inter-Process Communication)の代表機構。「Make each program do one thing well」「Write programs to handle text streams」というUNIX哲学を体現。カーネル内部ではカーネルバッファ(典型64KB)経由でリングバッファ的に動作し、書込側がいっぱいになるとブロック、読込側が空ならブロックする生産者-消費者モデル。
実務での使われ方
パイプ系IPCの種類:
- 無名パイプ(anonymous pipe, |):親子プロセス間限定
- 名前付きパイプ(FIFO, mkfifo):無関係プロセス間でも使用可
- 双方向パイプ(socketpair):Bidirectional
- 共有メモリ(shm):高速、明示的同期必要
- メッセージキュー(msg queue):構造化メッセージ
- ソケット(Unix domain socket):ローカル高性能IPC
パイプライン処理の発展:
- シェルワンライナー:`ls -la | awk '{print $5}' | sort -n | tail -10`
- データパイプライン:Apache Beam・Apache Flink・Kafka Streams
- 関数型合成:Haskellのモナド、Elixirのpipe operator(|>)
試験での位置づけ
OS・シェル分野の頻出テーマ。基本情報ではパイプ・リダイレクトの基本識別、応用情報・組込みシステムスペシャリストではIPC種類比較・プロセス制御・シェルスクリプティング・正規表現まで踏み込む。Linuxシステムコール(pipe(), fork(), dup2(), exec*())の理解も実務必須。
選択肢の発展補足
リダイレクト演算子の詳細:
- >: 標準出力をファイルに上書き
- >>: 標準出力をファイルに追記
- <: ファイルから標準入力
- 2>: 標準エラー出力リダイレクト
- 2>&1: 標準エラーを標準出力にマージ
- &>: 標準出力・エラー両方をファイルへ(bash)
- <<: ヒアドキュメント(インライン入力)
- <<<: ヒアストリング(文字列を標準入力)
WindowsのPowerShellではオブジェクトパイプラインで構造化データを流す(テキスト中心のUNIXとは異なる設計)。Process Substitution(<(cmd))でコマンド出力をファイルとして扱う高度技法もある。コンテナ環境ではSidecarパターンでパイプライン的にログ収集・ヘルスチェック・プロキシを構成する設計が普及。試験対策はパイプ・リダイレクトの基本+シェルスクリプティングの理解で応用情報・組込みシステムスペシャリスト等の上位資格に対応可能。
出典と作り方
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成28年度 春期 問18/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。

