現在実行中のkateエディタのPIDを知りたいとしましょう(kateは単なる例であり、多くのプログラムで説明したのと同じ方法で動作します)。だから私はps aux | grep kate
。
出力は次のとおりです。
seifert 35523 0.0 0.2 448724 25144 ? Sl 08:56 0:33 /bin/kate -b
seifert 1499179 0.0 0.0 12196 656 pts/0 S+ 21:52 0:00 grep --color=auto kate
最初の行は私が期待するものです。しかし、2番目は何ですか?
答え1
と入力するとps aux|grep kate
これが始まりますgrep kate
。grep kate
これは次のように処理されますgrep kate
(エイリアスがある場合(この例のように)、より複雑です)。そして部分文字列がgrep kate
あるので、対応する行が選択されます。kate
kate
grepコマンドが必要になる前にプロセスリストからプロセスを取得するために必要なpgrep
コマンドにすることができます。
編集:pgrep pgrep
私も自分で見つけることができませんでした。
答え2
これは、検索中のプロセスと入力したコマンドの行を返すためですgrep kate
。
したがって、応答を受け取るには、次のコマンドを使用します。
ps -fp $(pgrep -f '<your_search>')
pgrep -f
プロセスを開始するための完全なコマンド(引数を含む)に基づいてプロセスのPIDを取得します。
答え3
Wayne Wernerの答えを引用すると、次のようになります。
文字の周りに角かっこを入れて文字列の周りに引用符を入れると、正規表現を検索できます。つまり、「f」の後に「nord」文字を探してください。」しかし、パターンに角かっこを入れたので、「f」の後に「]」が表示され、結果リストにgrepは表示されません。ニト!
[f]を使用すると、出力の右側のdiffからgrepコマンドの最後の行を取得できません。 beetwen "ps aux | grep firefox" と "ps aux | grep [f]irefox" は最後の出力行です。
これを望まない場合は、使用可能なプロセスのリストps aux | grep 'kate'
で最後のgrepコマンドを参照してください(例:process / command)。
ps aux | grep '[k]ate'
[]
検索するすべてのコマンド/プロセスでこの角かっこを使用できます。
ps aux | grep '[c]ommand' or '[p]rocess'
pidだけをインポートするためにも使用できます。
pidof kate
または
pgrep kate
または
ps -ef | grep [k]ate