このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習51

新Linuxコマンド演習51 概要
「新Linuxコマンド演習51」では、Linuxシステムで実行されているプロセスを管理するための基本コマンドを学びます。
プロセスとは、実行中のプログラムの実体であり、すべてのプロセスには固有の識別番号 PID(Process ID) が割り当てられます。
また、プロセスには「親プロセス(Parent Process)」と「子プロセス(Child Process)」の階層構造が存在し、pstree コマンドでこの親子関係を可視化できます。
さらに、top コマンドを用いてリアルタイムにCPUやメモリの使用状況を監視することもできます。

プロセス関連コマンドの一覧
| コマンド | 主な目的 | 主なオプション | 説明 |
|---|---|---|---|
| ps | 実行中のプロセス情報を表示 | -l, -ef | プロセスIDや親プロセスIDを確認可能 |
| pstree | プロセスの親子関係をツリー形式で表示 | -p, -u | PID付きやユーザー付きでツリー表示 |
| top | プロセスの実行状態やリソース使用率をリアルタイム表示 | -p | 指定したプロセスのみ監視可能 |
表の説明
ps は現在動作中のプロセスを静的に一覧表示するコマンドです。
pstree はプロセスの階層構造(親子関係)を視覚的に表示し、システム内部の動作を理解するのに役立ちます。
top はリアルタイムモニタリングツールで、CPU・メモリの負荷状況を動的に確認できます。
演習問題+模範解答例
演習01:プロセスの詳細情報を表示する
問題
現在の端末で動作しているプロセスをロングフォーマットで表示し、詳細情報を確認してください。
模範解答例
[suzuki@AlmaLinux ~]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 6405 6373 0 80 0 - 56034 do_wai pts/0 00:00:00 bash
0 R 1000 7110 6405 0 80 0 - 56346 - pts/0 00:00:00 ps解説
ps -l はロングフォーマットでプロセス情報を表示します。
主な列の意味は以下の通りです。
| 項目 | 説明 |
|---|---|
| PID | プロセスID(各プロセスを識別する番号) |
| PPID | 親プロセスID |
| UID | 実行ユーザーのID |
| CMD | 実行しているコマンド名 |
| S | プロセスの状態(S:スリープ、R:実行中) |
これにより、現在のターミナルで動作中のプロセスを特定できます。
演習02:プロセスツリーを表示する
問題
システム上のすべてのプロセスを、親子関係を含めてツリー形式で表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ pstree
systemd─┬─ModemManager───3*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─VBoxDRMClient───5*[{VBoxDRMClient}]
├─VBoxService───8*[{VBoxService}]
├─accounts-daemon───3*[{accounts-daemon}]
├─alsactl
├─atd
└─(他のプロセス省略)解説
pstree はプロセスの親子関係をツリー形式で表示します。
systemd は最初に起動されるプロセス(PID 1)で、すべてのプロセスの親です。
このツリー表示で、どのプロセスがどの親プロセスから生成されたかを理解できます。
演習03:プロセスツリーにPIDを含めて表示する
問題
pstree コマンドでプロセスID(PID)を含めてツリー形式で表示してください。
模範解答例
[suzuki@AlmaLinux ~]$ pstree -p
systemd(1)─┬─ModemManager(800)─┬─{ModemManager}(826)
│ ├─{ModemManager}(834)
│ └─{ModemManager}(837)
├─NetworkManager(1112)─┬─{NetworkManager}(1113)
│ └─{NetworkManager}(1114)
├─VBoxDRMClient(1049)─┬─{VBoxDRMClient}(1060)
│ ├─{VBoxDRMClient}(1061)
│ ├─{VBoxDRMClient}(1065)
│ ├─{VBoxDRMClient}(1066)
│ └─{VBoxDRMClient}(6333)
└─(他のプロセス省略)解説
-p オプションを付けることで、各プロセスのPIDを表示できます。
これにより、プロセスの構造とPIDの対応関係を一目で確認できます。
演習04:リアルタイムでプロセスとリソースを監視する
問題
CPU・メモリの使用状況を含めて、実行中のプロセスをリアルタイムで監視してください。
模範解答例
[suzuki@AlmaLinux ~]$ top(実行結果例)
top - 14:46:32 up 14:59, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 219 total, 1 running, 217 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.2 us, 0.0 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
MiB Mem : 1707.2 total, 216.8 free, 997.4 used, 682.3 buff/cache
MiB Swap: 2048.0 total, 2047.7 free, 0.3 used. 709.7 avail Mem
4982 suzuki 20 0 4089340 322824 142100 S 1.0 18.5 0:22.76 gnome-shell
6373 suzuki 20 0 853704 62644 48320 S 0.7 3.6 0:02.86 gnome-terminal-
7145 suzuki 20 0 225908 4432 3588 R 0.3 0.3 0:00.01 top
1 root 20 0 174768 17228 11136 S 0.0 1.0 0:01.02 systemd
(省略)解説
top はシステム全体の負荷状況をリアルタイムで表示します。
主な指標の意味は以下の通りです。
| 項目 | 説明 |
|---|---|
| PID | プロセスID |
| %CPU | 各プロセスのCPU使用率 |
| %MEM | 各プロセスのメモリ使用率 |
| COMMAND | 実行しているコマンド名 |
| load average | CPU負荷の平均値(1分/5分/15分) |
q キーで終了できます。
演習05:特定のプロセスのみを監視する
問題
top コマンドを使って、PID 4982 のプロセスのみを監視してください。
模範解答例
[suzuki@AlmaLinux ~]$ top -p 4982(出力例)
top - 14:56:28 up 15:09, 2 users, load average: 0.08, 0.02, 0.01
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.7 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.7 hi, 0.0 si, 0.0 st
MiB Mem : 1707.2 total, 215.1 free, 998.8 used, 682.6 buff/cache
MiB Swap: 2048.0 total, 2047.7 free, 0.3 used. 708.4 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4982 suzuki 20 0 4159796 323184 142272 S 1.7 18.5 0:26.02 gnome-shell 解説
top -p <PID> で特定のプロセスのみを監視できます。
GUIアプリやバックグラウンドプロセスの動作確認などに便利です。
まとめ
「新Linuxコマンド演習51」では、以下の3つの重要なスキルを学びました。
- ps コマンドでプロセスの状態を確認する。
- pstree コマンドで親子関係を理解する。
- top コマンドでCPU・メモリ使用状況をリアルタイム監視する。
これらを組み合わせて活用することで、Linuxシステムの動作解析・トラブルシューティングを効率的に行うことができます。
