ps|grepコマンドをやめてpgrepコマンドを使うようにした
仕事中にpsコマンドとgrepコマンドを使用してプロセスを確認してkillするということがあるのですが
psコマンドとgrepコマンドを足したようなコマンドがあることが分かりました。
目次
ps&grepコマンドの場合①
ps&grepコマンドでもプロセスを調べることができるのですが、
ちょっと問題があります。
ex)Evernoteのプロセスを見る
% ps aux|grep Evernote xxx 74556 0.0 0.8 3996288 129888 ?? S 月01PM 4:24.04 /Applications/Evernote.app/Contents/MacOS/Evernote xxx 84131 0.0 0.0 2444052 760 s001 R+ 10:11AM 0:00.00 grep -G Evernote
上記のような結果になるのですが
- コマンドが長くなる
- grep自身のプロセスも表示される。邪魔。
ps&grepコマンドの場合②
grepコマンド自身のプロセスも表示させたくないので、以下のようにしました。
% ps aux|grep Evernote|grep -v grep xxx 74556 0.0 0.8 3996288 129940 ?? S 月01PM 4:24.28 /Applications/Evernote.app/Contents/MacOS/Evernote
上記のようにすると、grepコマンドのプロセスが表示されなくなるので分かりやすくなります。
- ただやっぱりコマンドが長い
pgrepコマンドが便利
- コマンドが長い
- grepコマンド自身のプロセスも表示されてしまう
という問題点を解決してくれるのがpgrepコマンドです。
% pgrep -f -l Evernote 74556 /Applications/Evernote.app/Contents/MacOS/Evernote
上記のようにシンプルにプロセス番号とプロセス名だけを表示してくれるので非常に便利です。
この存在を知ってから長くて煩わしいコマンドをやめてpgrepコマンドでプロセスを表示するようになりました。
pgrepコマンドのオプションについてはこちらの参考にどうぞ。