
UNIX Cafe | 第6回
はじめに|「流れるコマンド、つながる世界」
ミナちゃんユニ先生、リダイレクトって“流す”感じが面白かったですね!
次は、コマンド同士をつなげることもできるって聞いたんですけど…?



おっ、いいところに気づいたね。
それが「パイプ(|)」だよ。
コマンドとコマンドを“つなぐホース”のようなものなんだ。
パイプって何?



これは「ls の出力を grep に渡す」コマンドだよ。
つまり、“ls が出した情報”を、“grep が受け取って探す”流れになっているんだ。
bash
$ ls | grep txt


えっ、それって一度ファイルに書かなくてもいいってことですか?



そう!ファイルを介さずに、データが直接流れていくんだ。
まるでコーヒーをカップに注ぐみたいにね。
いろんなパイプの使い方
テキストを数える



ユニ先生、たくさんあるテキストの行を数える方法ってありますか?数が多くて、ちょっと混乱しちゃって💦



あるよ、いいコマンドが。
リダイレクトの次は“パイプ”の出番だ。
たとえば、こうだよ。
bash
$ cat log.txt | wc -lcat log.txt→ ファイルの中身を出力wc -l→ その行数を数える- つまり「log.txt の行数 = 120行」と表示される!
特定のファイルを探して表示



たくさんファイルがあって、どこに“report”ってつくファイルがあるのか分からないんです💦



そんなときこそ、パイプの出番だよ。ls で全部のファイルを一覧にして、grep で“report”を含む名前だけを選べばいいんだ。
bash
$ ls | grep reportls→ すべてのファイルを一覧表示grep report→ “report”を含む行だけ抽出- 結果として、ファイル名の中に“report”があるものだけが表示される
結果を少しずつ読む



ユニ先生、コマンドの結果が長すぎて、画面がバーッて流れちゃいました💦
一瞬で終わっちゃって、全然読めません!



うんうん、初心者あるあるだね。
そんなときは“パイプ”で less に渡してあげよう。
こうすると、出力を少しずつスクロールしながら読めるんだ。
bash
$ dmesg | lessdmesg→ システムメッセージを表示| less→ 結果を1ページずつスクロールして読むqキーで終了
エラーメッセージが出た場合



このようなメッセージが出た場合は、「一般ユーザーでは dmesg の内容を読めない」という意味なので、管理者(root)の権限で dmesg を実行します。
bash
$ sudo dmesg | lessTry it!|パイプをつないでみよう!



パイプって、コマンドたちが手を取り合ってるみたいですね☕✨
組み合わせ次第で、思わぬ“おいしい結果”が生まれるかも!
1. ls | grep txt → 「.txt」がつくファイルだけ表示してみよう2. cat /etc/passwd | head -n 5 → 最初の5行だけ見てみよう3. ps aux | grep bash → ” bash ” が動いているプロセスを探してみよう
コーヒーブレイク:ユニ先生のひとこと


まとめ|コマンドをつなぐと、世界が広がる



パイプでコマンドをつないでみたら、できることが一気に増えました☕✨まるで小さな力が集まって、大きな力になるみたいです!



そうだね。コマンドは言葉、パイプは会話。
上手につなげば、シェルの世界はどこまでも広がるんだ。



