【Linux】忘備録 実務でよく使う・たまに使うコマンド集

Linux

はじめに

こんにちは、イケメンエンジニアです。
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 / 644755:実行ファイル
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コマンドは暗記ではなく、パターン化が実務の近道。
「この指令が来たら、この順で叩く」を持っていると、障害対応でも焦らなくなります。

今回まとめた内容は、僕自身の忘備録でもあるので、今後もアップデートしていきます。
同じように運用・障害対応をやっている人の参考になれば嬉しいです。

コメント

タイトルとURLをコピーしました