「あの操作、コマンド何だっけ?」を即解決するユースケース別リファレンス。
サーバー管理・ログ解析・ネットワーク調査など、インフラ現場でよく遭遇する場面に絞って整理した。
# リアルタイム監視(1秒更新)
top
# もっと見やすい版(要インストール)
htop
# CPU使用率の高いプロセス TOP10
ps aux --sort=-%cpu | head -11
# メモリ使用率の高いプロセス TOP10
ps aux --sort=-%mem | head -11
uptime
# 出力例: 14:23:01 up 12 days, load average: 0.52, 0.48, 0.45
# ↑1分 ↑5分 ↑15分
# コア数を超えたらヤバい
nproc # CPUコア数を確認
# ファイルシステムごとの使用量
df -h
# ディレクトリごとのサイズ(重い順)
du -sh /* 2>/dev/null | sort -rh | head -20
# 特定ディレクトリを深掘り
du -sh /var/log/* | sort -rh | head -10
# プロセス名で検索
pgrep -la nginx
# PIDを指定して終了(穏やか)
kill <PID>
# 強制終了
kill -9 <PID>
# プロセス名で一括終了
pkill nginx
# ERROR / WARN を含む行だけ表示
grep -i "error\|warn" /var/log/syslog
# 直近100行 + エラー抽出
tail -100 /var/log/syslog | grep -i error
# 特定日時のログだけ抽出(journald)
journalctl --since "2026-06-09 10:00" --until "2026-06-09 11:00"
# 特定サービスのログ
journalctl -u nginx --since today
# ファイルを末尾から追いかける
tail -f /var/log/syslog
# 複数ファイルを同時に監視
tail -f /var/log/nginx/access.log /var/log/nginx/error.log
# エラーだけリアルタイムで見たい
tail -f /var/log/syslog | grep -i error
# アクセスログのIPアドレス別集計(多い順)
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20
# HTTPステータスコード集計
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
# 特定の文字列が何回出現するか
grep -c "connection refused" /var/log/syslog
# .gz ファイルをそのまま grep
zgrep "error" /var/log/syslog.2.gz
# .gz ファイルをそのまま表示
zcat /var/log/syslog.2.gz | tail -50
# 疎通確認(4回)
ping -c 4 192.168.1.1
# DNS 名前解決確認
dig google.com
nslookup google.com
# 経路確認
traceroute 8.8.8.8 # Linux
# mtr でリアルタイム経路監視
mtr 8.8.8.8
# リッスン中のポート一覧
ss -tulnp
# 特定ポートの確認
ss -tulnp | grep :80
# 外部からポート確認(nc / nmap)
nc -zv 192.168.1.10 22
nmap -p 22,80,443 192.168.1.10
# 確立中の TCP 接続
ss -tnp state established
# CLOSE_WAIT が溜まっていないか確認
ss -tan | awk '{print $1}' | sort | uniq -c | sort -rn
# インターフェースごとの通信量(リアルタイム)
iftop -i eth0 # 要インストール
# IPアドレス一覧
ip a
# MACアドレス確認
ip link show
# ARP テーブル(IPとMACの対応)
ip neigh
# デフォルトゲートウェイ
ip route | grep default
# ファイル名で検索
find / -name "nginx.conf" 2>/dev/null
# 特定ディレクトリ以下を検索
find /etc -name "*.conf"
# 更新日時が新しいファイルを探す(直近24時間)
find /var/log -mtime -1 -type f
# ファイル内容で検索(再帰)
grep -r "listen 80" /etc/nginx/
# 先頭20行
head -20 /etc/nginx/nginx.conf
# 末尾20行
tail -20 /etc/nginx/nginx.conf
# 行番号付きで全表示
cat -n /etc/nginx/nginx.conf
# ページャで閲覧(/でキーワード検索可能)
less /var/log/syslog
# 2ファイルの差分
diff before.conf after.conf
# 見やすい横並び表示
diff -y before.conf after.conf
# バックアップと現在の設定を比較
diff /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
# サービスの状態確認
systemctl status nginx
# 起動 / 停止 / 再起動
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
# 設定リロード(ダウンタイムなし)
systemctl reload nginx
# 自動起動の有効化 / 無効化
systemctl enable nginx
systemctl disable nginx
# 失敗しているサービス一覧
systemctl --failed
# 詳細なステータスとログ
systemctl status nginx -l
# 直近のエラーログ
journalctl -u nginx -n 50 --no-pager
# 設定ファイルの文法チェック
nginx -t
apachectl configtest
# 権限の確認
ls -la /etc/nginx/
# オーナー変更
chown nginx:nginx /var/www/html/
# パーミッション変更(数値指定)
chmod 644 /etc/nginx/nginx.conf # rw-r--r--
chmod 755 /var/www/html/ # rwxr-xr-x
# ディレクトリ以下すべてに適用
chmod -R 755 /var/www/html/
# root に切り替え
sudo su -
# 特定ユーザーに切り替え
su - nginx
# 1コマンドだけ root で実行
sudo systemctl restart nginx
# RHEL / Rocky / AlmaLinux 系
dnf install nginx
dnf update
dnf remove nginx
# Ubuntu / Debian 系
apt update && apt install nginx
apt upgrade
apt remove nginx
# インストール済みパッケージ確認
rpm -qa | grep nginx # RHEL系
dpkg -l | grep nginx # Debian系
# ログからエラー行を抽出して件数カウント
grep -i error /var/log/syslog | wc -l
# CPU使用率95%超えのプロセスを抽出
ps aux | awk '$3 > 95 {print $0}'
# 特定ポートに接続しているIPを一覧表示
ss -tnp | grep :443 | awk '{print $5}' | cut -d: -f1 | sort | uniq
# 直近1時間のsyslogエラーを別ファイルに保存
journalctl --since "1 hour ago" | grep -i error > /tmp/errors_$(date +%Y%m%d_%H%M).log
# ディスク使用量を監視して80%超えたらアラート出力
df -h | awk 'NR>1 && int($5) > 80 {print "⚠ 警告: "$6" が "$5" 使用中"}'
| やりたいこと | コマンド |
|---|---|
| 今のサーバー時刻確認 | date |
| 稼働時間確認 | uptime |
| ホスト名確認 | hostname -f |
| OS バージョン確認 | cat /etc/os-release |
| カーネルバージョン確認 | uname -r |
| 開いているファイル数確認 | lsof \| wc -l |
| コマンド履歴検索 | Ctrl+R → キーワード入力 |
| 直前のコマンドを root で再実行 | sudo !! |
| 直前のコマンドの一部を置換して再実行 | ^old^new |
| コマンドの場所を確認 | which nginx |
| コマンドの詳細確認 | man nginx または nginx --help |
| 状況 | まず打つコマンド |
|---|---|
| サーバーが重い | top → df -h |
| サービスが落ちた | systemctl status <サービス> |
| ログを追いたい | journalctl -u <サービス> -f |
| ネット繋がらない | ping → ip route → dig |
| ディスクが満杯 | df -h → du -sh /var/log/* |
| ポートが開かない | ss -tulnp \| grep <ポート> |
| ファイルが見つからない | find / -name "<ファイル名>" |
【免責事項:コマンド実行時の注意】
本記事で紹介するコマンドは、システムの設定変更やデータの削除など、影響範囲が広いものを含みます。実行前に必ず内容を確認し、重要なデータはバックアップをとった上で、ご自身の責任において操作を行ってください。誤った操作によるシステムトラブルやデータ消失等について、当方は一切の責任を負いかねます。