psコマンドについて
psコマンドは、
Unix系オペレーティングシステム(OS)において、現在実行中の
プロセスを表示するための
タスクマネージャーです。このコマンドは、システム上でどのようなプログラムが動いているのか、その詳細な情報を確認する際に非常に役立ちます。
基本的な使い方
psコマンドには多くのオプションが用意されており、それらを組み合わせることで、様々な情報を表示させることができます。
UNIXおよびPOSIX標準に準拠したシステム
これらのシステムでは、`ps -ef` というオプションがよく使われます。ここで、`-e` は「すべての
プロセス」を選択し、`-f` は「完全な出力フォーマット」を指定します。このオプションの組み合わせにより、システム上の全ての
プロセスに関する詳細な情報を一覧表示できます。
また、`-l` オプションは「長い出力フォーマット」を指定し、より詳細な情報を表示する際に利用されます。
BSD系システム
BSDから派生したシステムでは、POSIXやUNIX標準のオプションが利用できない場合があります。これは、オプションの衝突が歴史的に存在したためです。例えば、`-e` オプションは
環境変数を表示する機能として使われています。そのため、BSD系のシステムでは `ps aux` という非標準のオプションがよく用いられます。
この `aux` オプションでは、`a` は他のユーザーの
端末を含む、全ての
端末上の
プロセスをリストします。`u` は個々の
プロセスの制御ユーザーなどの情報を追加し、`x` は制御
端末を持たない全ての
プロセスをリストします。`aux` の前に `-` をつけないことが推奨されます。
Linuxとその他のシステム
Linuxの`ps`コマンドは、POSIX標準のオプションとBSD系のオプションの両方をサポートしています。
Solarisでは、`/usr/bin/ps` が `-ef` をサポートし、`/usr/ucb/ps` が `aux` をサポートしています。
表示例
以下は `ps` コマンドの実行例です。
bash
tux ~ # ps
PID TTY TIME CMD
7431 pts/0 00:00:00 su
7434 pts/0 00:00:00 bash
18585 pts/0 00:00:00 ps
この例では、各
プロセスの
プロセスID(PID)、接続している
端末(TTY)、CPU使用時間(TIME)、実行されたコマンド(CMD)が表示されています。
応用的な使い方
`ps`コマンドは、`grep`コマンドと組み合わせて、特定の
プロセスに関する情報を抽出するのに便利です。
bash
tux ~ # ps -A | grep firefox-bin
11778 ? 02:40:08 firefox-bin
11779 ? 00:00:00 firefox-bin
この例では、`ps -A` で全ての
プロセスを表示し、それを `grep firefox-bin` でフィルタリングしています。これにより、`firefox-bin` という名前を含む
プロセスだけが表示されます。
その他のツール
`top` コマンドも、実行中の
プロセスを表示するためのユーティリティですが、こちらはリアルタイムで
プロセスの状態を監視することができます。
関連コマンド
- - `top`: リアルタイムでプロセスを表示
- - `pstree`: プロセスをツリー形式で表示
- - `pgrep`: プロセスを名前で検索
参考資料
psコマンドは、システム管理や開発において、
プロセスの状態を把握するために不可欠なツールです。オプションを理解し、効果的に活用することで、システムの安定性とパフォーマンスを向上させることができます。