CLI は『1分の作業を5秒にする』ための投資
Linux CLI を使いこなせると、サーバー作業・ログ解析・自動化の生産性が一段上がります。本記事では編集部の視点で、毎日使う基本コマンドと組み合わせを公開情報をもとに整理します。Docker Compose 実践 もご参考に。
ファイル操作の基本
(1) ls / cd / pwd / mkdir / rm。(2) cp / mv / touch。(3) cat / less / tail -f:ログ追跡。(4) find / locate:ファイル検索。(5) tree:ディレクトリ可視化。これらが手に馴染むと作業速度が劇的に変わります。
テキスト処理の三種神器
(1) grep:パターン検索。-r/-i/-v が頻出。(2) awk:列単位の集計。$1 / NR / NF。(3) sed:文字列置換と編集。(4) cut / sort / uniq -c:基本集計。(5) jq / yq:JSON/YAML 操作。パイプ(|) で繋ぐと小さなETLが作れます。
プロセス・システム
(1) ps / top / htop:プロセス確認。(2) kill / pkill:プロセス終了。(3) df / du / free:ディスク/メモリ。(4) systemctl / journalctl:サービス管理とログ。(5) lsof / netstat / ss:ネット接続確認。インシデント対応で頻出する基本セットです。
ネットワーク・通信
(1) curl / wget:HTTP リクエスト。(2) ssh / scp / rsync:リモート操作。(3) dig / nslookup:DNS。(4) ping / traceroute / mtr:到達確認。(5) tcpdump:パケットキャプチャ。リモート作業ではこれらが命綱です。
スクリプト基礎
(1) 変数と展開:dollar-brace-VAR-brace / quoted-dollar-VAR。(2) if / for / while。(3) 関数:function name() { ... }。(4) パイプとリダイレクト:| / > / >> / 2>&1。(5) エラーハンドリング:set -euo pipefail。CI/CD 実践 もご参考に。
実務頻出パターン
(1) ログから上位エラー:grep ERROR log | awk '{print $4}' | sort | uniq -c | sort -rn | head。(2) 大量ファイルから検索:find . -type f -name "*.log" | xargs grep -l TIMEOUT。(3) サイズ大きい順:du -sh * | sort -h。(4) JSON 集計:jq '.users[] | .name' file.json。(5) 並列実行:xargs -P 4 -I {} curl {}。
失敗しがちなパターン
(1) rm -rf を本番で:取返しつかない。(2) シェル展開の罠:クォート忘れ。(3) パイプの中で set -e が効かない。(4) tail -f で巨大ログ全部:負荷増。(5) cron で環境変数なし:動かない。対策は、(1)危険な操作は alias で確認、(2)変数は必ずクォート、(3)pipefail 設定、(4)tail -n 100 -f、(5)cron は明示env、です。