エンジニアはこわくない

自分の好きな音楽とか雑記とかエンジニアっぽい内容を好きなように書く場所。

ps|grepコマンドをやめてpgrepコマンドを使うようにした

f:id:tsujitaku50:20170114100554j:plain

仕事中に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コマンドのオプションについてはこちらの参考にどうぞ。

kazmax.zpp.jp