
新Linux入門|psコマンド徹底解説:プロセスの確認・監視・管理をマスターする
Linuxでシステムを運用していると、
「今どんなプログラムが動いているのか?」
「CPUやメモリを食っているのはどれだ?」
といったことを調べたい場面がよくあります。
そんなときに欠かせないのが psコマンド(Process Status) です。
このコマンドを使えば、現在実行中のプロセス情報を一覧表示して確認・監視・管理 することができます。
ここでは、psコマンドの基本から便利なオプションの使い方までをわかりやすく解説します。

💡 psコマンドとは?
ps(process status) コマンドは、Linuxシステム上で現在実行中のプロセス情報を表示するためのコマンドです。
「プロセス」とは、実行中のプログラムやサービスのことで、psコマンドはそれらの状態を監視するための基本ツールです。
| 項目 | 説明 |
|---|---|
| コマンド名 | ps |
| 読み方 | ピーエス |
| 由来 | “process status” の略 |
| 役割 | 実行中のプロセスの情報を表示する |
| 主な用途 | システム監視、トラブルシューティング、リソース調査 |
⚙️ コマンド書式
psコマンドの基本的な構文は次の通りです。
ps [オプション]オプションを付けることで、表示内容や対象プロセスを細かく制御することができます。
🧩 主なオプション
| オプション | 説明 |
|---|---|
| -e | システム上で実行中の全てのプロセスを表示 |
| -f | 詳細(Full)フォーマットで表示 |
| -l | ロングフォーマットでプロセスの詳細を表示 |
| -a | すべての端末(他のユーザーを含む)で実行中のプロセスを表示 |
| -u | 各プロセスのユーザー情報、CPU使用率などを表示 |
| -p PID | 特定のプロセスID(PID)を指定して表示 |
| aux | BSD形式で全プロセスの詳細を表示(よく使われる形式) |
💬 ポイント
- ps -ef は「全プロセスを詳細表示」する最も一般的な形式です。
- ps aux はBSD形式の表示方式で、top コマンドのような見やすい出力になります。
🖥️ psコマンドの使用例と出力解説
① 基本的な使用例(現在のターミナルのプロセスを表示)
[suzuki@AlmaLinux ~]$ ps
PID TTY TIME CMD
3222 pts/0 00:00:00 bash
3686 pts/0 00:00:00 ps| 列名 | 説明 |
|---|---|
| PID | プロセスID(各プロセスに割り当てられた一意の番号) |
| TTY | プロセスが実行されている端末 |
| TIME | 累計CPU時間 |
| CMD | 実行されたコマンド名 |
💡 説明
bash シェル上で ps コマンドを実行しているため、2つのプロセス(bashとps)が表示されています。
② システム全体のプロセスを表示(-eオプション)
[suzuki@AlmaLinux ~]$ ps -e
PID TTY TIME CMD
1 ? 00:00:01 systemd
2 ? 00:00:00 kthreadd
775 ? 00:00:00 sshd
3222 pts/0 00:00:00 bash
3708 pts/0 00:00:00 sleep
3709 pts/0 00:00:00 ps💬 システム上のすべてのプロセスが一覧で表示されます。
? は端末(TTY)を持たないシステムプロセスを意味します。
③ 詳細表示(-efオプション)
[suzuki@AlmaLinux ~]$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 1月21 ? 00:00:01 /usr/lib/systemd/systemd
root 2 0 0 1月21 ? 00:00:00 [kthreadd]
root 3708 775 0 00:42 ? 00:00:00 sleep 60
suzuki 3709 3222 0 00:42 pts/0 00:00:00 ps -ef| 列名 | 意味 |
|---|---|
| UID | プロセスの所有ユーザー |
| PID | プロセスID |
| PPID | 親プロセスID |
| C | CPU使用率 |
| STIME | プロセスの開始時刻 |
| TTY | 端末 |
| TIME | 累計CPU使用時間 |
| CMD | 実行コマンド名 |
💡 PPID を見ることで、どのプロセスがどの親プロセスから起動されたのかを把握できます。
④ 特定のユーザーのプロセス表示(-u)
[suzuki@AlmaLinux ~]$ ps -u suzuki
PID TTY TIME CMD
3222 pts/0 00:00:00 bash
3709 pts/0 00:00:00 psこのように、自分が実行しているプロセスのみを確認できます。
⑤ 特定のプロセスIDの情報を表示(-p)
[suzuki@AlmaLinux ~]$ ps -p 3222
PID TTY TIME CMD
3222 pts/0 00:00:00 bashPIDを指定して、対象プロセスの情報だけを取得できます。
⑥ ロングフォーマットで詳細表示(-l)
[suzuki@AlmaLinux ~]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 3222 3212 0 80 0 - 29284 do_wai pts/0 00:00:00 bash
0 R 1000 3778 3222 0 80 0 - 38331 - pts/0 00:00:00 ps| 列名 | 説明 |
|---|---|
| F | プロセスのフラグ情報(特性を示す) |
| S | プロセスの状態(R=実行中、S=スリープなど) |
| PRI | 優先度 |
| NI | nice値(スケジューリング優先度) |
| ADDR | メモリアドレス |
| SZ | 仮想メモリサイズ |
| WCHAN | プロセスが待機中のカーネル関数名 |
💡 ps -l はプロセスの動作状態を詳しく把握したいときに有効です。
🔍 BSD形式の出力(ps aux)
[suzuki@AlmaLinux ~]$ ps aux | head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 169284 8796 ? Ss 1月21 0:01 /usr/lib/systemd/systemd
root 2 0.0 0.0 0 0 ? S 1月21 0:00 [kthreadd]
suzuki 3222 0.0 0.1 29000 4000 pts/0 Ss 00:42 0:00 bash
suzuki 3709 0.0 0.0 20000 1000 pts/0 R+ 00:43 0:00 ps auxこの形式は top コマンドのように、CPU・メモリ使用率が一目でわかるのでよく使われます。
✅ まとめ
psコマンドは、Linuxのプロセス管理の基本中の基本 です。
システム管理やトラブルシューティングの現場では欠かせないツールであり、組み合わせ次第で多彩な情報を取得できます。
| 操作内容 | コマンド | 説明 |
|---|---|---|
| 現在の端末のプロセス | ps | 最も基本的な形式 |
| 全プロセスを表示 | ps -e | システム全体を確認 |
| 詳細表示 | ps -ef | UID・PIDなどを含む |
| 特定ユーザーのみ | ps -u suzuki | 自分のプロセスを確認 |
| 特定PIDを指定 | ps -p 3222 | 一つのプロセスを確認 |
| ロング形式 | ps -l | 優先度や状態を含めて詳細表示 |
| BSD形式 | ps aux | CPU・メモリ使用率を確認 |
💬 一言アドバイス
ps -ef と ps aux は覚えておくと、どんなLinux環境でもすぐに状況把握できます。
慣れてきたら grep と組み合わせて「特定プロセスを絞り込み」できるようになるとさらに便利です。
