Bash 速習チュートリアル

Bash psコマンド

1. psコマンドの使用方法

psコマンドは、現在実行されているプロセスのスナップショットをレポートするために使用されます。
システムのプロセスを監視・管理するための非常に有用なツールです。

以下のすべての例では、デモンストレーション用の仮想的なプロセスリストを使用しています。

PID TTY          TIME CMD
1234 pts/0    00:00:01 bash
5678 pts/1    00:00:02 python
9101 pts/2    00:00:03 node

2. 出力内容の理解

psコマンドの出力は複数のカラム(列)で構成されており、それぞれがシステムプロセスの異なる側面を表しています。

  • PID: プロセスID。各プロセスに割り当てられる一意の識別子です。
  • TTY: プロセスに関連付けられているターミナルの種類。
  • TIME: プロセスが消費した合計CPU時間。
  • CMD: プロセスを起動したコマンド。

3. 基本的な使い方

現在のプロセスのスナップショットを表示するには、単純に ps と入力します。

例:基本的な使い方

ps
# 出力結果:
PID TTY          TIME CMD
1234 pts/0    00:00:01 bash
5678 pts/1    00:00:02 python
9101 pts/2    00:00:03 node

4. オプション

psコマンドには、動作をカスタマイズするための様々なオプションが用意されています。

  • -e - すべてのプロセスを表示する
  • -f - 詳細な情報を表示する(フルフォーマット)
  • -u - 特定ユーザーのプロセスを表示する
  • -a - ターミナルに関連付けられているすべてのプロセスを表示する
  • -x - ターミナルに関連付けられていないプロセスを表示する

4.1 全プロセスの表示

-eオプションを使用すると、システム上のすべてのプロセスを表示できます。

例:全プロセスの表示

ps -e
# 出力結果:
PID TTY          TIME CMD
1234 pts/0    00:00:01 bash
5678 pts/1    00:00:02 python
9101 pts/2    00:00:03 node

4.2 詳細情報の表示

-fオプションを使用すると、プロセスの詳細情報を表示できます。

例:詳細情報の表示

ps -f
# 出力結果:
UID        PID  PPID  C STIME TTY          TIME CMD
user      1234     1  0 08:00 pts/0    00:00:01 bash
user      5678  1234  0 08:01 pts/1    00:00:02 python
user      9101  5678  0 08:02 pts/2    00:00:03 node

4.3 特定ユーザーのプロセスを表示

-uオプションを使用すると、特定のユーザーに属するプロセスのみを表示できます。

例:特定ユーザーのプロセスを表示

ps -u user
# 出力結果:
PID TTY          TIME CMD
1234 pts/0    00:00:01 bash
5678 pts/1    00:00:02 python

4.4 ターミナルを持つプロセスを表示

-aオプションを使用すると、ターミナルに関連付けられているすべてのプロセスを表示します。

例:ターミナルを持つプロセスを表示

ps -a
# 出力結果:
PID TTY          TIME CMD
1234 pts/0    00:00:01 bash
5678 pts/1    00:00:02 python

4.5 ターミナルを持たないプロセスを表示

-xオプションを使用すると、バックグラウンドで動作しているものなど、ターミナルに関連付けられていないプロセスを表示できます。

例:ターミナルを持たないプロセスを表示

ps -x
# 出力結果:
PID TTY          TIME CMD
9101 ?        00:00:03 node

5. オプションの組み合わせ

オプションを組み合わせることで、より詳細な出力を得ることができます。例えば、ps -ef はすべてのプロセスを詳細な情報とともに表示します。

例:オプションの組み合わせ

ps -ef
# 出力結果:
UID        PID  PPID  C STIME TTY          TIME CMD
user      1234     1  0 08:00 pts/0    00:00:01 bash
user      5678  1234  0 08:01 pts/1    00:00:02 python
user      9101  5678  0 08:02 pts/2    00:00:03 node