>100 Views
April 19, 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-4 ファイルと プロセス管理 〜リンク/プロセス/システム管理コマンド〜 対象:新卒・未経験・文系出身エンジニア 特徴:たとえ話+図解で、人に説明できるレベルへ 面白きなき世を面白く YukikoIshiguro 小豆本の理解促進用の資料※趣味
このスライドで学ぶこと(AGENDA) 01 02 03 04 ファイルのリンク ハードリンク シンボリックリンク プロセスとは ハード/シンボリック 合鍵方式・inode直接参照 看板方式・パス経由参照 psコマンド・PIDの世界 05 06 07 08 killコマンド killall / pkill プロセス優先度 システム管理 シグナルで制御 名前で指定 nice/renice top/free/uptime 「なんとなく分かった」→「人に説明できる」 を目指そう! LPIC 101-4 ファイル・プロセス管理 2 / 15
01 / 08 ファイルのリンク とは? ① この用語 ② 簡単にいうと( ふわふわ大福店) リンク(Link) = 1 つのファイルに 別名(別の名前)を付けて アクセスできる仕組み。 看板は「ふわふわ大福店」。 地元の人は「駅前の大福屋さん」。 → 呼び方違っても 行き先は同じお店! ③ 詳しく(原理原則)— ハード vs シンボリックの比較 種類 参照の仕方 元ファイル削除時 FS をまたげる? ディレクトリに? ハードリンク inode を直接参照 アクセス可能 不可 不可 シンボリックリンク パス文字列で参照 リンク切れ 可能 可能 リンク = 1 つのファイルに「別名」をつける仕組み。ハード=直接参照/シンボリック=ショートカット! LPIC 101-4 ファイル・プロセス管理 3 / 15
02 / 08 ハードリンク — 合鍵方式 ① この用語 ② 簡単にいうと( 合鍵) 同じディスク上のデータ(inode)に 複数のファイル名を直接紐づける リンクの種類。 同じ部屋に対して合鍵を作るイメージ。 鍵Aをなくしても、鍵Bで入れる! → 元ファイルを消しても中身にアクセス OK ③ 仕組み(図解) file.txt # ハードリンク作成 inode 12345 データ "hogehoge" $ ln file.txt hardlink.txt # 中身を確認(同じ内容) $ cat hardlink.txt hardlink.txt # リンクの解除 2 つの名前 → 同じ inode → 同じデータ $ unlink hardlink.txt ハードリンク = 合鍵。同じ inode に直接アクセスするので 元ファイルを消しても OK! LPIC 101-4 ファイル・プロセス管理 4 / 15
03 / 08 シンボリックリンク — 看板方式 ① この用語 ② 簡単にいうと( 道案内の看板) 元ファイルのパス(ファイル名)を 経由してデータを参照するリンク。 Windows の「ショートカット」に近い。 「ふわふわ大福店はこちら →」の看板。 お店が閉店したら 看板だけ残って迷子! → 元ファイル削除 = リンク切れ ③ 仕組み(図解)— パスを経由! # シンボリックリンク作成 $ ln -s file.txt synlink.txt symlink.txt “file.txt” (パス文字列) file.txt (実体) inode データ ↑ -s を忘れずに! # 確認(→ で参照先表示) $ ls -la synlink.txt 元ファイル(file.txt)を消すと、途中で切れて到達できない synlink.txt -> file.txt シンボリックリンク = 看板。FS /ディレクトリ OK。元が消えるとリンク切れ。-s を忘れずに! LPIC 101-4 ファイル・プロセス管理 5 / 15
ハード vs シンボリック ― 使い分け ハードリンク イメージ: シンボリックリンク 合鍵(同じ部屋に直行) イメージ: 道案内の看板(経由地あり) 参照:inode を直接参照 参照:パス文字列で参照 元を消すと? アクセス可能 元を消すと? リンク切れ FS またげる? 不可 FS またげる? 可能 ディレクトリに? 不可 コマンド: $ ln file.txt link.txt ディレクトリに? 可能 コマンド: $ ln -s file.txt link.txt LPIC 頻出! -s の有無・元削除時の挙動・FS/ディレクトリの可否はセットで暗記 LPIC 101-4 ファイル・プロセス管理 6 / 15
04 / 08 プロセス — 実行中のプログラム ① この用語 ② 簡単にいうと( うさうさラーメン店) コンピュータ上で 現在「実行中」のプログラム のこと。 OS が PID という番号で管理する。 レシピ = プログラム(紙に書いてあるだけ) 調理中のラーメン = プロセス(実行中!) 注文番号 = PID(プロセスID) ③ プロセスツリー(親子関係) # プロセス一覧を表示 $ ps aux systemd (PID 1) sshd (PID 123) bash (PID 456) vim (PID 900) httpd (PID 789) # よく使うオプション a 他ユーザーのも表示 u ユーザー名付き f ツリー表示 x デーモンも含む # 親子関係を見る $ pstree 親 → 子 → 孫…とツリー構造になる プロセス = 実行中のプログラム。PID で管理され、ps aux や pstree で状態を確認! LPIC 101-4 ファイル・プロセス管理 7 / 15
05 / 08 kill コマンド — シグナルで制御 ① この用語 ② 簡単にいうと( 店長の指示) プロセスにシグナル(信号)を送って 制御するコマンド。「終了」以外も送れる (停止/再開など)。 TERM=「片付けて終わってね」(穏やか) KILL=「今すぐやめろ!」(強制) STOP=「ちょっと待って」/CONT=「再開」 ③ 主要シグナル一覧 — 試験頻出! シグナル名 ID SIGTERM 15 通常終了(穏やか) 省略時のデフォルト — SIGKILL 9 強制終了 プロセスは拒否できない — SIGSTOP 19 一時停止 拒否できない SIGCONT 18 再開 停止中のプロセス再開 — SIGINT 2 割り込み終了 キーボード割り込み Ctrl + C $ kill 1234 動作 備考 (= kill -15 TERM / デフォルト) $ kill -9 1234 LPIC 101-4 ファイル・プロセス管理 (= SIGKILL / 強制終了) $ kill -l キー操作 Ctrl + Z (TSTP) (シグナル一覧表示) 8 / 15
06 / 08 killall / pkill — 名前で指定するkill ① この用語 ② 簡単にいうと( 呼び方の違い) PID 番号の代わりに、 「プロセス名」を指定してシグナルを送る コマンド。 kill 「3 番テーブル(PID)、お会計!」 killall/pkill 「田中さん、お会計!」 → 名前で呼べるので PID を調べなくていい ③ 3 つのコマンドの使い分け kill killall pkill PID(番号)で指定 プロセス名で指定 プロセス名で指定 $ kill -9 1234 特定の 1 プロセスを 狙い撃ち $ killall -STOP bash 同名プロセスを まとめて操作 $ pkill -TERM httpd killall とほぼ同じ (柔軟な条件指定も可) kill=PID/killall・pkill=プロセス名。PID を調べる手間が省けて便利! LPIC 101-4 ファイル・プロセス管理 9 / 15
07 / 08 プロセス優先度 — nice/renice ① この用語 ② 簡単にいうと( 調理順) CPU の割り当て順を決める仕組み。 ナイス値 (-20〜+19) で優先度を調整。 値が小さいほど優先度が高い。 ナイス = 「譲る」という意味。 値が大きい = 「お先にどうぞ」= 低優先度 値が小さい = 「俺が先!」= 高優先度 ③ ナイス値スケール (-20 〜 +19) 優 先高 -20 〜 -11 -10 〜 -1 0 +1 〜 +10 +11 〜 +19 最優先 (root のみ) 高い優先度 (root のみ) デフォルト 低い優先度 最低優先度 nice — 新規に起動 renice — 実行中を変更 これから 実行するコマンドに優先度付け 実行中 のプロセスの優先度を変える $ nice -n 10 ./backup.sh $ renice -n -20 1252 低 ナイス値は小さいほど優先高!マイナス値は root のみ。nice=新規/renice=実行中 LPIC 101-4 ファイル・プロセス管理 10 / 15
システム管理コマンド — top/free/uptime ①② サーバー/PC の CPU・メモリ・負荷 をリアルタイムで監視。 08 / 08 ラーメン店の経営ダッシュボード! top free uptime すべてを見る メモリだけ見る 負荷だけ見る CPU・メモリ・プロセスを リアルタイムで監視。 タスクマネージャーに相当。 RAM の使用状況を表示。 -h で人が読みやすい 単位(MB/GB)に。 稼働時間+平均負荷。 load average は直近 1分/5分/15分 の値。 $ top (Ctrl + C で終了) $ free -h total used free Mem: 15G 4.2G 6.1G $ uptime 14:30 up 5 days load avg: 0.15, 0.10, 0.05 load average の目安: CPU コア数が基準。1 コアで 1.0 = 100% 使用。3 つの数値の推移で傾向が分かる LPIC 101-4 ファイル・プロセス管理 11 / 15
コマンド早見表 ① — リンク/プロセス確認 ファイルリンク系 プロセス確認系 コマンド 説明 ln file リンク名 ハードリンク作成 ln -s file リンク名 シンボリックリンク作成 unlink リンク名 リンクを解除 ls -la リンクの参照先を確認 ハード = 合鍵 /シンボ = 看板 -s 抜きでハード、-s 付きでシンボリック LPIC 101-4 ファイル・プロセス管理 コマンド 説明 ps 自分のプロセスを表示 ps aux 全プロセスを詳細表示 ps -l 優先度 PRI 付きで表示 pstree 親子関係をツリー表示 pgrep 名前 名前から PID を検索 ps オプション : a=他ユーザーも/u=ユーザー名 f=ツリー/x=デーモン 12 / 15
コマンド早見表 ② — 制御/優先度/管理 プロセス制御系 優先度系 コマンド 例 コマンド 例 kill -シグナル PID kill -9 1234 nice -n 値 コマンド nice -n 10 ./bk.sh killall -シグナル 名前 killall -STOP bash renice -n 値 PID renice -n -20 1252 pkill -シグナル 名前 pkill -TERM httpd ps -l PRI 列で優先度確認 システム管理系 コマンド 説明 例 top CPU・メモリ・プロセスをリアルタイム表示 $ top free メモリ使用状況 (-h で読みやすく) $ free -h uptime 稼働時間と load average を表示 $ uptime LPIC 101-4 ファイル・プロセス管理 13 / 15
LPIC 試験 ここが出る! 1 リンク 2 リンク 3 シグナル 4 シグナル ハード vs シンボリックの 違い ln と ln -s シグナル番号の暗記 kill / killall / pkill 元ファイル削除時の挙動・FS ま たぎ・ディレクトリ可否 -s ありがシンボリック、なしがハ ード 9 = KILL(強制) / 15 = TERM(通 常) は必須 PID で指定 vs プロセス名で指定 5 優先度 6 優先度 7 管理 8 キー nice と renice の違い ナイス値の範囲 top / free / uptime Ctrl+C と Ctrl+Z 新規起動 (nice) vs 実行中変更 (renice) -20 〜 +19/マイナスは root の み 何を見るためのコマンドか使い分 け 終了 (SIGINT) / 一時停止 (SIGTSTP) 「違い」「使い分け」「数字」が出題パターンの 3 大軸! LPIC 101-4 ファイル・プロセス管理 14 / 15
SUMMARY 今日、身についたこと ✓ リンクの 2 種類 と 元削除時の挙動の違い ✓ ps コマンドで プロセス(PID)を確認できる ✓ kill で シグナル(9/15)を送って制御できる ✓ nice/renice で 優先度を調整できる ✓ top/free/uptime で 負荷を見渡せる 面白きなき世を面白く 次は手を動かして、人に説明できるレベルへ! LPIC 101-4 ファイル・プロセス管理 研修資料