Linux psコマンドでプロセスの一覧を表示する

目次

psコマンドとは

ps [オプション]

psコマンドは、プロセスの一覧を表示するコマンドです。
オプションを使用して必要な結果を取得します。

 

プロセスを表示する(ps)

$ ps
PID TTY TIME CMD
2627 pts/0 00:00:00 bash
15176 pts/0 00:00:00 ps

PIDは、プロセスIDです。
TTYは端末を表します。コマンドを入力した自分の端末はpts/0となっています。
TIMEは、実行時間。
CMD コマンド名。bashと入力したpsが表示されています。

 

他ユーザのプロセスを表示する(ps a)

$ ps a
PID TTY STAT TIME COMMAND
1629 tty1 Ssl+ 0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/
2627 pts/0 Ss 0:00 -bash
15493 pts/1 Ss 0:00 -bash
15555 pts/1 S+ 0:00 vim test3.txt
16010 pts/0 R+ 0:00 ps a

ps aは、6行目のように他の端末(pts/1)のユーザのプロセスを表示します。
7行目は、この端末で入力したpsコマンドです。
STATは、プロセスの状態です。Sはスリープ状態、Rは実行可能状態等を表します。

 

他ユーザのプロセスを表示する(ps -a)

$ ps -a
PID TTY TIME CMD
15555 pts/1 00:00:00 vim
16295 pts/0 00:00:00 ps

ps -aも他ユーザのプロセスを表示しますが、表示結果がps aとは異なっています。

 

プロセスの環境変数を表示する(ps e)

$ ps e
PID TTY STAT TIME COMMAND
2627 pts/0 Ss 0:00 -bash USER=test LOGNAME=test HOME=/home/test PATH=/usr/local/bin:/usr
15493 pts/1 Ss 0:00 -bash USER=test LOGNAME=test HOME=/home/test PATH=/usr/local/bin:/usr
15555 pts/1 S+ 0:00 vim test3.txt XDG_SESSION_ID=22 HOSTNAME=localhost TERM=xterm SHELL=/
16980 pts/0 R+ 0:00 ps e XDG_SESSION_ID=1 HOSTNAME=localhost TERM=xterm SHELL=/bin/bash H

ps eは、環境変数まで表示します。
ただし、上記の環境変数は途中で途切れてしまっています。
3行目は、PATH=/usr/local/bin:/usrまでしか表示されていません。

 

psコマンドの出力結果の表示領域を増やす(ps ew)

$ ps ew
PID TTY STAT TIME COMMAND
2627 pts/0 Ss 0:00 -bash USER=test LOGNAME=test HOME=/home/test PATH=/usr/local/bin:/usr/bin MAIL=/var/mail/test SHELL=/bin
15493 pts/1 Ss 0:00 -bash USER=test LOGNAME=test HOME=/home/test PATH=/usr/local/bin:/usr/bin MAIL=/var/mail/test SHELL=/bin
15555 pts/1 S+ 0:00 vim test3.txt XDG_SESSION_ID=22 HOSTNAME=localhost TERM=xterm SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=1
17717 pts/0 R+ 0:00 ps ew XDG_SESSION_ID=1 HOSTNAME=localhost TERM=xterm SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=192.168.15

ps eにwをつけると、表示する領域が長くなります。

 

CPUとメモリの使用率も表示する(ps u)

$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
test 2627 0.0 0.2 116604 2124 pts/0 Ss 17:35 0:00 -bash
test 15493 0.0 0.3 116712 3160 pts/1 Ss 20:22 0:00 -bash
test 15555 0.0 0.5 149472 5068 pts/1 S+ 20:22 0:00 vim test3.txt
test 18318 0.0 0.1 155448 1876 pts/0 R+ 20:59 0:00 ps u

ps uでCPU使用率とメモリ使用率が表示されます。

 

全てのプロセスを表示する(ps ax)

$ ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
2 ? S 0:00 [kthreadd]
4 ? S< 0:00 [kworker/0:0H]
以下省略

ps axにCPU使用率とメモリ使用率を表示するuを追加したps auxがよく使用されます。
プロセスを絞る場合はパイプ(|)とgrep を追加します。

例:ps aux | grep 2050

 

プロセスを階層構造で表示する(ps axf)

$ ps axf

fオプションは、プロセスを階層構造で表示します。

 

親プロセスも表示する(ps l(小文字のエル))

$ $ ps l
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
0 1000 2627 2624 20 0 116604 2124 do_wai Ss pts/0 0:00 -bash
0 1000 15493 15492 20 0 116712 3160 do_wai Ss pts/1 0:00 -bash
0 1000 15555 15493 20 0 149472 5068 poll_s S+ pts/1 0:00 vim test3.txt
0 1000 20918 2627 20 0 153324 1524 - R+ pts/0 0:00 ps l

l(小文字のエル)は、親プロセス(PPID)も表示します。

関連の記事

Linuxのよく使うコマンド(環境の確認/cpu/メモリ/プロセス)

△上に戻る