Open1

【メモ】Linux 習得コマンドチェックシート

y_romuy_romu

はじめに

Linuxコマンド何から学べばいいか分からん...となったため、学習すべきコマンドの一覧をChatGPTに出力してもらいました。(ChatGPT 5 Thinkingを使用)

結構よさげな内容だったため、メモがてらスクラップに投稿することにしました。

目安としてはAWSエンジニアが現場で7~8割の業務を回せる程度、困る事はあまりないラインだそうです。
下記がその一覧になります。

Linux実務ミニチェックシート(AWS設計・構築・初現場用)

最短で“ひとりで回す”ための要点まとめ。太字のオプションだけ反射で打てればOK。


6バケツ・12コマンド(反射で打つ)

A. ナビ/探索
cd / pwd / ls -alhfind -type f -name "PATTERN"find -type f -size +100M

B. ログ閲覧
less/検索・F追従) | tail -F /var/log/xxx.log

C. 抽出/要約
grep -Egrep -vcut -d: -f2-sort | uniq -cxargs

D. サービス/OSログ
systemctl status|start|stop|restartis-enabled
journalctl -u UNIT --since "-15 min"(+-b

E. ネットワーク/HTTP
ss -tulpn(LISTEN→PID特定) | curl -Icurl -vcurl --resolve name:443:IP

F. ディスク
df -hdu -sh *(上位から3階層掘る)


コスパ良い“最小追加10”(落とし穴封じ)

  1. chmod(実行ビット/再帰の感覚)
  2. chown(ユーザ/グループ整合)
  3. id / groups(実効ユーザの確認)
  4. umask(新規作成時の権限)
  5. journalctl -g ERROR(ログのパターン絞り込み)
  6. dig +short NAME(DNS解決の事実確認)
  7. resolvectl status or systemd-resolve --status(解決経路)
  8. openssl s_client -connect host:443 -servername host(証明書/中間CA/期限)
  9. chronyc tracking(NTPずれ確認)
  10. EBS拡張 2手growpart /dev/nvme0n1 1xfs_growfs /mountpoint

定番ワンライナー(5型だけ覚える)

1) エラー要約
grep -hE "error|fail" /var/log/* 2>/dev/null | cut -d: -f2- | sort | uniq -c | sort -nr | head

2) 巨大ファイル発見
find /var -type f -size +100M -printf '%s %p\n' | sort -nr | head

3) 多い送信元TOP(access.log想定)
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head

4) HTTPステータス集計
awk '{print $9}' access.log | sort | uniq -c | sort -nr

5) 回転ログ追随&即抽出
tail -F /var/log/app.log | grep --line-buffered ERROR


初動フロー(30分切り分け)

  1. 層当てdf/du(ディスク)→ systemctl/journalctl -u(サービス)→ sscurl -I/-v/--resolve(NW/HTTP)
  2. 証拠1枚:上の5型で“根拠”を作る(件数・上位・期間指定)。
  3. 暫定回避:ログ整理/古いローテ削除/Restart=on-failure等。再起動は最後。

合格ライン(これが言えればOK)

  • どの層の問題かを根拠付きで説明できる。
  • 再起動以外の暫定策を1つ提案できる。
  • 権限・名前解決・証明書のいずれかを再現→修正できる。

補足:本番での変更前にバックアップcp -a foo foo.yyyymmdd)、rm -rfは使わない。変更理由と戻し方を必ずメモ。


各コマンドの“必修オプション”ミニリファレンス

太字=まず覚える、下段は“型”の例。

A. ナビ/探索

cd-(直前のディレクトリへ)|~(ホーム)
pwd-P(物理パス)
ls-a(隠し含む)、-l(詳細)、-h(人間可読)、-t(更新時刻順)、-r(逆順)、-d(ディレクトリ自身)、-R(再帰)
ls -alhls -alh /etcls -ldt */(最新ディレクトリを上に)

find-type f|d-name/-iname-size +100M-mtime -1(1日以内)、-mmin -30-user-group-perm-maxdepth 1-printf '%s %p '-exec ... {} +
-deleteは誤爆リスク。まず-printで確認。
find /var -type f -size +100M -printf '%s %p ' | sort -nr | head

B. ログ閲覧

less/PATTERN(前方検索)、?(後方検索)、n/N(次/前)、F(追従)、-S(折返しOFF)、-N(行番号)、-R(色保持)
less -S /var/log/messages/ERROR

tail-F(名前追従=ローテ後も継続)、-f(FD追従)、-n 200(末尾200行)、--pid <PID>(PID終了で停止)
tail -F /var/log/app.log

C. 抽出/要約

grep-E(拡張正規表現)、-v(除外)、-i(大文字小文字無視)、-n(行番号)、-H/-h(ファイル名 表示/抑止)、-r(再帰)、--color=auto-A/-B/-C 3(前後文脈)
grep -hE "error|fail" /var/log/* 2>/dev/null

cut-d ':'(区切り)、-f 2-(2列目以降)、-c 1-10(文字位置)、--complement(列の反転選択)
... | cut -d: -f2-

sort-n(数値)、-r(逆順)、-k 1,1(キー指定)、-t ':'(区切り変更)、-u(重複除去)
uniq-c(件数)、-d(重複のみ)、-u(一意のみ) ※前段にsort必須
... | sort | uniq -c | sort -nr | head

xargs-n 1(1引数ずつ)、-0(NULL区切り;find -print0と対)、-P 4(並列)、-I{}(置換)、-r(入力なければ実行しない)
grep -rl "pattern" . | xargs -r sed -i 's/pattern/repl/'

D. サービス/OSログ

systemctlstatusstartstoprestartreloadenable/disableis-enabledis-activecat(ユニット表示)、daemon-reload
systemctl status nginx / systemctl is-enabled nginx

journalctl-u UNIT(ユニット)、--since/--until(期間)、-b(このブート)、-n 200(末尾)、-f(追従)、-p warning..emerg(優先度)、-g ERROR(パターン)
journalctl -u nginx --since "-15 min" -p warning..emerg

E. ネットワーク/HTTP

ss-tulpn(TCP/UDP・LISTEN・PID/名前表示・数値)、-s(概要)、-4/-6(IPv4/6)
ss -tulpn | grep LISTEN

curl-I(ヘッダのみ)、-v(詳細)、--resolve name:443:IP(名前固定→上流/下流切り分け)、-sS(静か+エラー表示)、-H 'Header: v'(ヘッダ追加)、-o /dev/null -w '%{http_code} '(HTTPコードのみ)
curl -sS -o /dev/null -w '%{http_code} ' https://example.com

F. ディスク

df-h(人間可読)、-T(FS種別)、-i(inode使用率)、-x tmpfs(除外)
df -hT | sort -k5 -n

du-sh *(合計/人間可読)、--max-depth=1(深さ1)、-d 1(同義;環境差あり)、-x(同一FS内のみ)
du -sh --max-depth=1 /var | sort -h


追加10コマンド(必修オプション)

chmod-R(再帰)、数値/記号(例:u+rw,g-wx,o-rwxa+X
chmod -R u=rwX,g=rX,o= /var/www/app

chown-Ruser:group--reference
chown -R nginx:nginx /var/www/app

id / groupsid -u/-g/-G(UID/GID/補助G)、id -un(名前)
id -un ; id -G

umask:現在値表示→umask 022/027/077
umask 027(新規ファイルの既定権限を引き締め)

dig+short@DNS(問い合わせ先)、A/AAAA/CNAME/TXT/NS-x(逆引き)、+trace
dig +short A www.example.com @8.8.8.8

resolvectlresolvectl statusresolvectl query nameresolvectl dns <if> <server>
resolvectl query example.com

openssl s_client-connect host:443-servername host-showcerts-tls1_2
openssl s_client -connect example.com:443 -servername example.com | openssl x509 -noout -dates -issuer -subject

chronyctracking(同期状態)、sources -v(参照元)
chronyc tracking ; chronyc sources -v

growpart--dry-rungrowpart /dev/nvme0n1 1(1番パーティション拡張)
xfs_growfsxfs_growfs /mountpoint(XFS拡張;ext4はresize2fs
growpart /dev/nvme0n1 1 && xfs_growfs /


安全運用Tips(削除・変更前の型)

  • 変更前バックアップ:cp -a file file.$(date +%Y%m%d%H%M%S)
  • 危険操作の抑止:rmの代わりにまずlsでパス検証、--でオプション終端(例:rm -- -rf
  • ログ取得の再現性:journalctl --since "2025-09-09 19:00" --until "2025-09-09 19:30" -u app.service > app_20250909_1900-1930.log