ps aux | grep hogehoge
で、実行中のプロセスのうち、hogehogeを含むものが表示される。
ps aux | grep motion
とやるとこうなる。
ずっと思っていたのだが、こうやるとリストの意味を示すヘッダが表示されずに分かりにくい。
ps aux | head -1 && ps aux | grep hogehoge
ってやればいい。
そもそもこのコマンドたちは何をやっているのか調べてみた。
(1)ps aux
ps は「実行中のプロセスを表示する」コマンドだ。
auxは以下の意味を持つオプションだ。
a:自分以外のユーザーのプロセスも表示する
u:ユーザー名と開始時刻を表示する
x:制御端末のないプロセスの情報も表示する
実行するとこうなる。
(2)grep hogehoge
grep は「文字列を検索する」コマンドだ。
文字列「hogehoge」を含む行のみ表示する。
(3)|(パイプ)
2つのコマンドの出力を組み合わせる。
パイプとなってつなぐイメージだ。
結局、(1)(3)(2)やることで、psの出力のうちgrepにかなったものだけが表示されることになる。
そこで、上のように知りたいプロセスの状況だけが表示できるって寸法だ。
(4)head -n
headは先頭のn行を抜き出すコマンドだ。
(5)&&
ANDだ。
つまり、ps auxの1行目だけを出力し、ps auxのうちで「hogehoge」を含むものだけの出力と合わせて表示する。
なお、grep自身もプロセスなので表示されてしまうから、これを嫌うなら以下のようにする。
ps aux | grep hogehoge | grep -v grep
-v はそれ以下の文字を含むものを除外するオプションだ。
以上をすべて合わせると下のようになる。
ps aux | head -1 && ps aux | grep hogehoge | grep -v grep
長いけど、どこかに書いておいてコピペするだけなので別にかまわない、重宝しそうだ。
ただ、起動した時刻だけ知りたい場合はこんな感じだ。
ps -eo pid,lstart,args | grep hogehoge
後になったが、肝心のヘッダーの意味は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
USER : Username of the process's owner PID : Process ID number %CPU : How much of the CPU the process is using %MEM : How much memory the process is using VSZ : Virtual memory usage RSS : Real memory usage TTY : Terminal associated with the process STAT : Process status code START : Time when the process started TIME : Total CPU usage COMMAND : Name of the process ADDR : Memory address of the process C or CP : CPU usage and scheduling information F : Flags NI : nice value PPID : ID number of the process's parent process PRI : Priority of the process WCHAN : Memory address of the event the process is waiting for |
追記
4時13分に開始して、今16時34分なのにTIMEは175分となってる。
TIMEの意味がよくわからない。