Featured image of post Web開発者が知っておくべきLinux基本コマンドとパイプライン活用 Featured image of post Web開発者が知っておくべきLinux基本コマンドとパイプライン活用

Web開発者が知っておくべきLinux基本コマンドとパイプライン活用

ログファイルの検索(grep/find)やサーバー状態監視(top/df)、出力結果を次のコマンドに渡すパイプライン操作など、Web開発を支えるLinux基本コマンドを解説します。

はじめに

フロントエンド・バックエンドを問わず、モダンなWeb開発において、Linuxのターミナル(シェル)でのコマンド操作スキルは重要です。

Webサーバー(AWS, Cloudflare, VPSなど)の運用、Dockerコンテナ内部でのデバッグ、CI/CDパイプライン(GitHub Actionsなど)のスクリプト記述など、多くの局面でコマンドライン操作が求められます。

本記事では、特にWeb開発者が日常的に遭遇するタスク(エラーログの調査、ファイル操作、プロセス監視など)に焦点を当て、実用的なLinuxコマンドと、それらを組み合わせる パイプライン(| の活用方法を解説します。


1. ファイルとログの効率的な検索・調査

Webサーバーの障害対応時など、巨大なテキストログファイルから特定のエラーメッセージやアクセスIPを迅速に探し出すスキルが重要になります。

① grep(文字列検索)

ファイルの中から特定のパターンに一致する行を検索します。

# error.logの中から「Fatal」という文字を検索する(大文字小文字を区別しない -i)
grep -i "fatal" /var/log/nginx/error.log

# 指定したディレクトリ配下のすべてのファイルから再帰的(-r)に検索する
grep -r "API_KEY" ./src/

② find(ファイル・ディレクトリ検索)

ファイル名や更新日時を条件にファイルを検索します。

# カレントディレクトリ配下から「.png」で終わるファイルを検索する
find . -name "*.png"

# 直近24時間以内に更新されたファイルを検索する
find . -mtime -1

2. サーバーリソースとプロセスの監視

サーバーの動作が重い、あるいはメモリリークが疑われる場合に活躍するコマンド群です。

① top / htop(システム状態のリアルタイム監視)

CPU使用率、メモリ使用量、実行中のプロセス一覧をリアルタイムで表示します。

  • htop コマンドがインストールされている場合は、CPUのコアごとの使用状況がグラフィカルに表示されるため、こちらが推奨されます。

② df / du(ディスク容量の確認)

ディスクの空き容量を確認します。

# ディスク全体の空き容量を分かりやすい単位(-h: GBやMB)で表示する
df -h

# 特定のディレクトリ(例: node_modules)の合計サイズを表示する
du -sh ./node_modules/

③ lsof / netstat(ポートの使用状況確認)

「ポート3000番がすでに使用されています」というエラーでローカルサーバーが起動しない際、どのプロセスがポートを占有しているかを特定します。

# 3000番ポートをリスンしているプロセス(PID)を特定する
lsof -i :3000

3. パイプライン(|)とリダイレクトを活用したコマンドの連結

Linuxシェルの真の強みは、**「1つのコマンドの出力結果(標準出力)を、パイプ記号 | を使って次のコマンドの入力として渡す」**ことができる点にあります。

実用例A: アクセスログからユニークなIPの数を集計する

Nginxなどのアクセスログから、アクセス数が多い順にIPアドレスをソートして表示します。

# ログファイルからIPアドレス(最初のカラム)を抽出してソートし、重複カウントした上で数が多い順に並べる
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10
  • awk '{print $1}': 各行の最初のスペース区切り文字(IPアドレス)だけを抜き出す。
  • sort: データを並び替える(uniq の前提条件)。
  • uniq -c: 重複する行をまとめ、それぞれの出現回数をカウントして左端に付与する。
  • sort -nr: カウント数を数値(-n)として逆順(-r: 降順)に並び替える。
  • head -n 10: 上位10件だけを表示する。

実用例B: ポートを占有しているプロセスを強制終了する

Web開発でポートが競合した際、プロセスIDを検索して一発でキルします。

# 3000番ポートを占有しているプロセスのPIDを取得し、killコマンドに渡す
kill -9 $(lsof -t -i :3000)

まとめ

LinuxのCLIコマンドを使いこなせるようになると、GUIツールを立ち上げたり手動でファイルを1つずつ確認する手間に比べて、作業スピードが数倍〜数十倍に向上します。

  1. grepfind でファイルやエラーログの検索効率を最大化する
  2. htopdflsof でサーバーやローカルPCのリソーストラブルを瞬時に解決する
  3. コマンド単体ではなく、パイプライン(|)で繋いで独自のログ解析処理を組み立てる

ターミナルでの操作を習慣化し、開発・インフラ運用の効率化を推進していきましょう。