本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、「ps」コマンドです。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、現在実行中のプロセスを一覧表示するための「ps」コマンドです。
「ps」は、OS内部で現在実行されているプロセス一覧を表示するコマンドです。プロセスのID(PID)やCPU使用時間、コマンド名、端末番号、ユーザー名などを確認することができます。
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
プロセスにはそれぞれ固有の「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)。
「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
形式 | ヘッダ | 意味 |
---|---|---|
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
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.