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

コマンド練習21
「コマンド練習21」では、7章の前半で登場したコマンドについて 学びます。ここで扱うのは ps、pstree、top です。これらのコマンドは、システム上で実行中のプロセスを監視・管理するために利用されます。システム管理者がプロセスの動作状況を把握し、必要に応じて調査やチューニングを行う際に非常に重要です。
psは現在のプロセス情報を表示するコマンドpstreeはプロセスの親子関係をツリー形式で表示するコマンドtopは動的にシステムのプロセスとリソース使用状況を監視するコマンド
以下で各コマンドを詳しく解説し、実践的な練習問題と模範解答例を提示します。

コマンド解説
1.ps コマンド
現在のプロセス情報を表示するコマンド。PID(プロセスID)、TTY、CPU使用時間、コマンド名などを確認できます。
書式
ps [オプション]主なオプション
| オプション | 説明 |
|---|---|
| -e | すべてのプロセスを表示 |
| -f | フルフォーマットで詳細表示 |
| -u [ユーザー名] | 指定したユーザーのプロセスを表示 |
| aux | BSD形式で全プロセスを表示 |
2.pstree コマンド
実行中のプロセスを親子関係でツリー表示します。システムのプロセス構造を視覚的に理解できます。
書式
pstree [オプション]主なオプション
| オプション | 説明 |
|---|---|
| -p | PIDを表示 |
| -u | 実行ユーザーを表示 |
| -a | コマンドライン引数を表示 |
3.top コマンド
システム上のプロセスをリアルタイムで監視するコマンド。CPU使用率やメモリ使用量、ロードアベレージを動的に確認可能です。
書式
top主な操作キー
| キー | 説明 |
|---|---|
| q | topを終了 |
| k | プロセスをkill |
| u | 特定ユーザーのプロセスを表示 |
| h | ヘルプを表示 |
練習問題 + 模範解答例
問題1
現在システムで稼働しているすべてのプロセスを確認してください。
模範解答例
[user@rocky9 ~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:45 ? 00:00:01 /usr/lib/systemd/systemd rh
root 2 0 0 08:45 ? 00:00:00 [kthreadd]
root 3 2 0 08:45 ? 00:00:00 [pool_workqueue_]
root 4 2 0 08:45 ? 00:00:00 [kworker/R-rcu_g]
(省略)問題2
ユーザー user が実行しているプロセスだけを表示してください。
模範解答例
[user@rocky9 ~]$ ps -u user
PID TTY TIME CMD
2100 ? 00:00:00 systemd
2102 ? 00:00:00 (sd-pam)
2118 ? 00:00:00 gnome-keyring-d
2123 tty2 00:00:00 gdm-wayland-ses
(省略)問題3
実行中のプロセスをツリー形式で表示し、PID も一緒に確認してください。
模範解答例
[user@rocky9 ~]$ pstree -p
systemd(1)─┬─ModemManager(802)─┬─{ModemManager}(817)
│ ├─{ModemManager}(828)
│ └─{ModemManager}(830)
├─NetworkManager(1073)─┬─{NetworkManager}(1077)
│ └─{NetworkManager}(1078)
├─VBoxDRMClient(1055)─┬─{VBoxDRMClient}(1069)
(省略)問題4
実行中のプロセスをツリー形式で表示し、ユーザー情報も確認してください。
模範解答例
[user@rocky9 ~]$ pstree -u
systemd─┬─ModemManager───3*[{ModemManager}]
├─NetworkManager───2*[{NetworkManager}]
├─VBoxDRMClient───5*[{VBoxDRMClient}]
├─VBoxService───8*[{VBoxService}]
├─accounts-daemon───3*[{accounts-daemon}]
├─alsactl
├─atd
├─auditd─┬─sedispatch
│ └─2*[{auditd}]
├─avahi-daemon(avahi)───avahi-daemon
├─chronyd(chrony)
├─colord(colord)───3*[{colord}]
(省略)問題5
システム全体の CPU 使用率とメモリ使用率をリアルタイムで確認してください。
模範解答例
[user@rocky9 ~]$ top
top - 15:44:39 up 6:59, 2 users, load average: 0.02, 0.06, 0.02
Tasks: 217 total, 1 running, 216 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.8 sy, 0.0 ni, 97.8 id, 0.0 wa, 1.0 hi, 0.2 si, 0.0 st
MiB Mem : 1771.5 total, 161.8 free, 1242.8 used, 533.8 buff/cache
MiB Swap: 2048.0 total, 2044.7 free, 3.3 used. 528.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2187 user 20 0 4199368 390996 136748 S 2.7 21.6 0:37.83 gnome-+
2943 user 20 0 851932 67404 47244 S 0.7 3.7 0:03.78 gnome-+
3454 root 20 0 0 0 0 I 0.3 0.0 0:00.28 kworke+
(省略)問題6
top を使い、ユーザー user が実行しているプロセスだけを表示してください。
模範解答例
top
# 実行後に "u" を押して、tanaka と入力
top - 15:50:02 up 7:04, 2 users, load average: 0.00, 0.01, 0.00
Tasks: 217 total, 1 running, 216 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 1.2 sy, 0.0 ni, 96.4 id, 0.0 wa, 1.5 hi, 0.2 si, 0.0 st
MiB Mem : 1771.5 total, 161.8 free, 1242.8 used, 533.8 buff/cache
MiB Swap: 2048.0 total, 2044.7 free, 3.3 used. 528.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2187 user 20 0 4199368 390984 136736 S 5.7 21.6 0:40.30 gnome-+
2943 user 20 0 851932 67404 47244 S 1.0 3.7 0:04.15 gnome-+
3620 user 20 0 225872 4352 3584 R 0.3 0.2 0:00.31 top
(省略)問題7
シェルスクリプトを新規作成し、バックグラウンドで無限ループするプロセスを起動し、その後 ps で確認してください。
模範解答例
[user@rocky9 ~]$ echo -e '#!/bin/bash\nwhile true; do echo "running"; sleep 5; done' > loop.sh
[user@rocky9 ~]$ chmod +x loop.sh
[user@rocky9 ~]$ ./loop.sh &
[1] 3753
running
[user@rocky9 ~]$ running
running
[user@rocky9 ~]$ ps -ef | grep loop.sh
user 3753 3682 0 15:53 pts/0 00:00:00 /bin/bash ./loop.sh
user 3767 3682 0 15:53 pts/0 00:00:00 grep --color=auto loop.sh
[user@rocky9 ~]$ running
running
running
running
(続く)まとめ
「コマンド練習21」では、7章の前半で登場したコマンドについて 学びました。
psで現在のプロセス情報を表示pstreeでプロセスの親子関係を可視化topでシステムリソースのリアルタイム監視
これらを活用することで、Linux のプロセス管理やシステム監視を効率的に行えるようになります。
