前書き
psコマンドは、コンピュータ上で現在実行中のプロセスのリストを作成します。
このガイドでは、psコマンドのより一般的な使い方を紹介し、psコマンドを最大限に活用できるようにします。
psコマンドは、一般的にgrepコマンドと多かれ少なかれコマンドと組み合わせて使用されます。
これらの追加のコマンドは、しばしばかなり長いことがあるpsからの出力をフィルタリングし、改ページするのに役立ちます。
psコマンドを使用する方法
psコマンドは、ターミナルウィンドウ内で実行しているユーザが実行中のプロセスを表示します。
psを起動するには、次のように入力します。
ps
出力には、次の情報を含むデータ行が表示されます。
- PID
- TTY
- 時間
- コマンド
PIDは、実行中のプロセスを識別するプロセスIDです。 TTYは端末タイプです。
psコマンド自体はかなり制限されています。 実行中のすべてのプロセスを見たいと思うかもしれません。
実行中のすべてのプロセスを表示するには、次のいずれかのコマンドを使用します。
ps -A
ps -e
セッションリーダー以外のすべてのプロセスを表示するには、次のコマンドを実行します。
ps -d
だからセッションリーダーは何ですか? あるプロセスが他のプロセスを開始すると、それは他のすべてのプロセスのセッションリーダーになります。 したがって、プロセスAがプロセスBとプロセスCを開始したとします。プロセスBはプロセスDを開始し、プロセスCはプロセスEを開始します。セッションリーダーを除くすべてのプロセスをリストすると、A、B、C、D、Eが表示されます。
-Nスイッチを使用して選択したものを無効にすることができます。 たとえば、セッションリーダーのみを表示する場合は、次のコマンドを実行します。
ps-d -N
明らかに-Nは、-eまたは-Aスイッチと一緒に使用すると、全く何も表示されないので、あまり賢明ではありません。
この端末に関連付けられているプロセスだけを表示するには、次のコマンドを実行します。
PST
次のコマンドを使用して、実行中のすべてのプロセスを表示する場合は、
ps r
psコマンドを使用した特定のプロセスの選択
psコマンドを使用して特定のプロセスを返すことができ、選択基準を変更するさまざまな方法があります。
たとえば、プロセスIDを知っている場合は、次のコマンドを使用します。
ps -p
次のように複数のプロセスIDを指定することにより、複数のプロセスを選択できます。
ps -p "1234 9778"
カンマ区切りのリストを使用して指定することもできます。
ps -p 1234,9778
プロセスIDがわからず、コマンドで簡単に検索できる可能性があります。 これを行うには、次のコマンドを使用します。
ps -c
たとえば、Chromeが動作しているかどうかを確認するには、次のコマンドを使用します。
ps -Cクロム
開いているタブごとに1つのプロセスが返されることに驚くかもしれません。
結果をフィルタリングする他の方法は、グループ別です。 グループ名で検索するには、次の構文を使用します。
ps -G
ps --Group <グループ名>
たとえば、accountsグループによって実行されているすべてのプロセスを調べるには、次のように入力します。
ps -G "accounts"
ps - グループ "accounts"
次のように、小文字のgを使用してグループ名の代わりにグループIDで検索することもできます。
ps -g
ps --group
セッションIDのリストで検索する場合は、次のコマンドを使用します。
ps -s <セッションID>
ターミナルタイプで検索するには、以下を使用します。
ps -t <セッションID>
特定のユーザーが実行するすべてのプロセスを検索するには、次のコマンドを試してみてください。
ps U
たとえば、すべてのプロセスがgaryによって実行されたことを確認するには、次のコマンドを実行します。
ps U "ゲーリー"
これは、資格情報を使用してコマンドを実行するユーザーを示しています。 たとえば、ゲーリーとしてログインして上記のコマンドを実行すると、私が実行したすべてのコマンドが表示されます。
私がTomとしてログインし、 sudoを使って私のようにコマンドを実行すると、上記のコマンドはTomのコマンドがtomではなくgaryによって実行されていると表示します。
実際にgaryによって実行されるプロセスだけにリストを制限するには、次のコマンドを使用します。
ps -U "gary"
psコマンド出力のフォーマット
デフォルトでは、psコマンドを使用するときに同じ4列が得られます。
- PID
- TTY
- 時間
- コマンド
次のコマンドを実行すると、完全なリストを取得できます。
ps -ef
-eはすべてのプロセスを表示し、fまたは-fは完全な詳細を表示します。
返される列は次のとおりです。
- ユーザーID
- PID
- PPID
- C
- STime
- TTY
- 時間
- コマンド
ユーザーIDは、コマンドを実行したユーザーです。 PIDはコマンドのコマンドIDです。 PPIDは、コマンドを開始した親プロセスです。
C列には、プロセスに含まれる子プロセスの数が表示されます。 STimeはプロセスの開始時刻です。 TTYは端末であり、時間は実行に要した時間であり、commandは実行されたコマンドです。
次のコマンドを使用すると、さらに多くの列を取得できます。
ps -eF
これにより、次の列が返されます。
- UID
- PID
- PPID
- C
- SZ
- RSS
- PSR
- STime
- TTY
- 時間
- コマンド
余分な列はSZ、RSS、PSRです。 SZはプロセスのサイズ、RSSは実際のメモリサイズ、PSRはコマンドが割り当てられているプロセッサです。
次のスイッチを使用して、ユーザー定義の形式を指定できます。
ps -e --format
使用可能なフォーマットは次のとおりです。
- %cpu - cpu利用率
- %mem - メモリ使用率のパーセンテージ
- args - すべての引数を持つコマンド
- c - プロセッサ使用率
- cmd - コマンド
- comm - コマンド名のみ
- cp - CPU使用率
- cputime - CPU時間
- egid - 有効なグループid
- egroup - 効果的なグループ
- etime - 経過時間
- euid - 有効なユーザーID
- euser - 有効なユーザー
- gid - グループID
- group - グループ名
- pgid - プロセスグループID
- pgrp - プロセスグループ
- ppid - 親プロセスID
- start - プロセスが開始された時間
- sz - 物理ページのサイズ
- thcount - プロセスが所有するスレッド
- 時間 - 累積時間
- uid - ユーザーID
- uname - ユーザー名
さらに多くのオプションがありますが、これが最も一般的に使用されます。
フォーマットを使用するには、次のように入力します。
ps -e --format = "uid uname cmd time"
あなたは、あなたが望むようにアイテムを混ぜ合わせて合わせることができます。
出力の並べ替え
出力をソートするには、次の表記法を使用します。
ps -ef --sort
並べ替えオプションの選択は次のとおりです。
- cmd - 実行可能ファイル名
- pcpu - CPU使用率
- flags - フラグ
- pgrp - プロセスグループID
- cutime - 累積ユーザー時間
- cstime - 累積システム時間
- utime - ユーザー時間
- pid - プロセスID
- ppid - 親プロセスID
- サイズ - サイズ
- uid - ユーザーID
- ユーザー - ユーザー名
もう一度利用可能なオプションがありますが、最も一般的なオプションです。
sortコマンドの例は次のとおりです。
ps -ef --sortユーザ、pid
psを使用するgrepでは、lessコマンドとmoreコマンド
冒頭で述べたように、psをgrep、lessコマンド以上で使用するのが一般的です。
ますます少なくなるコマンドは、一度に1ページずつ結果を調べるのに役立ちます。 これらのコマンドを使用するにはgrepの出力を次のように配管します。
ps -ef | もっと
ps -ef | もっと少なく
grepコマンドは、psコマンドの結果をフィルタリングするのに役立ちます。
例えば:
ps -ef | grep chrome
概要
psコマンドは、Linux内のプロセスを一覧表示するためによく使用されます。 トップコマンドを使用して、実行中のプロセスを別の方法で表示することもできます。
この記事では、一般的なスイッチについて説明しましたが、利用可能な形式と並べ替えのオプションが増えています。
詳細は、psコマンドのLinuxのマニュアルページを参照してください。