查看 ps 输出中的完整命令

sda*_*bet 36 terminal ps putty

ps使用-fPuTTY 中的选项运行时(查看每个进程对应的命令),长于终端宽度的行不完全可见(它们不会被包裹在多行上)。

如何强制换行,以便在运行时可以看到完整的命令(如有必要,在多行上)ps -f

sch*_*ily 40

如果您有符合 POSIX 的ps实现,您可以尝试

ps -f | more
Run Code Online (Sandbox Code Playgroud)

请注意,我们¹最近更改了行为,如果您有遵循 POSIX 问题 7 tc2 的实现,您可以尝试:

ps -wwf | more
Run Code Online (Sandbox Code Playgroud)

¹我们是每周召开电话会议来讨论 POSIX 标准演变的人。

  • `ps -wwf` 工作得很好。 (2认同)

fib*_*cci 18

为简单起见,试试这个: ps auxfww

  • 这有效!接受的答案(ps -wwf 和 ps -f)没有。 (2认同)

小智 11

我可能已经在 Stack Overflow 上找到了您的问题的答案 。用丹尼斯威廉姆森的话来说:

您可能正在使用诸如 less 或 most 之类的寻呼机,因为 ps aux 的输出比 screenful 长。如果是这样,以下选项将导致(或强制)长行换行而不是被截断。

ps aux | less -+S

ps aux | most -w 如果您使用以下任一命令,则不会换行,但您可以使用箭头键或其他移动键左右滚动。

ps aux | less -S # 使用箭头键,或Esc+(Esc+ ),或Alt+(Alt+)

ps aux | most # 使用箭头键, or <and >(Tab 也可以用来向右滚动) 行总是换行为 more 和 pg。

ps aux在管道中时,w选项是不必要的,因为PS只使用屏幕宽度时输出到终端。

(注意:这适用于非嵌入式 Linux,ps其他 Unix 变体上的实用程序可能会有所不同。)


小智 7

还有另一个简单的解决方案:

\n
echo "$(ps afx)"\n
Run Code Online (Sandbox Code Playgroud)\n

当在这样的命令替换中运行时,ps\xe2\x80\x99t 不会将其输出发送到终端,因此它不会\xe2\x80\x99t 将其输出限制为终端\xe2\x80\x99s 宽度。

\n