連載
» 2016年03月28日 05時00分 UPDATE

Linux基本コマンドTips(6):【 ps 】コマンド――実行中のプロセスを一覧表示する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、「ps」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、現在実行中のプロセスを一覧表示するための「ps」コマンドです。

psコマンドとは?

 「ps」は、OS内部で現在実行されているプロセス一覧を表示するコマンドです。プロセスのID(PID)やCPU使用時間、コマンド名、端末番号、ユーザー名などを確認することができます。


psコマンドの書式

ps [オプション]

※[ ]は省略可能な引数を示しています



psコマンドの主なオプション

 psコマンドのオプションは「p」のような1文字のスタイルと、「-p」のような“「-」記号+アルファベット1文字”のスタイル、「--pid」のような長いスタイルの3種類があります。なお、「p」はBSDオプション、「-p」はUNIXオプション、「--pid」はGNUロングオプションと呼ばれています。

オプション 意味
-A, -e 全てのプロセスを表示する
a 端末を持つ全てのプロセスを表示する
x 端末を持たない全てのプロセスを表示する
r 実行中のプロセスだけを表示する
-C コマンドリスト 実行ファイル名を指定して表示する
-u ユーザーリスト ユーザーを指定して表示する(※)
-g グループリスト グループを指定して表示する(※)
-p PIDリスト プロセスIDを指定して表示する(p, --pidと同じ)
c コマンド名を表示する
e コマンド名の後に環境変数などを表示する
u ユーザー指向のフォーマット(加工の容易さよりも読みやすさを優先したフォーマット、実行例1を参照)で表示する
h, --no-headers ヘッダ行を表示しない
-l 長いフォーマットで表示する
f, -H, --forest 階層表示する
o, -o, --format 出力形式を指定する(実行例3を参照)
w, -w 出力時の幅を広げる
--cols 文字数, --width 文字数 出力時の幅を指定する
--rows 行数, --lines 行数 出力時の行数を指定する
k, --sort 並べ替えて表示する(実行例4を参照)
psコマンドの主なオプション

※ユーザーとグループに関しては「実ユーザー/実グループ」と「実効ユーザー/実効グループ」の2種類があり、指定方法が異なります。「実(real)ユーザー」はプロセスを起動した実際のユーザーで、「実効(effective)ユーザー」は動作時の権限で、通常両者は一致しています。実ユーザーを指定したい場合は「-U,--User」オプション、実効ユーザーを指定したい場合は「U,-u,--user」オプション、実グループを指定したい場合は「-G,--Group」オプション、実効グループを指定したい場合は「-g,--group」オプションを使用します。



 複数のオプションを一緒に指定したい場合、例えば「a」と「ax」ならばまとめて「ps ax」、「-a」と「-U」ならばまとめて「ps -aU」と指定しますが、「-a」と「e」ならば「ps -a e」のように分けて指定します。「-e」「e」「e」「r」「--cols 100」を指定する場合は、「ps -e ax --cols 100」のようにまとめます。



自分のプロセスを表示する

 psコマンドをオプションなしで実行すると、自分が現在起動しているプロセスを表示できます(画面1)。

コマンド実行例

ps


画面1 画面1 「ps」コマンドを単独で実行すると、自分が現在起動しているプロセスが表示される

 プロセスにはそれぞれ固有の「ID(PID:プロセスID)」が付与されています。現在実行中のプロセスはbashとpsで、psは表示が終わるとともに終了します。

主な表示形式 プロセスの状態
R 実行中/実行可能な状態
S スリープ状態
D スリープ状態(割り込み不可)(※ディスク待ちが多い)
T 停止またはトレース中(シェルで[Ctrl]+[Z]キーで停止している時など)
Z ゾンビプロセス(終了しているのにメモリに残ってしまっているプロセス)
プロセスの状態(※2文字目以降にはプロセスの優先度などが表示される)


他のユーザーが実行しているプロセスも含めて表示する

 “他のユーザー”といっても“ログインしている人”とは限りません。システムが起動しているプロセスも含まれます。

 「a」オプションで端末を使っている全てのプロセス、「x」オプションで端末を使っていない全てのプロセスが表示されます。ここで「u」オプションを組み合わせると、プロセスを実行しているユーザー名も表示されます。

コマンド実行例

ps axu


 なお、「ps axu」を実行すると大量の情報が表示されるので、「more」コマンドや「head」コマンド、「tail」コマンドと組み合わせて表示するとよいでしょう(画面2)。

画面2 画面2 全てのプロセス(aオプションとxオプション)を、読みやすい形式(uオプション)で表示して、moreコマンドで1画面ずつ表示している


出力する項目を選んで表示する

 「o」オプションを使うと、出力する項目を選ぶことができます。例えば、PID(プロセスID)とユーザー名とコマンドを引数付きで表示したい場合は、出力形式として「pid,user,group,args」と指定します(画面3)。なお、出力形式は「"%p %U %G %a"」のような指定方法もあります。

コマンド実行例

ps o 出力形式

ps o pid,user,group,args

ps axo pid,user,group,args


画面3 画面3 「a」オプションと「x」オプションで全てのプロセスを表示し、「o」オプションで「プロセスID、ユーザー名、グループ名、引数付きのコマンド」を表示。さらに、moreコマンドで1画面ずつ表示している
形式 ヘッダ 意味
pid PID プロセスのID番号
ppid PPID 親プロセスのID番号
s S プロセスの状態表示(意味は「プロセスの状態」の表を参照)
stat STAT 複数文字によるプロセスの状態表示
pcpu %CPU CPUの使用率
pmem %MEM メモリの使用量
time TIME CPUの累積使用時間
start STARTED コマンドが起動した時刻
nice NI nice値(プロセスの優先順位)
args COMMAND コマンド名(引数付き)
comm COMMAND コマンド名(実行ファイル名のみ)
tt TT 制御端末(tty)
uid UID 実効ユーザーのID番号(※)
user USER 実効ユーザーの名前(※)
gid GID 実効グループのID番号(※)
group GROUP 実効グループの名前(※)
主な表示形式

※uid,user,gid,groupは全ての実効ユーザーと実効グループ。明示したい場合は「euid」のように“e”を付けて指定する。実ユーザーと実グループを表示したい場合は「ruid」のように“r”を付けて指定する。





実行結果を並べ替えて表示する

 「k」または「--sort」オプションで、結果を並べ替えて表示することができます。並べ替えに使用する項目は、表示形式と同じものが使用できます(※)。例えば、使用メモリの多い順で並べ替える場合は、「k pmem」のように指定します。逆順の場合は「-」を付け、「k -pmem」のように指定します。

※一部使用できないものがあります。詳細は「man ps」で確認できます。



 「o」オプションと組み合わせて使う場合は、「o 表示項目 k 並べ替え項目」のように分けて指定します(画面4)。

コマンド実行例

ps k 並べ替えに使用する項目

ps axk pmem

ps axo pid,user,group,args k pmem

ps axo pid,user,group,args k -pmem


画面4 画面4 コマンド名で並べ替えを指定し、moreコマンドで1画面ずつ表示

筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。