はじめに
Linuxを触り始めて、
ある日こんなコマンドを見かけます。
……正直、最初は
「なんで | があるの?」
「これ何を繋いでるの?」
ってなりますよね。
自分も最初は、
-
なんとなく使っている
-
コピペでは動く
-
でも説明はできない
という状態でした。
この パイプ(|)、
実はLinuxらしさが詰まった重要な概念で、
LinuC試験でも、実務でも、必ず出てきます。
この記事では、
-
パイプとは何をしているのか
-
標準入力・標準出力との関係
-
なぜこの仕組みが便利なのか
を、「なるほどそういうことか」になるまで解説します。
パイプ(|)とは何か?
パイプ(|)は、
コマンドとコマンドを繋ぐ記号です。
正確に言うと、
前のコマンドの「標準出力」を、
次のコマンドの「標準入力」に渡す
これをやっています。
標準入力・標準出力を超ざっくり理解する
まずはここを押さえます。
Linuxのコマンドには、最初から次の3つがあります。
| 種類 | 意味 |
|---|---|
| 標準入力 | 入力されるデータ |
| 標準出力 | 通常の出力 |
| 標準エラー出力 | エラー用の出力 |
この中で、
**パイプが扱うのは「標準出力 → 標準入力」**です。
例:ls コマンド
これを実行すると、
-
ファイル一覧を表示する
-
表示されている内容は「標準出力」
つまり、
画面に表示されている文字列 = 標準出力
と思ってOKです。
パイプを使うと何が起きるのか
次に、このコマンドを見てみます。
処理の流れはこうです。
-
lsがファイル一覧を標準出力に出す -
その出力を
grep txtの標準入力に渡す -
txtを含む行だけが表示される
ここで重要なのは、
👉 ls の結果は画面に直接出ていない
👉 grep に渡されている
という点です。
図でイメージするとこう
イメージとしては、こんな感じです。
| は、
コマンド同士を直結するホース
みたいなものだと思うと分かりやすいです。
なぜわざわざパイプを使うのか?
理由はシンプルです。
① コマンドを小さく保てる
Linuxの考え方は、
-
1つのコマンドは1つの仕事
-
組み合わせて使う
という思想です。
-
lsは一覧を出すだけ -
grepは絞り込むだけ
👉 役割を分けて、後から繋ぐ
② ファイルを作らなくていい
パイプがなければ、
-
lsの結果をファイルに保存
-
そのファイルをgrepで読む
という流れになります。
パイプを使えば、
その場でデータを渡せるので効率的です。
よくある勘違い
パイプは「画面の表示」を渡している?
❌ 画面そのものを渡しているわけではありません。
⭕ 標準出力というデータの流れを渡しています。
画面表示は、
最終的な標準出力の行き先なだけです。
パイプは何個でも繋げられる
これは正解です。
こんなふうに、
-
出す
-
絞る
-
並べる
-
まとめる
と、レゴブロックみたいに組み合わせられるのがLinuxの強さです。
LinuC試験との関係
LinuCでは、
-
標準入力
-
標準出力
-
パイプ
-
リダイレクト
このあたりは セットで理解している前提で出題されます。
特に、
パイプは標準出力を標準入力に渡す
これは ほぼ暗記レベルの基本事項です。
注意点
エラー出力はそのままでは渡らない
パイプが渡すのは
標準出力のみです。
エラー出力は別扱いなので、
最初は
「思った結果にならない」
と感じることもありますが、
ここは そういう仕様だと覚えてOKです。
まとめ
パイプ(|)は、
LinuxをLinuxたらしめている仕組みです。
ポイントを整理すると、
-
パイプはコマンドを繋ぐ
-
標準出力を標準入力に渡す
-
画面表示を渡しているわけではない
-
小さなコマンドを組み合わせる思想
-
LinuC試験にも出てくる基礎知識
最初はピンとこなくても、
一度理解すると
コマンドの見え方が一気に変わります。



コメント