-- Views
April 15, 26
スライド概要
ALJ Education Plus 株式会社 YukikoIshiguro
はじめまして、yukikoと申します。 DX推進のお力になれれば嬉しいです! 気軽にLinkedinなどでお声がけくださいね! ★スキル LPICレベル2取得者 AI、Python、Splunk、BIが得意領域です。
LPIC レベル1 完全攻略ガイド 新卒未経験・文系出身エンジニア向け | 全10章 | 図解 & たとえ話で 理解する Yukiko LPIC レベル1 完全攻略ガイド | 新卒未経験文系エンジニア向け
目次 | 全10章の学習マップ 01 シェル基礎 02 環境変数 03 基本コマンド 04 テキスト処理 05 正規表現 & grep シェル・プロンプト・ディレクトリ 変数の設定・確認・削除 ls / cp / mv / mkdir / rm 等 cat / head / tail / sort / grep 等 パターン検索の完全攻略 06 ジョブ管理 07 パッケージ管理 08 アクセス権限 09 システムアーキテクチャ 10 マウント フォアグラウンド / バックグラウンド apt / dpkg の使い分け chmod / chown / umask HW / BIOS / デバイス /etc/fstab / mount / umount
01 シェル基礎 シェルとは / プロンプト / ディレクトリ指定 / シェル操作テクニック
シェルの役割 | ユーザーとカーネルの通訳係 ユーザー(あなた) │ │ コマンド入力(例: ls -la) ▼ シェル(bash)← 通訳係:コマンドを解釈して伝える │ │ 命令を伝達 ▼ カーネル(OS本体)← 実際にファイル一覧を取得 │ │ 結果を返す ▼ シェル → ユーザーの画面に表示 ★ うさうさラーメン店でいうと: お客さん(ユーザー)→ 通訳係(シェル)→ 厨房(カーネル)
主要シェルの種類 シェル 正式名称 特徴 sh Bourne Shell Unix初期のシェル。シンプル軽量 bash Bourne Again SHell ★ Linuxのデフォルト!試験はほぼbash zsh Z Shell bashの高機能版。補完が優れる csh C Shell C言語風の文法 ksh Korn Shell shとbashの機能を組み合わせ
プロンプトの読み方 プロンプト記号 ディレクトリ指定の特殊記号 $ → 一般ユーザー ~ → ホームディレクトリ(自分の家) # → root(管理者)ユーザー . → カレントディレクトリ(今ここ) ~ → ホームディレクトリにいる .. → 1つ上のディレクトリ 例: root@server:/etc$ 絶対パス: /home/user/file.txt root = ユーザー名 → / から始まるフルパス server = ホスト名 相対パス: ./file.txt /etc = 今いるディレクトリ → 現在地からの相対的なパス
シェル操作ショートカット(必須暗記!) 操作 説明 Tab キー コマンド・ファイル名の補完(最重要!) Tab Tab(2回) 補完候補が複数ある場合、一覧表示 ↑ / ↓ キー コマンド履歴を遡る / 進む Ctrl + C 実行中のコマンドを中止 Ctrl + L 画面をクリア(= clear) Ctrl + A / E 行の先頭 / 末尾に移動 Ctrl + R コマンド履歴を検索 !! 直前のコマンドを再実行
Chapter 1 まとめ シェル = ユーザーとカーネルの通訳係 Linuxのデフォルトは bash $ = 一般ユーザー、# = root Tab補完・↑キー・Ctrl+C の3つは毎日使う!
02 環境変数 環境変数とは / 確認方法 / 設定・削除 / シェル変数との違い
環境変数 vs シェル変数 ┌─────────────────────────────────────────────┐ │ シェル変数(今のシェルだけ) │ │ │ │ MYVAR=hello ← export なし │ │ echo $MYVAR → hello │ │ bash(新しいシェル起動) │ │ echo $MYVAR → (何も表示されない!) │ ├─────────────────────────────────────────────┤ │ 環境変数(全シェルで有効) │ │ │ │ export MYVAR=hello ← export あり │ │ bash(新しいシェル起動) │ │ echo $MYVAR → hello(引き継がれる!) │ └─────────────────────────────────────────────┘
必須暗記!主要な環境変数 変数名 内容 例 PATH コマンドの検索パス /usr/bin:/usr/local/bin HOME ホームディレクトリ /root SHELL 現在のシェル /bin/bash USER ログインユーザー名 root LANG 表示言語・ロケール ja_JP.UTF-8 PWD カレントディレクトリ /etc PS1 プロンプトの表示文字列 \u@\h:\w\$ HISTSIZE コマンド履歴の最大件数 1000
環境変数の操作コマンド コマンド 説明 env / printenv 環境変数一覧を表示 echo $変数名 特定の変数の値を確認 export 変数名=値 環境変数を設定(子プロセスにも引き継ぎ) 変数名=値 シェル変数を設定(今のシェルだけ) export 変数名 シェル変数 → 環境変数に昇格 unset 変数名 変数を削除
Chapter 2 まとめ export あり = 環境変数(全シェルで有効) export なし = シェル変数(今のシェルだけ) PATH, HOME, SHELL, LANG, USER は必須暗記!
03 基本コマンド操作 history / man / ls / cp / mv / mkdir / rm / rmdir / touch / file
基本コマンド一覧(前半) コマンド 説明 よく使う形 history コマンド履歴表示 history 10 / !! man マニュアル表示 man ls / man -k keyword ls ファイル一覧 ls -la(最頻出!) cp コピー cp -r dir1 dir2(-r必須) mv 移動/名前変更 mv old new / mv file dir/
基本コマンド一覧(後半) コマンド 説明 よく使う形 mkdir ディレクトリ作成 mkdir -p /a/b/c(超便利!) rm ファイル/Dir削除 rm -r dir/ / rm -rf(最終手段) rmdir 空Dir削除 rmdir emptydir touch 空ファイル作成/時刻更新 touch file.txt / -t で日時指定 file ファイル種別判定 file myfile
混同注意!cp vs mv / rm vs rmdir cp vs mv rm vs rmdir cp = コピー(元が残る) rmdir = 空のディレクトリのみ削除 mv = 移動(元が消える) rm -r = 中身ごと全削除 cp -r → ディレクトリコピーに必須! mv は移動 + リネームの2役 rm -rf / は絶対NG! システム全体が消えます
04 テキスト処理コマンド cat / head / tail / cut / sort / tr / join / paste / wc 等 16コマンド
テキスト処理コマンドの5分類 ┌───────────────────────────────────────────┐ │ テキスト処理コマンド 5分類 │ ├───────────────────────────────────────────┤ │ │ │ 【表示する】 cat / head / tail / nl / od │ │ │ │ 【抽出変換】 cut / tr / sort │ │ │ │ 【結合分割】 join / paste / split │ │ │ │ 【整形する】 fmt / pr / expand / unexpand │ │ │ │ 【数える】 wc │ │ │ └───────────────────────────────────────────┘
テキスト処理コマンド早見表(前半) コマンド 説明 覚えるポイント cat -n 行番号つきで表示 ファイル表示の基本 head -n 5 先頭5行表示 デフォルト10行 tail -f リアルタイム監視 ★ ログ監視の定番!超重要 cut -d: -f7 列の切り出し -d=区切り文字 -f=フィールド番号 sort -r / -n 並び替え -r=降順 -n=数値順 -u=重複除去
テキスト処理コマンド早見表(後半) コマンド 説明 覚えるポイント tr A-Z a-z 文字の置換/削除 パイプ | と組み合わせて使う join キーで結合 SQLのJOINのような動作 paste -d: 行ごと横結合 全行を単純に横に並べる split -l 10 ファイル分割 -l=行数 -b=バイト数 wc -l 行数カウント -w=単語数 -c=文字数
05 正規表現 & grep パターン記号 / grepコマンド / オプション活用
正規表現の基本記号 記号 意味 例 . 任意の1文字 a.c → abc, axc にマッチ ^ 行の先頭 ^start → startで始まる行 $ 行の末尾 end$ → endで終わる行 [abc] a/b/cのどれか1文字 [0-9] → 数字1文字 * 直前の文字が0回以上 go* → g, go, goo... + 直前の文字が1回以上 go+ → go, goo... ? 直前の文字が0か1回 colou?r → color, colour {n} 直前の文字がちょうどn回 \d{4} → 4桁の数字
grepコマンド よく使うオプション オプション 意味 -E 正規表現(拡張)を使う -o マッチした部分だけ表示 -r ディレクトリ内を再帰的に検索 -i 大文字・小文字を無視 -v マッチしない行を表示(逆マッチ) -n 行番号も一緒に表示 -c マッチした行数を表示 -l マッチしたファイル名を表示
06 ジョブ管理 フォアグラウンド / バックグラウンド / jobs / fg / bg
ジョブの切り替えフロー 通常実行 コマンド入力 ─────────→ フォアグラウンド(操作不可) │ │ ↑ │ コマンド & │Ctrl+Z │fg ジョブ番号 │ ▼ │ └──────────────→ 一時停止(Stopped) │ │bg ジョブ番号 ▼ バックグラウンド(操作可能) ★ うさうさラーメン店でいうと: フォアグラウンド = 表のカウンターで調理中(次の注文待ち) バックグラウンド = 裏のキッチンで煮込み中(次の注文OK)
ジョブ管理コマンド コマンド/操作 説明 コマンド & バックグラウンドで実行 nohup コマンド & ログアウト後も実行し続ける jobs ジョブ一覧を表示 fg ジョブ番号 バックグラウンド → フォアグラウンド bg ジョブ番号 停止中 → バックグラウンドで再開 Ctrl + C フォアグラウンドジョブを終了(SIGINT) Ctrl + Z フォアグラウンドジョブを一時停止(SIGTSTP)
Ctrl+C vs Ctrl+Z(超頻出!) Ctrl+C = 料理を捨てる(もう食べられない)→ 終了 Ctrl+Z = 料理を冷蔵庫に入れる(あとで再開できる)→ 一時停止 bg と & の違い: bg = 停止中のジョブをバックグラウンドで再開 & = 最初からバックグラウンドで実行
07 パッケージ管理 パッケージとは / apt / dpkg / ディストリビューション
ディストリビューションとパッケージ管理 Debian系(Ubuntu等) RHEL系(CentOS等) 高レベル: apt / apt-get 高レベル: yum → インターネット経由 → インターネット経由 → 依存関係を自動解決 → 依存関係を自動解決 低レベル: dpkg 低レベル: rpm → .debファイルを直接操作 → .rpmファイルを直接操作 → 依存関係は自動解決しない → 依存関係は自動解決しない
apt系コマンド早見表 コマンド 説明 apt-get update パッケージ情報を最新化(★install前に必ず実行!) apt-get install パッケージ インストール(依存関係も自動解決) apt-get upgrade インストール済みパッケージを全更新 apt-get remove パッケージ パッケージを削除 apt-cache search キーワード パッケージをキーワードで検索 apt-cache show パッケージ パッケージの詳細情報を表示
dpkg系コマンド早見表 コマンド 説明 dpkg -i パッケージ.deb .debファイルからインストール dpkg -r パッケージ 削除(設定ファイルは残す) dpkg -P パッケージ 完全削除(設定ファイルも消す) dpkg -l インストール済みパッケージ一覧 dpkg -L パッケージ パッケージのファイル一覧 dpkg -S ファイル名 ファイルの所属パッケージを表示
apt vs dpkg(超頻出!) apt = 宅配サービス(ネット経由 + 依存解決) dpkg = 手渡し(.debファイル直接 + 依存解決なし) update = 情報取得のみ upgrade = 実際にパッケージを更新 -r = 設定ファイル残す -P = 完全削除
08 アクセス権限 パーミッション / chmod / chown / chgrp / umask / 特殊権限
権限の見方(ls -l の読み方) $ ls -l test.txt -rw-r--r-- 1 root root 1234 test.txt - rw- r-- r-│ ─── ─── ─── │ │ │ └── その他(Others)の権限 │ │ └────── グループ(Group)の権限 │ └────────── 所有者(User)の権限 └───────────── ファイル種別(- = ファイル, d = ディレクトリ) 権限の読み方: rw- → 読める + 書ける + 実行できない r-- → 読めるだけ rwx → 全部できる --- → 何もできない
chmod 数字指定 | 足し算で覚える r = 4(読み込み) w = 2(書き込み) x = 1(実行) - = 0(なし) ★ 組み合わせて足し算するだけ! rw- = 4+2+0 = 6 r-- = 4+0+0 = 4 rwx = 4+2+1 = 7 chmod 660 test.txt 6 6 0 ↑ ↑ ↑ 所有者 グループ その他 (rw-) (rw-) (---) よく使う組み合わせ: 777 = 全員が全部できる(危険!) 755 = 所有者は全部、他は読み&実行のみ 644 = 所有者は読み書き、他は読むだけ 600 = 所有者だけ読み書き(秘密ファイル用)
権限関連コマンド コマンド 用途 chmod 644 file 数字で権限変更 chmod u+w file 記号で権限変更(u=所有者, g=グループ, o=その他, a=全員) chown user:group file 所有者・グループを同時に変更 chgrp group file グループだけ変更 umask デフォルト権限の確認 umask 022 デフォルト権限の変更
特殊権限 & umask 特殊権限 umask(デフォルト権限) SUID(4___) ファイルのベース: 666 → ファイル所有者の権限で実行 ディレクトリのベース: 777 → 例: passwdコマンド SGID(2___) umask 022 の場合: → グループ権限で実行 ファイル: 666 - 022 = 644 スティッキービット(1___) → 自分のファイルだけ削除可 → 例: /tmp ディレクトリ Dir: 777 - 022 = 755 ★ ベースから引き算!
09 システムアーキテクチャ ハードウェア / BIOS・UEFI / デバイスファイル / /proc
ハードウェアの全体像 ┌─────────────────────────────────────────────┐ │ ★ コンピュータの5大要素 │ ├─────────────────────────────────────────────┤ │ │ │ CPU(プロセッサ) → 頭脳。計算処理の中心 │ │ メモリ(RAM) → 作業台。一時的に保管 │ │ 電源OFFで消える │ │ ストレージ(HDD/SSD) → 倉庫。永久保管 │ │ 入力装置 → キーボード、マウス等 │ │ 出力装置 → ディスプレイ、プリンタ等│ ├─────────────────────────────────────────────┤ │ BIOS = 古い起動プログラム(MBR対応) │ │ UEFI = 新しい起動プログラム(GPT対応)★ 現在の主流│ └─────────────────────────────────────────────┘
デバイス確認コマンド & /proc コマンド/パス 説明 lspci / lspci -v PCIデバイスの一覧(-v で詳細) lsusb / lsusb -v USBデバイスの一覧 lscpu CPU情報を表示 lsmod ロード済みドライバの一覧 modprobe ドライバ名 ドライバを手動ロード /proc/cpuinfo CPU情報(仮想ファイル) /proc/meminfo メモリ情報(仮想ファイル) /dev/ デバイスファイルの格納場所
udev と /proc udev = デバイス接続時にデバイスファイルを自動作成する仕組み ルールファイル: /lib/udev/rules.d/(デフォルト) カスタム: /etc/udev/rules.d/ /proc = カーネルが生成するリアルタイム情報 ディスクには保存されない仮想ファイルシステム
10 マウント /etc/fstab / mountコマンド / umountコマンド
マウントの全体像 | ディスクを使えるようにする最後のステップ Step 1: ハードディスクを接続 ▼ Step 2: パーティションを作成 ▼ Step 3: ファイルシステムを作成(mkfs) ▼ Step 4: マウント ← ★ 今回のテーマ! ▼ ファイルのコピーや保存ができる! マウントとは: /dev/sda1 ──[ext4]──→ /(ルート) /dev/sda2 ──[ext4]──→ /home /dev/sdb1 ──[xfs]──→ /mnt/data デバイスとディレクトリをつなぐ工事!
/etc/fstab の書式 | マウントの設計図 /etc/fstab の6つのフィールド: デバイス 具体例: /dev/sdb2 マウントポイント /home ext4 FS種類 defaults オプション 0 dump fsck順序 0 主要なマウントオプション: defaults → デフォルト設定(rw, exec, suid等を含む) rw → 読み書き可能 ro → 読み取り専用 noexec → 実行禁止(セキュリティ用途) user → 一般ユーザーもマウント可能 noauto → 自動マウントしない(手動のみ)
mount / umount コマンド コマンド 説明 mount 現在のマウント状況を一覧表示 mount -a /etc/fstab の全デバイスをマウント mount -t ext4 /dev/sdb1 /mnt/data 直接マウント(FS種類を指定) umount /mnt/data アンマウント(マウントポイント指定) umount /dev/sdb1 アンマウント(デバイス指定)
mount / umount の注意点 umount のスペル = unmount ではなく umount(nがない!) fstab に書く → 永続的(再起動後もマウント) 直接 mount → 一時的(再起動で消える) busy エラー → cd / で移動してからアンマウント
LPIC レベル1 完全攻略ガイド 面白きなき世を面白く 全10章の学習を振り返ろう! コマンドは毎日手を動かして体で覚えよう!