【データの魔術師】Linuxの「リダイレクト」と「パイプ」を完全攻略!コマンドを繋いで仕事を爆速化する

流れの向きを変える「リダイレクト(>)」

通常、コマンドを実行すると、その結果は「画面」に表示されます。この結果の行き先を「ファイル」へと変更するのがリダイレクトです。

① 上書き保存( > )

ls -l > list.txt と打つと、画面には何も表示されません。その代わりに、ls -l の実行結果がそのまま list.txt というファイルの中に書き込まれます。すでにファイルがあった場合は、中身が上書きされます。

② 追記保存( >> )

ls -l >> list.txt 「>」を2つ重ねると、既存のファイルの中身を消さずに、一番下の行に結果を「付け足し」ます。ログ(記録)を溜めていくときによく使われます。

③ 入力リダイレクト( < )

あまり頻繁には使いませんが、ファイルの中身をコマンドに「流し込む」こともできます。

2. データのバケツリレー「パイプ( | )」

リダイレクトが「結果をファイルに保存する」ものなら、**「パイプ」は「あるコマンドの結果を、そのまま次のコマンドに引き渡す」**ための仕組みです。

記号は、キーボードの円マーク(¥)やバックスラッシュ(\)と同じキーにある縦棒「 | 」を使います。

[Image showing a factory conveyor belt, where one machine processes an item and passes it to the next, representing the pipe command]

なぜパイプが最強なのか?

例えば、「/etc ディレクトリの中にファイルが多すぎて、画面からはみ出して見えない!」という時。

ls -l /etc | less

と打ってみてください。

  1. ls -l /etc でファイル一覧を出し、
  2. その膨大な情報をパイプ |less コマンドに渡す。
  3. less がそれを受け取り、1ページずつめくって読めるようにしてくれる。

このように、**「小さな機能を持つコマンドを組み合わせて、大きな仕事を実現する」**のがLinuxの哲学(UNIX思想)なのです。


3. セットで覚える最強の相棒:grep

パイプと組み合わせて最もよく使われるのが、特定の文字を検索する grep(グレップ)コマンドです。

例えば、「システムの設定ファイル(/etc/passwd)の中から、自分のユーザー名(tanaka)が含まれる行だけを見つけたい」という場合。

cat /etc/passwd | grep tanaka

  1. cat でファイルの中身を全部出し、
  2. パイプ |grep に全データを送り、
  3. grep が「tanaka」という文字がある行だけを抽出して画面に出す。

これができるようになると、数万行のログファイルからエラーメッセージだけを数秒で見つけるといった、「プロの仕事」ができるようになります。


4. LinuC試験の重要キーワード「標準入出力」

LinuC試験では、これらをもう少し専門的な言葉で呼びます。ここを理解しておくと、試験問題の正答率が跳ね上がります。

  • 標準入力 (stdin / 0): キーボードなどからの入力。
  • 標準出力 (stdout / 1): 画面への正常な出力(リダイレクト > で保存できる)。
  • 標準エラー出力 (stderr / 2): コマンドが失敗した時のエラーメッセージ。

実は、普通に > を使うだけでは「エラーメッセージ」はファイルに保存されません。エラーも一緒に保存したいときは、2>&1 という少し特殊な呪文を後ろに付けます。 例:ls /nonexist > result.txt 2>&1 (存在しない場所をlsしたエラー結果も、result.txtに書き込むという意味)


まとめ:コマンドを繋げば、可能性は無限大

リダイレクトとパイプを覚えると、これまでのコマンドが「単体の道具」から「パーツ(部品)」に変わります。

  • ls でファイルを集め、
  • grep で絞り込み、
  • sort で並び替え、
  • head で先頭の5行だけ取り出し、
  • > でファイルに保存する。

これら全てを1行のコマンドで実行できるのが、Linuxの凄まじいパワーです。最初はパズルのように感じるかもしれませんが、これが思い通りに動いた時の爽快感は格別です。

コメント

タイトルとURLをコピーしました