2017-09-01 8 views
2

私のプロセスからpidを取得したいと思います。私はps aux | cut -d ' ' -f 2を行うが、私は時々、それはPIDを取得し、時にはそれがないことに注意してください:秒1は3に配管されたのに対し、最初のcutのコマンドは2に配管されていることを`ps aux`コマンドからPIDを常にカットするには?

[[email protected] ~]$ ps aux 
user 2049 0.5 10.4 6059216 1623520 ?  Sl date 8:48 process 
user 12290 0.3 6.9 5881568 1086244 ?  Sl date 2:30 
[[email protected] ~]$ ps aux | cut -d ' ' -f 2 

12290 
[[email protected] ~]$ ps aux | cut -d ' ' -f 3 
2049 

は予告。使用する番号(2または3)を知らなくても、これらからPIDを選ぶにはどうすればよいですか?

誰かが私にこれらの違いを教えてもらえますか?

答えて

4

-d ' 'は、区切り文字として単一のスペースを使用することを意味します。 2049の前に1スペースと12290の前に2スペースがあるので、コマンドは-f 2-f 3でそれらを取得します。

これらのpidを取得するには、ps aux | awk '{print $2}'を使用することをお勧めします。

それとも、あなたが唯一のPIDを印刷する -oオプションを使用することができ、それらのスペースを最初 ps aux | tr -s ' ' | cut -d ' ' -f 2

3

を圧迫するtrを使用することができます。

ps -u user -o pid 
関連する問題