LPIC101_regex_B26-30

-- Views

April 22, 26

スライド概要

profile-image

はじめまして、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

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

LPIC Level 1 / 101試験対策 問26〜問30 まるごと解説 find / ① この用語 cut / gunzip ② 簡単に書くよ / ③ 詳しく書くよ + 実機でやっていいの? + Ubuntu / RedHat の違い + うさうさラーメン店のたとえ 新卒未経験・文系出身者向け / ALJ Education Plus 面白きなき世を面白く ── 石黒 友季子 vi / split → 一言まとめ

2.

この回で押さえる5問 Q26 find コマンド Q27 テキスト処理 Q28 アーカイブ・圧縮 Q29 vi エディタ Q30 テキスト処理 -mindepth ─ 最小ディレクトリ階層 1 → どこから下を探す? cut -d ':' -f 1,3 /etc/passwd 2 → どの列を切り出す? gunzip data.tgz の結果 3 → .tgz = .tar.gz [回数][コマンド] 複数行処理 4 → 5l / 3yj / 4dd LPIC Level 1 / ALJ Education Plus / 石黒 友季子 split ─ ファイル分割 5 → -l 行数 / -b バイト 2 / 13

3.

Q26 -mindepth ─ どこから下を探すか決める find コマンド ① 用語 ② かんたん解説 ※正確な表現ではございません うさうさラーメン店の倉庫で… -mindepth N 「最低でも N 階層下から検索してね」 「1階の棚は見なくていいから、 2階以降の棚だけ探してきて!」 find の検索範囲を“下限”で絞るオプション。 -maxdepth と組み合わせると範囲を限定できる。 = 新人バイトに「最低でもここから下」と指示する感覚。 ③ 図で原理原則 ─ 階層(depth)の数え方 depth 0 (起点) /etc /etc/passwd 実機コマンド例 depth 1 ← 除外 $ find /etc -mindepth 2 -name '*.conf' → /etc 直下の .conf は出ない /etc/nginx/ depth 1 /etc/nginx/a.conf LPIC Level 1 / ALJ Education Plus / 石黒 友季子 depth 2 ← 対象! → /etc/nginx/*.conf は出る -maxdepth と合わせて範囲限定 3 / 13 ── Q26 (1/2)

4.

Q26 find コマンド まとめ・実機OK?・ディストリ差 一言でまとめるよ! -mindepth は「ここから下しか見ない」下限の指定。-maxdepth は上限。 ✓ 実機でやってOK? Ubuntu / RedHat 差異 完全にOK。find は読むだけで壊れません。 両方 GNU findutils → 差なし。 $ find /etc -mindepth 2 -name '*.conf' $ find ~/kensyuu -mindepth 1 -type d • Ubuntu 24.04 / RHEL 9 共通仕様 • -mindepth / -maxdepth 同じ挙動 • macOS(BSD find) にも同名あり -delete / -exec rm と組むときは 先に -print で対象確認! → 試験でも現場でもそのまま覚えてOK 試験で引っかけられた選択肢の整理 ✗ -dirmin ✗ -n ✗ -s ✗ -minlevels ◯ -mindepth → 存在しない。名前の雰囲気で選ばない → そんな find オプションは無い → BSD 系で「ソートして出力」。階層とは無関係 → 架空。英語っぽいが存在しない → これが正解。depth = 階層の深さ LPIC Level 1 / ALJ Education Plus / 石黒 友季子 4 / 13 ── Q26 (2/2)

5.

Q27 cut コマンド ─ 列(フィールド)を切り出す テキスト処理 ① 用語 ② かんたん解説 ※正確な表現ではございません うさうさラーメンの注文票から… cut -d ':' -f 1,3 /etc/passwd 「: 区切りのメモから、 1列目(お客様名)と3列目(注文番号) だけ抜き出してちょうだい」 -d 区切り文字(delimiter)を指定 -f 取り出すフィールド番号(field) コロンで区切られた列のうち、1番目と3番目だけ抜き出す。 = エクセルの列コピペ感覚 ③ /etc/passwd は : 区切りの 7 フィールド 1 列目 2 列目 3 列目 4 列目 5 列目 6 列目 7 列目 ユーザー名 パスワード UID GID GECOS ホームdir シェル yukiko x 1000 1000 Yukiko I. /home/yukiko /bin/bash $ cut -d ':' -f 1,3 /etc/passwd LPIC Level 1 / ALJ Education Plus / 石黒 友季子 → yukiko:1000 5 / 13 ── Q27 (1/2)

6.

Q27 テキスト処理 まとめ・実機OK?・ディストリ差 一言でまとめるよ! cut = -d で区切り文字、-f で列番号。数えるのは「1から」。 ✓ 実機でやってOK? Ubuntu / RedHat 差異 完全にOK。読み取り専用で副作用ゼロ。 両方 GNU coreutils → 差なし。 $ cut -d ':' -f 1,3 /etc/passwd | head $ cut -d ',' -f 2 data.csv • /etc/passwd のフォーマットも共通 • RHEL でも Ubuntu でも 7 フィールド TAB 区切りなら -d は省略OK (cut のデフォルト区切りが TAB) BSD/macOS は -d に空白を渡すと挙動 が違うので本番は GNU 環境推奨。 選択肢の罠 ─ 雰囲気で選ばない! ✗ sort -t : -k1,3 → 「並び替え」。列切り出しじゃない ✗ colrm 1,3 → 1〜3文字目を「削除」する(残す方じゃない) ✗ chop -c 1,3 → 架空のコマンド ✗ column -s : 1,3 → 整形表示コマンド。列抽出はしない ◯ cut -d ':' -f 1,3 → これが正解! LPIC Level 1 / ALJ Education Plus / 石黒 友季子 6 / 13 ── Q27 (2/2)

7.

Q28 アーカイブ・圧縮 gunzip は「圧縮だけ」解く ─ 展開はしない ① 用語 ② かんたん解説 ※正確な表現ではございません うさうさラーメンのお土産で… gunzip data.tgz 真空パック(.gz) に包まれた 詰め合わせ箱(.tar) が入っている。 .tgz = .tar.gz のエイリアス gunzip は gzip 圧縮を「展開」するコマンド。 tar のアーカイブ解除はしない(別コマンドが必要)。 gunzip = 真空パックだけ破く。 箱はまだ閉まったまま! → gunzip は 1段階目(圧縮解除)だけを担当。 ③ .tgz は 2段階の包み ─ gunzip は外側だけ data.tgz gunzip → data.tar tar xf → readme.txt 圧縮+アーカイブ アーカイブのみ 個別ファイルに readme.txt config.ini (中身 = 圧縮済) readme.txt config.ini (まだ1ファイル) config.ini gunzip data.tgz 後、data.tgz は消え data.tar が残る。アーカイブ展開は tar xf data.tar が必要! LPIC Level 1 / ALJ Education Plus / 石黒 友季子 7 / 13 ── Q28 (1/2)

8.

Q28 アーカイブ・圧縮 まとめ・実機OK?・ディストリ差 一言でまとめるよ! gunzip = 圧縮解除「のみ」。.tgz → .tar に変わるだけ。中身は展開しない。 ✓ 実機でやってOK? Ubuntu / RedHat 差異 OK。ただし 元の .tgz は消える点に注意。 $ gunzip data.tgz $ gunzip -k data.tgz $ tar xzf data.tgz 両方同じ gzip/gunzip → 差なし。 • .tar.gz / .tgz の扱い共通 • tar コマンドも共通(GNU tar) • bzip2 → .tar.bz2(bunzip2) • xz → .tar.xz (unxz) → data.tar に変化 → 元ファイル残す → 一発で全展開 普段は tar xzf が楽。 → 拡張子ごとに展開コマンドが違う 選択肢の罠 ─ 「中身が展開される」ワナ ✗ readme.txt, config.ini, data.tgz のみ ✗ data.tar と data.tgz のみ ✗ readme.txt.gz と config.ini.gz のみ ✗ readme.txt と config.ini のみ ◯ data.tar のみ LPIC Level 1 / ALJ Education Plus / 石黒 友季子 → tgz は消える → tgz は消える → 個別に圧縮されてない → tar 展開が別途必要 → 正解! 8 / 13 ── Q28 (2/2)

9.

Q29 vi エディタ [回数][コマンド] で一気にまとめて実行 ① 用語 ② かんたん解説 ※正確な表現ではございません うさうさラーメンの厨房で… [回数][コマンド] 「餃子を 5個 ください」と言うとき、 まず「5」と「餃子」を続けて言う。 コマンドの直前に数字を打つと、 その数字の回数ぶん繰り返し実行。 vi も同じ。「5」→「l」で右に5マス。 回数が先、動作があと。 これは vi の 最も基本的な原理。 ほぼすべての移動/編集コマンドに使える。 ③ 原理原則 ─ 数字 → コマンド の順! 5l 10k 右に 5 文字移動 l = 右1文字 10行 上に移動 k = 上1行 LPIC Level 1 / ALJ Education Plus / 石黒 友季子 3yj 2w 3行下までヤンク(コピー) yj = 下1行コピー 2単語 先に移動 w = 次の単語 4dd 7p 4 行まとめて削除 dd = 1行削除 7回 ペースト p = 1回ペースト 9 / 13 ── Q29 (1/2)

10.

Q29 vi エディタ まとめ・実機OK?・ディストリ差 一言でまとめるよ! vi は「数字 → コマンド」。後ろに数字はNG(l5 / yj3 は動かない)。 ✓ 実機でやってOK? Ubuntu / RedHat 差異 OK。練習用ファイルで試そう。 vi コマンド仕様は共通。 $ cp /etc/passwd ~/vi_practice.txt $ vi ~/vi_practice.txt → 5l / 3yj / 4dd を自由に試す • Ubuntu: vi → vim-tiny • RHEL 9: vi → vim-minimal → 両方とも軽量版 vim が呼ばれる /etc/passwd 本体の直接編集はNG。 必ずコピーに対して練習する。 フル機能は vim パッケージを追加 (apt / dnf install vim) 選択肢の罠 ✗ :repeat に続けて番号 → そんなコマンドない ✗ シフト+カーソルで行選択 → Visual モードの話で「複数行に適用」の本質ではない ✗ :set repeat=5 → 架空の設定 ✗ l5 / yj3 (コマンド後に数字)→ 順序が逆! 動作しない ◯ 5l / 3yj (数字→コマンド) → これが正解 LPIC Level 1 / ALJ Education Plus / 石黒 友季子 10 / 13 ── Q29 (2/2)

11.

Q30 split ─ 大きいファイルを分割する テキスト処理 ① 用語 ② かんたん解説 ※正確な表現ではございません うさうさラーメン業務で… split [-l 行数 | -b サイズ] 入力 出力接頭辞 大袋の業務用麺(1000食分)を 「100食ずつの小袋」に詰め替える感じ。 -l N N 行ごとに分割 -b N N バイトごとに分割 • -l 100 = 100食ごとに袋分け • -b 2M = 2kg ごとに袋分け 出力は接頭辞 + aa, ab, ac… の連番。 例: output_aa / output_ab / output_ac ③ 原理原則 ─ 大 → 小 へ分ける、中身は変えない big.log 1500 行 split -l 500 (巨大なログ) out_ out_aa out_ab out_ac 1〜500 行 501〜1000 行 1001〜1500 行 500 行 500 行 500 行 サフィックスは aa→ab→ac… zz まで26×26=676個作れる。-d オプションで数字連番(00,01…)にもできる。 LPIC Level 1 / ALJ Education Plus / 石黒 友季子 11 / 13 ── Q30 (1/2)

12.

Q30 テキスト処理 まとめ・実機OK?・ディストリ差 一言でまとめるよ! split は「ファイルを 行数 or バイト で小分け」。中身の内容は変えない。 ✓ 実機でやってOK? Ubuntu / RedHat 差異 OK。元ファイルは変更されない。 両方 GNU coreutils → 差なし。 $ split -l 500 big.log out_ $ split -b 2M big.iso part_ $ cat out_* > restored.log • -l / -b / -d 全て共通 • Ubuntu 24.04 / RHEL 9 同挙動 分割ファイルが増えるので作業ディレクトリ を用意してから実行しよう。 macOS の split は -b の単位指定 書式が一部違う(2m / 2M など)。 → 試験対策は GNU 仕様でOK 選択肢の罠 ✗ ar ✗ cat ✗ divide ✗ parted ◯ split → アーカイブ作成(.a 静的ライブラリ用)。分割ではない → ファイル結合・表示。分割ではない(逆の動作!) → 架空のコマンド → パーティション操作コマンド。ファイル分割ではない → これが正解! LPIC Level 1 / ALJ Education Plus / 石黒 友季子 12 / 13 ── Q30 (2/2)

13.

Q26-30 総まとめ 1 コマンド = 1 行で思い出せるようにしておこう。 Q26 find -mindepth N → N階層より下だけ検索(下限) Q27 cut -d ':' -f 1,3 → :区切りの1列目と3列目を切り出す Q28 gunzip data.tgz → 圧縮解除だけ → data.tar が残る Q29 5l / 3yj / 4dd → vi は 数字 → コマンド の順 Q30 split -l 500 big.log out_ → 500行ごとに out_aa, out_ab… と分割 お疲れさまでした ─ 面白きなき世を面白く