Solaris ps aux 命令特定输出。为什么需要“ww”标志来查找与 grep 的匹配项?

Solaris ps aux 命令特定输出。为什么需要“ww”标志来查找与 grep 的匹配项?

我开始使用 Oracle Solaris 11.2 SPARC。

在Linux下,我可以写

ps aux | grep *some_data*

...但这在 Solaris 上没有显示任何结果。

相反我需要说

ps auxww | grep *some_data* 

我查看了man ps有关的更多信息ww

如果选项字母重复,即-ww,该选项使用任意宽的输出

为什么我需要使用ww来获取任何东西grep

答案1

无论是在 Linux 还是 Solaris 下,您都在使用非标准 BSD 选项。

可移植的方式是使用-o选项来指定要显示哪些字段,例如此处ps -o pid,args。请注意,除非您使用最近的 11.3 更新或更高版本,否则参数列表将限制为 80 个字符,除非您是 root 或拥有该进程。

或者,您可以使用pgrep -fwhich 来搜索完整的命令行。

答案2

在 Linux 上,该ps命令检测输出是否到终端。如果是终端,则会将输出截断为终端宽度。如果它不在终端上,那么它不会被截断。实际上,它的行为就像自动添加ww标志一样。

ps aux您可以通过键入和查看差异ps aux | cat

在您的示例中,您将输出通过管道传输到grep,因此它的作用就像您键入了ps auxww | grep.

为了可移植性,ww如果您想查看超过(例如)80 个字符的所有数据,您应该始终使用这些标志。

注意:您使用的是 BSD 形式的ps命令,因此在 Solaris 上请确保您调用的是正确的命令!

相关内容