GNU/Linux >> Linux の 問題 >  >> Linux

ps aux の出力を見る | tmux の grep blah は機能しませんか?

走る

watch "COLUMNS= ps aux | grep TheProcessYouWatch"

説明:watch 特定の追加の環境変数、つまり COLUMNS を設定します そして LINES .これは env | grep COLUMNS を比較することで簡単に確認できます と watch 'env | grep COLUMNS' .

COLUMNSのとき 設定されています、ps 出力が grep にパイプされている場合でも、出力を 1 行の文字数に切り捨てます。 (または他のもの)。 (ps 、 なぜあなたは私にこれを行うのですか?)。 COLUMNS を強制する watch 以内で空になる のコマンドは ps を作るのに十分です OP (および私) が期待するとおりに動作します。

ところで、 watch を避けるために と grep プロセスが監視対象の出力の一部である場合、[] を追加することを検討してください このように:

watch "COLUMNS= ps aux | grep [T]heProcessYouWatch"

(もちろん、pgrep に慣れることをお勧めします それも。他の回答がこれに役立ちます。)


質問の編集と xzfc の回答で述べたように、この問題は tmux の行の折り返しに関連しているようです。 ps aux | grep [q]uote のドロップイン置換に近いもの 、ユーザー情報が必要ない場合は、次を試してください:

$ pgrep -af [q]uote
392 bash -c sleep 5 && echo quote
399 bash -c sleep 5 && echo second quote

$ watch pgrep -af [q]uote

-a フラグは出力にコマンドライン引数を含めますが、 -f プロセス名だけでなく、コマンド ライン引数も検索できます。


ps 人間が読める出力を生成するユーティリティであり、人間が読めるテキストを grep することに依存するのは悪い考えです。 pgrep myShittyProcess を使用する必要があります ps aux | grep myShittyProcess の代わりに . pgrep pid の裸のリストを生成します。退屈な出力を減らしたい場合は、pgrep を渡すことができます の ps への出力 :

ps -opid,user,args -p `pgrep myShittyProcess`

watch でそのワンライナーを使用するには ' ' で囲む必要があります (" " ではありません) ) 初期のシェル コマンドの置換を防ぐため:

watch 'ps -opid,user,args -p `pgrep myShittyProcess`'

Linux
  1. Tmuxで256色を機能させるには?

  2. Tmuxは.tmux.confを調達していませんか?

  3. VimがTmux内で実行されていませんか?

  1. Linux –ヘッドフォンが機能しないLinux Mint 18?

  2. なぜ`exit&`が機能しないのですか?

  3. Linux – Watchコマンドを使用した後、特定のプログラムの出力の監視を停止しますか?

  1. よりエレガントな ps aux | grep -v grep

  2. ps aux 出力の意味

  3. 自動リピートが機能しない