Linuxのパイプを初めて使いこなした日の話|コマンドを組み合わせる感動と現役講師が語る初心者の転換点

HOMEリナックスマスター.JP 公式ブログLinux学習ガイド > Linuxのパイプを初めて使いこなした日の話|コマンドを組み合わせる感動と現役講師が語る初心者の転換点
宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「コマンドをもっと覚えないと、現場では使い物にならないですか?」
セミナーでよく受ける質問です。

正直に言います。覚えるコマンドの数は関係ない、と私は思っています。
現場で強いLinuxエンジニアが持っているのは、コマンドを「組み合わせる」感覚です。

この記事では、私がSE時代に先輩から「パイプ」の使い方を教わった体験と、20年以上の指導経験から見えてきた「初心者が最初に感動するパイプライン3選」をお伝えします。

この記事のポイント

・パイプ(|)はコマンドの出力を次のコマンドの入力に渡す仕組み
・暗記量より「組み合わせ方」を覚えると現場の作業効率が変わる
・初心者がまず覚えるべきパイプラインは「tail | grep」「ps aux | grep」「ls | wc -l」
・「やりたいことを言葉で分解してからコマンドを組む」習慣が上達を早める


Linuxのパイプを初めて使いこなした日の話|コマンドを組み合わせる感動と現役講師が語る初心者の転換点
「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

「コマンドの暗記量を増やすほど上手くなる」という思い込みの壁

Linux学習を始めた頃、多くの人がまずコマンドリストを作って1つずつ暗記しようとします。
ls、cd、cp、mv、rm……確かにこれらは必要です。でも、3,100名以上の受講者を指導してきた経験から言うと、「コマンドを単体で覚える段階」で学習が止まってしまう人が後を絶ちません。

理由は単純です。現場では「1つのコマンドだけで完結する作業」がほとんどないからです。

ログを調べたい、特定のプロセスだけ確認したい、あるディレクトリのファイル数を素早く把握したい。こうした実務の要求に応えるには、複数のコマンドを「パイプ(|)」でつなぐ力が必要になります。

SE時代、先輩が1行のコマンドで私の5分間の手作業を終わらせた話

私がLinuxのパイプを「本当に理解した」のは、2003年頃のことです。

お客さんのApacheサーバーでエラーが発生していました。私は何百行もあるエラーログをひたすら目で追っていました。5分経っても、10分経っても、原因になりそうな行が見つかりません。

そこへ先輩がやってきて、一言。

「何やってんの?それ1行で済むよ」

先輩がキーボードを叩いたのは、こんなコマンドでした。

# Apacheのエラーログから末尾100行を取り出し、Permission deniedのエラーだけ絞り込む tail -100 /var/log/httpd/error_log | grep "Permission denied"

結果は3秒で出てきました。私が10分かけても見つけられなかった行が、画面に鮮明に表示された。

あの瞬間の衝撃は、今でも鮮明に覚えています。

パイプ(|)とは何か、体験を通じて理解したこと

パイプ(|)は、あるコマンドの「出力」を次のコマンドの「入力」に渡す仕組みです。

先ほどの例で言えば、

tail -100 /var/log/httpd/error_log:エラーログの末尾100行を取り出す
grep "Permission denied":その中から「Permission denied」を含む行だけ表示する

この2つをパイプでつなぐことで、「ログの末尾100行の中からPermission deniedのエラーだけ抽出する」という処理が1行で完成します。コマンドを「道具」として個別に使うのではなく、「工程」として連結する発想です。

「組み合わせる」発想が現場の見え方を変えた

この日以来、私のLinuxの使い方が変わりました。

「このコマンドは何ができるか」という暗記の視点から、「やりたいことを実現するにはどのコマンドをどんな順番でつなぐか」という設計の視点に切り替わったのです。

20年以上サーバーを運用してきた経験から言うと、現場エンジニアと入門者の差はここにあります。個々のコマンドの知識量ではなく、コマンドを「組み合わせて使う」発想があるかどうか、それだけです。

初心者がまず覚えるべきパイプライン3選

では、具体的にどのパイプラインから始めればいいか。私がセミナーで必ず最初に紹介する3つをお伝えします。

1. ログ調査の定番「tail | grep」

最初に覚えてほしいのは、先ほどの例でも登場した「tail | grep」の組み合わせです。

tail -F ファイル名:ファイルの末尾をリアルタイムで監視する
grep "キーワード":キーワードを含む行だけ表示する

実際の使用例です。

# syslogをリアルタイム監視しながらerrorを含む行だけ表示する [miyazaki@web-svr01 ~]$ tail -F /var/log/messages | grep -i "error" Aug 11 09:23:15 web-svr01 kernel: EXT4-fs error (device sda2): ext4_find_entry:1455 Aug 11 09:31:02 web-svr01 postfix/smtp[8821]: error: connect to 192.168.xxx.xxx[192.168.xxx.xxx]:10024

ログが大量に流れる本番サーバーでも、greepで絞り込むことで必要な情報だけを追えます。障害対応で初動の情報収集をするときに、この組み合わせが役立ちます。

2. プロセス確認の「ps aux | grep」

次に覚えてほしいのは、特定プロセスを確認するパイプラインです。

「ps aux」だけだと全プロセスが大量に表示されますが、grepでプロセス名を絞り込むことで一瞬で確認できます。

# httpdプロセスが正常に起動しているか確認する [miyazaki@web-svr01 ~]$ ps aux | grep httpd | grep -v grep root 1234 0.0 0.1 55936 2840 ? Ss 09:15 0:00 /usr/sbin/httpd -DFOREGROUND apache 1235 0.0 0.1 55936 1980 ? S 09:15 0:00 /usr/sbin/httpd -DFOREGROUND apache 1236 0.0 0.1 55936 1980 ? S 09:15 0:00 /usr/sbin/httpd -DFOREGROUND

「grep -v grep」を末尾に追加しているのは、grep自身がプロセスとして表示されてしまう問題を除外するためです。この「3段パイプ」はLinuxの現場では定番の書き方です。

なお、psコマンドの各列(USER、PID、%CPU、%MEM等)の読み方については、psコマンドの解説記事で詳しく解説しています。

3. ファイル数のカウント「ls | wc -l」

3つ目は、ディレクトリ内のファイル数を素早く確認するパイプラインです。

ls:ファイルの一覧を表示する
wc -l:行数をカウントする(lsの出力を1ファイル1行として数える)

# /var/log/httpd/ 配下のファイル数を確認する [miyazaki@web-svr01 ~]$ ls /var/log/httpd/ | wc -l 24 # /home/ 配下のユーザーディレクトリ数を確認する [miyazaki@web-svr01 ~]$ ls /home/ | wc -l 8

バックアップスクリプトのテストや、大量ファイルの整理前の確認でよく使います。「何となく多い気がする」を数値で把握できるのがポイントです。

パイプを実務で使いこなすための「考え方」

パイプに慣れてきたら、1つのことを意識してください。

「やりたいことを先に言葉で分解してから、コマンドを組み立てる」習慣です。

例えば、「Apacheのアクセスログから今日の404エラーの件数を数えたい」と思ったとします。

・今日の日付でログを絞り込む → grep
・404エラーの行だけ取り出す → grep
・件数を数える → wc -l

この流れを言語化できれば、コマンドは自然につながります。

# 今日(2026年8月11日)のアクセスログから404エラーの件数を確認する [miyazaki@web-svr01 ~]$ grep "11/Aug/2026" /var/log/httpd/access_log | grep " 404 " | wc -l 17

3段のパイプですが、「やりたいことを分解してから組む」という手順を踏むと、自然に書けるようになります。

私のセミナーでも、パイプの実習を終えた受講生から「これがあればログ調査の半分は終わりますね!」という声をよく聞きます。最初は1段のパイプから始め、慣れてきたら2段、3段と伸ばしていくのがコツです。

パイプが動かない場合によくある原因と対処法

パイプを使い始めた頃に「コマンドを打ったのに何も表示されない」「思った結果が出ない」という場面で詰まることがあります。よくある原因と対処法を紹介します。

よくある失敗1:grepのキーワードにスペルミスがある
grepでフィルタリングした結果が0件だった場合、まずキーワードのスペルを確認してください。大文字・小文字の違いも原因になります。grep -i(大文字小文字を区別しない)を試すのも有効です。

よくある失敗2:エラーメッセージがパイプに流れない
コマンドのエラー出力(標準エラー出力)はデフォルトではパイプに流れません。エラーもgrepで絞り込みたい場合は、コマンド 2>&1 | grep キーワード のように 2>&1 でリダイレクトしてください。

注意:本番サーバーで初めて試すパイプラインは、必ずテスト環境か無害なデータで動作確認する習慣をつけましょう。「まず安全な場所で確認する」は、私がセミナーで伝える鉄則の1つです。

まとめ

やりたいこと コマンド例
ログから特定エラーをリアルタイム抽出 tail -F /var/log/messages | grep -i "error"
特定プロセスの稼働を確認する ps aux | grep httpd | grep -v grep
ディレクトリ内のファイル数を数える ls /var/log/httpd/ | wc -l
今日のログから特定ステータスの件数取得 grep "日付" /var/log/httpd/access_log | grep " 404 " | wc -l
パイプを覚えると、Linuxの使い方がガラリと変わります。「コマンドを1つずつ暗記する」から「目的に合わせて組み合わせる」に発想が切り替わった瞬間、学習が面白くなってきます。

Linux学習で挫折しやすいポイントやその乗り越え方については、Linux独学で挫折する人の共通点5つも合わせてご覧ください。

また、パイプを覚えた後にどんな瞬間で「スキルが伸びた」と感じるかについては、Linuxスキルが伸びたと感じる3つの瞬間で紹介しています。ぜひ読んでみてください。

コマンドを組み合わせる力の次は、実務で使えるLinuxサーバー構築の「型」を身につけませんか?

パイプを使いこなすと現場での作業は格段に速くなります。でも、実務のLinux管理者に必要なのは「組み合わせる力」だけではありません。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。