web-dev-qa-db-ja.com

ps出力で完全なコマンドを表示する

PuTTYでps-fオプション付きで実行すると(各プロセスに対応するコマンドを表示するため)、端末の幅より長い行は完全には表示されません(複数の行に折り返されません) 。

ps -fの実行時にコマンド全体(必要に応じて複数行)を表示できるように、行を強制的に折り返すにはどうすればよいですか?

16
sdabet

POSIX準拠のps実装がある場合は、

ps -f | more

最近動作が変更されたことに注意してください。POSIXissue 7 tc2に準拠した実装がある場合は、次の方法を試してみてください。

ps -wwf | more

¹ 私たちは、毎週電話会議を行ってPOSIX標準の進化について話し合う人々です。

15
schily

私はおそらくあなたの質問の答えを見つけました Stack OverflowDennis Williamson の言葉で:

Ps auxの出力は画面全体よりも長いので、以下またはほとんどのページャーを使用している可能性があります。その場合、以下のオプションを使用すると、長い行が切り捨てられる代わりに折り返されます(または強制されます)。

ps aux | less -+S

ps aux | most -w次のいずれかのコマンドを使用すると、行は折り返されませんが、矢印キーまたはその他の移動キーを使用して、左右にスクロールできます。

ps aux | less -S#矢印キーを使用する、または Esc+( そして Esc+)、または Alt+( そして Alt+)

ps aux | most#矢印キーを使用する、または < そして > (タブは右スクロールにも使用できます)行は常にmoreおよびpgで折り返されます。

いつ ps auxはパイプで使用されます。psが出力を端末に送信するときにのみpsが画面幅を使用するため、wオプションは不要です。

(注:これは非組み込みLinuxに適用されます。他のUnixバリアントのpsユーティリティは異なる動作をする場合があります。)

8
tommygun

別の簡単な解決策もあります:

echo "$(ps afx)"
3
cinatic

簡単にするために、これを試してください:ps auxfww

3
fibonacci

MacOSのコマンドは少し異なりますecho "$(ps aux)"

0
Jibeex

またはあなたができる

IFS='$';for line in $(ps axf); do echo $line; done
0