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

はじめに
Linuxコマンド何から学べばいいか分からん...となったため、学習すべきコマンドの一覧をChatGPTに出力してもらいました。(ChatGPT 5 Thinkingを使用)
結構よさげな内容だったため、メモがてらスクラップに投稿することにしました。
目安としてはAWSエンジニアが現場で7~8割の業務を回せる程度、困る事はあまりないラインだそうです。
下記がその一覧になります。
Linux実務ミニチェックシート(AWS設計・構築・初現場用)
最短で“ひとりで回す”ための要点まとめ。太字のオプションだけ反射で打てればOK。
6バケツ・12コマンド(反射で打つ)
A. ナビ/探索
cd
/ pwd
/ ls -alh
| find -type f -name "PATTERN"
/ find -type f -size +100M
B. ログ閲覧
less
(/
検索・F
追従) | tail -F /var/log/xxx.log
C. 抽出/要約
grep -E
・grep -v
| cut -d: -f2-
| sort | uniq -c
| xargs
D. サービス/OSログ
systemctl status|start|stop|restart
・is-enabled
|
journalctl -u UNIT --since "-15 min"
(+-b
)
E. ネットワーク/HTTP
ss -tulpn
(LISTEN→PID特定) | curl -I
・curl -v
・curl --resolve name:443:IP
F. ディスク
df -h
| du -sh *
(上位から3階層掘る)
コスパ良い“最小追加10”(落とし穴封じ)
-
chmod
(実行ビット/再帰の感覚) -
chown
(ユーザ/グループ整合) -
id
/groups
(実効ユーザの確認) -
umask
(新規作成時の権限) -
journalctl -g ERROR
(ログのパターン絞り込み) -
dig +short NAME
(DNS解決の事実確認) -
resolvectl status
orsystemd-resolve --status
(解決経路) -
openssl s_client -connect host:443 -servername host
(証明書/中間CA/期限) -
chronyc tracking
(NTPずれ確認) -
EBS拡張 2手:
growpart /dev/nvme0n1 1
→xfs_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分切り分け)
-
層当て:
df/du
(ディスク)→systemctl/journalctl -u
(サービス)→ss
・curl -I/-v/--resolve
(NW/HTTP) - 証拠1枚:上の5型で“根拠”を作る(件数・上位・期間指定)。
-
暫定回避:ログ整理/古いローテ削除/
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 -alh
、ls -alh /etc
、ls -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ログ
systemctl:status
、start
、stop
、restart
、reload
、enable/disable
、is-enabled
、is-active
、cat
(ユニット表示)、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-rwx
、a+X
)
型:chmod -R u=rwX,g=rX,o= /var/www/app
chown:-R
、user:group
、--reference
型:chown -R nginx:nginx /var/www/app
id / groups:id -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
resolvectl:resolvectl status
、resolvectl query name
、resolvectl 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
chronyc:tracking
(同期状態)、sources -v
(参照元)
型:chronyc tracking ; chronyc sources -v
growpart:--dry-run
、growpart /dev/nvme0n1 1
(1番パーティション拡張)
xfs_growfs:xfs_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