流れの向きを変える「リダイレクト(>)」
通常、コマンドを実行すると、その結果は「画面」に表示されます。この結果の行き先を「ファイル」へと変更するのがリダイレクトです。
① 上書き保存( > )
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
と打ってみてください。
ls -l /etcでファイル一覧を出し、- その膨大な情報をパイプ
|でlessコマンドに渡す。 lessがそれを受け取り、1ページずつめくって読めるようにしてくれる。
このように、**「小さな機能を持つコマンドを組み合わせて、大きな仕事を実現する」**のがLinuxの哲学(UNIX思想)なのです。
3. セットで覚える最強の相棒:grep
パイプと組み合わせて最もよく使われるのが、特定の文字を検索する grep(グレップ)コマンドです。
例えば、「システムの設定ファイル(/etc/passwd)の中から、自分のユーザー名(tanaka)が含まれる行だけを見つけたい」という場合。
cat /etc/passwd | grep tanaka
catでファイルの中身を全部出し、- パイプ
|でgrepに全データを送り、 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の凄まじいパワーです。最初はパズルのように感じるかもしれませんが、これが思い通りに動いた時の爽快感は格別です。

コメント