はじめに
こんにちは、イケメンエンジニアです。
Linuxコマンドって、知ってるだけだと「検索しながらでも何とかなる」んだけど、実務はそう甘くないです。
障害対応・運用・本番作業の現場では、手順の正確さと事故らない作法がセットで求められます。
この記事は、僕が実務でよく使う(たまにしか使わないけど必要になる)コマンドを、オプションの意味と事例まで含めてまとめた忘備録です。
「コマンドの羅列」ではなく、どういう指令が飛んできて、どう叩くかを重視して書きます。
いざという時にコピペで動ける状態を目指します。
基本的なLinuxコマンド一覧(コマンド・よく使うオプション・内容とオプションの説明)
まずは全体像。ここを押さえておくだけで、現場での調査速度が上がります。
そしてポイントは「オプション」。 オプションが分からない=実務で手が止まるので、説明も一緒に書きます。
| コマンド | 内容 | よく使うオプション | オプションの説明(実務目線) |
|---|---|---|---|
| cd | ディレクトリ移動 | – | cd - で直前のディレクトリに戻る。調査中の往復作業でよく使う |
| ls | ファイル一覧表示 | -l / -a / -h | -l:権限・所有者確認(chmod/chown前提)-a:隠しファイル確認-h:サイズを人間向け表記 |
| cp | ファイル・ディレクトリコピー | -p / -a / -r | -p:権限・所有者・更新日時を保持(本番バックアップ必須)-a:設定ディレクトリ丸ごと退避用-r:ディレクトリ配下を再帰コピー |
| mv | 移動・リネーム | -i | -i:上書き前に確認。本番での誤事故防止 |
| rm | 削除 | -r / -f | -r:ディレクトリ削除-f:強制削除(本番では一呼吸置く) |
| cat | ファイル内容表示 | -n | -n:行番号付き表示。調査結果を共有しやすい |
| less | 巨大ファイル閲覧 | -N | -N:行番号表示。検索(/)やスクロールができ、catより安全 |
| tail | 末尾表示・監視 | -f / -n | -f:リアルタイム監視(障害対応の定番)-n:直近n行だけ確認 |
| grep | 文字列検索 | -i / -r / -n | -i:大文字小文字無視(error/Error対策)-r:ディレクトリ配下検索-n:行番号表示 |
| diff | 差分確認 | -u | -u:ユニファイド形式で見やすい。設定変更前後の確認に必須 |
| find | ファイル検索 | -name / -mtime | -mtime:更新日時指定。古いログの抽出・整理で活躍 |
| df | ディスク空き容量確認 | -h | -h:容量を直感的に把握(障害初動で最初に見る) |
| du | ディスク使用量確認 | -h / -s | -s:合計のみ表示-h:サイズを人間向け表記(犯人探し用) |
| gzip | ファイル圧縮 | -9 | -9:最大圧縮(CPU使用率に注意) |
| gunzip | .gz解凍 | — | 解凍すると元の.gzが消える。本番ではコピーしてから使う |
| zcat | .gz内容表示 | — | 解凍せず中身を確認できる。本番ログ調査向け |
| chmod | 権限変更 | 755 / 644 | 755:実行ファイル644:設定ファイル(777は最終手段) |
| chown | 所有者変更 | user:group | 実行ユーザーに合わせて揃えると権限トラブルが減る |
実務での使い方(指令→手順→コマンド)
ここからが本題。
現場で飛んでくる指令ってだいたい決まってて、パターン化できます。
なので「こう言われたらこう動く」をセットで覚えると、障害対応が楽になります。
指令①「設定ファイル触るから、戻せるようにしといて」
本番作業の基本は「バックアップ→変更→差分確認」。
まずバックアップは属性保持込みで取ります。
cp -p app.conf app.conf.bak
ディレクトリごと退避するなら -a。
設定ディレクトリのバックアップに向いてます。
cp -a /etc/nginx /etc/nginx.bak
変更後は diff。
「何を変えたか」を説明できるのが大事です。
diff -u app.conf.bak app.conf
指令②「ログ見て。エラーの傾向ある?」(less / grep / tail)
巨大ログは cat で開かない。less 一択。
行番号付きで見れると、後で共有が楽です。
less -N app.log
まずは全体を眺めてから、grep で絞る。
いきなり grep すると、文脈が見えなくて遠回りすることが多いです。
grep -in "error" app.log
リアルタイムで増えているか確認するなら tail -f。
ただしノイズが多いので、grep で絞ってから見るのがコツ。
tail -f app.log | grep -i "error"
指令③「ローテートされた.gzログ、解凍せずに中身見たい」(zcat)
gunzip は便利だけど、解凍すると元の.gzが消えるので本番では慎重に。
“見るだけ” なら zcat が強いです。
zcat app.log.1.gz | less
zcat app.log.1.gz | grep -i "timeout"
どうしても解凍が必要なら、原本を残すために tmp にコピーしてから。
cp -p app.log.1.gz /tmp/
gunzip /tmp/app.log.1.gz
指令④「ログ一式をまとめて提出して」(tmp退避 → 圧縮 → 持ち出し)
実務ではログをそのまま触らず、tmp に退避してから作業するのが鉄則。
原本を汚さない・事故っても影響を限定できる、が理由です。
mkdir -p /tmp/log_export
cp -p /var/log/app/app.log* /tmp/log_export/
ls -lh /tmp/log_export
Linux同士で渡すなら tar.gz。まとめて軽い。
tar -czf app_logs_20260206.tar.gz /tmp/log_export
社外共有・Windows連携なら zip。
ログは情報が詰まっているので、持ち出し前提なら暗号化するのが基本です。
zip -er app_logs_20260206.zip /tmp/log_export
unzip -l app_logs_20260206.zip
「ログは消すもの」じゃなくて、切り出して安全に扱うもの。
ここができると、運用の信頼が一段上がります。
指令⑤「ディスクが足りない/サーバが重い」(df / du / ps / free)
この手の指令が来たときは、まずは状況把握。
CPU・メモリ・ディスクの3点セットは最初に見ます。
df -h
free -h
ps aux | head
ディスクが怪しければ、どこが使ってるかを掘る。
“犯人探し” は du で可視化してからが速いです。
du -h --max-depth=1 | sort -h
chmod / chown の実務的なお作法(事故らないための最低限)
chmod 777 は最終手段
「動かないから777」は、問題を解決しているのではなく、隠しているだけになりがち。
まず ls -l で現状確認して、必要最低限の権限にします。
ls -l app.sh
chmod 755 app.sh
chown で “動くユーザー” に揃える
Webサーバやバッチがどのユーザーで動いているかに合わせて、所有者を揃えるとトラブルが減ります。
chown appuser:appgroup app.sh
まとめ
Linuxコマンドは暗記ではなく、パターン化が実務の近道。
「この指令が来たら、この順で叩く」を持っていると、障害対応でも焦らなくなります。
今回まとめた内容は、僕自身の忘備録でもあるので、今後もアップデートしていきます。
同じように運用・障害対応をやっている人の参考になれば嬉しいです。


コメント