-- Views
April 21, 26
スライド概要
はじめまして、ALJ Education Plus 株式会社のyukikoと申します。 IT教育支援や、DX推進が可能です。 ◆ スキル LPIC レベル2 AI / Python Splunk BI(データ可視化・分析) ◆ その他 新卒・未経験の学生向けに、エンジニア転職を応援する資料を趣味で作成しています。 もしよろしければご活用ください。 ◆IT研修講師をお探しの方は [email protected] にお気軽にお問い合わせください。 ※ALJ Education Plus 株式会社を通して、ご支援させていただきます。 ◆Zenn https://zenn.dev/yukiko_sapporo/articles/46c13e9f98b110
LPIC-101 v5.0 | 小豆 本対 応 find コマンド 「ユーザ名 vs UID番号」「-printの省略」を見抜く 新卒・文系・未経験のための IT 研修 4段構造で原理原則まで落とし込む30分レッスン うさうさラーメン店方式
PROBLEM 今日のお題 ― B問題セット 問5 ユーザー admin が所有する /var/ とそのサブディレクトリ内のすべてのファイルを一覧表示するコマンドはどれです か。 1 find -path /var -user admin -print 2 find /var -user admin 3 find /var -user admin -print 4 find /var -uid admin -print 5 find -path /var -uid admin 複数選択(正解は2つ) LPIC-101 | find コマンド 2 / 10
① この用語 findコマンドの3部構造 用語 find ファイルを再帰的に探す万能コマンド ディスクを毎回全走査して、 条件に合うファイルを探す。 名前・所有者・サイズ・更新日… あらゆる条件で絞り込める。 locate と違って、 常に最新の状態を見る。 LPIC-101 | find コマンド うさうさラーメン店で例えると 店長: 「admin作のどんぶり全部持ってきて」 findは3部構成の命令書 パス どこから探す /var 条件 何を探す -user admin アクション 見つけたら -print 3 / 10
② 簡単に 書式と「-print は省略可能」 基本の書式 find パス 条件 ○ -print あり(明示) find /var -user admin -print [アクション] ○ -print なし(省略) find /var -user admin 見つけたファイルパスを 標準出力に表示する。 アクション省略時は -print がデフォルト動作。 → 書く人も分かりやすい → 結果は↑と全く同じ ★ ポイント: どちらも LPIC では正解扱い。試験で両方出たら両方チェック。 LPIC-101 | find コマンド 4 / 10
③ 詳しく① パス指定 と -path オプションは別物 第1引数のパスは「どこから探すか」。 -path は「どのパス名パターンにマッチするか」。 ○ 第1引数 ― 検索の起点 △ -path ― パターン条件 find /var -user admin find -path /var -user admin → /var から再帰的に探す → カレントから探す。/var 名の物だけ 探索対象 挙動 ✓ /var/log/messages ✓ /var/spool/mail/admin ✓ /var/www/html/index.html ✓ /var/lib/dpkg/status ✗ /var から開始しない LPIC-101 | find コマンド (カレントから再帰) ✗ ディレクトリ「/var そのもの」 しかマッチしない → 今回は使い方として誤り 5 / 10
③ 詳しく② -user は名前、-uid は番号(超重要) オプション 指定する値 例 内部動作 -user ユーザ名(文字列) -user admin /etc/passwd を引いてUIDに変換 → 検索 -uid UID(数値のみ) -uid 1000 UID番号でそのまま比較。文字列は不可 よくある罠:-uid に文字列を渡す find /var -uid admin → エラー: admin は数値じゃない find /var -uid 1000 → OK(UID 1000 のユーザで検索) ★ 兄弟オプション: -group NAME(グループ名) / -gid N(GID番号)も同じ関係 → 「名前系」と「番号系」をセットで覚える。LPICは誘い方が巧妙なので注意! LPIC-101 | find コマンド 6 / 10
③ 詳しく③ 実機ハンズオン(Ubuntu / RHEL 共通) find は GNU findutils(Ubuntu/RHELどちらも同じ挙動)。安心して叩いてOK。 Terminal ― 試してみる # UIDを確認 $ id admin uid=1001(admin) gid=1001(admin) よく使う条件オプション -name PAT ファイル名 # -user でも -uid でも同じ結果 $ sudo find /var -user admin /var/mail/admin /var/log/admin.log -type f/d/l 種別(ファイル/ディレクトリ/リンク) -user NAME 所有ユーザ(名前) $ sudo find /var -uid 1001 /var/mail/admin /var/log/admin.log -uid N 所有ユーザ(UID) # -uid admin はエラー $ find /var -uid admin find: 数値引数が無効です: 'admin' LPIC-101 | find コマンド -group NAME 所有グループ(名前) -size +N サイズ(KB/MB単位可) -mtime -N N日以内に更新 -perm MODE パーミッション 7 / 10
APPLY 原理原則で5択を斬る # コマンド 判定 理由 1 find -path /var -user admin print × 誤り 第1引数がない→カレントから探す。-path /var はディレクトリ /var 自体しかマッチしない 2 find /var -user admin ○ 正解 /var 以下を再帰。-print 省略はデフォルト動作で暗黙表示される 3 find /var -user admin -print ○ 正解 上と同じ意味。-print を明示しただけで結果は同一 4 find /var -uid admin -print × 誤り -uid は数値専用。admin という文字列は渡せず、構文エラー 5 find -path /var -uid admin × 誤り 第1引数なし+-uidに文字列。二重のミス → 正解は 2番 と 3番。-print の有無は結果に影響しない。 LPIC-101 | find コマンド 8 / 10
ANSWER 正解 ― 2つの等価なコマンド 正解 ② 正解 ③ find /var -user admin find /var -user admin -print アクション省略 = -print 暗黙動作 -print を明示指定したバージョン シンプル・推奨スタイル 結果は②と完全一致 ひっかけポイント ― 3つの罠 ① -print の省略 なしでも同じ動作。両方選ぶ LPIC-101 | find コマンド ② -user vs -uid 名前か番号か。uidに文字列は不可 ③ 第1引数 vs -path -pathはパターン条件。起点指定ではない 9 / 10
④ 原理原則・一言でまとめ find は 「パス → 条件 → アクション」の順で読む。 どこから 何を どうする パス (/var) 条件 (-user) 出力 (-print) -user は名前・-uid は番号。-print は省略しても表示される。 面白きなき世を面白く ─ 石黒 友季子