`ps| grep -v |

`ps| grep -v |
ps aux  | grep firefox

"firefox"という文字列を含むすべてのプロセスを一覧表示します。

ps aux  | grep -v firefox

"firefox"文字列を持たないすべてのプロセスを一覧表示します。

ps aux | grep -v grep | grep firefox

2番目のgrepは何をしますか? grep自体はコマンドですが、なぜ別のgrepをgrepするのですか?

ベストアンサー1

次のコマンドを実行するとき

ps aux  | grep firefox

その後、grepプロセスそれ自体探している単語がすでに存在するため、出力に表示されることがあります。たとえば、私のコンピュータで実行するchromeと、同様の結果が表示されます。

% ps aux | grep chrome
sweh      3384  0.0  0.0  11128  1024 pts/1    S+   07:08   0:00 grep chrome
sweh     23698  0.0  0.0   6384   620 ?        S    Jul04   0:00 /usr/lib/chromi

grep我々は、プロセス3384が命令であり、一致することが分かる。クロム合金現れる。

これを避けるために、一部の人は2行目を追加して| grep -v grep行を削除します。

一つあるだまされるしかし...

ps aux | grep '[f]irefox'

grep '[f]irefox'まったく同じ行と一致しますgrep firefoxが、grep単語が実際にコマンドに表示されないため、コマンド自体は一致しません。

おすすめ記事