【问题标题】:Getting The Full Result from "ps"从“ps”获取完整结果
【发布时间】:2010-09-17 11:53:53
【问题描述】:

如何获得 *nix 命令“ps”的全宽结果?
我知道我们可以指定 --cols 1000 之类的东西,但无论如何我可以 列并打印出所有内容?

【问题讨论】:

    标签: linux unix command-line process ps


    【解决方案1】:

    ps 有两种不同的选项语法;基于 SysV 的标准 POSIX 和 BSD 之一。在 linux 上使用的 GNU ps 支持这两者,它可以做到这一点,因为 POSIX 选项前面有破折号而 BSD 没有,以及它在普通 GNU --long-option-name 中的一些自己的选项风格。

    无论如何,要获得 POSIX 样式的所有进程是 -e,在 BSD 中是 ax(a 包括其他用户的进程,x 包括没有控制终端的进程,即守护进程)。

    没有一个选项可以使它包含所有列。有大量可能的列。 POSIX 选项 -f、-F 和 -L 都导致它显示不同的额外列集,BSD 选项 u 也是如此(因此另一个答案中提到的“ps aux”是一个非常常见的命令)。

    如果您确实想要更多的列,则必须使用 -o(或 o)选项明确命名您想要的列。有关列表,请参见手册页。您可以使用大约一百个不同的名称,但其中一些是重复的,而另一些则以不同的方式显示相同的信息。

    【讨论】:

    • 我阅读了有关“打印出所有内容”的内容,这意味着他们想要输出中所有可能的列,所以我回答了这个问题。我同意关于获取所有进程的观点是错误的问题。
    【解决方案2】:

    如果您使用的是 BSD 风格的 ps,请指定两次 w 选项。例如,ps auwwx。使用 System V ps 时应用了一组不同的选项。

    【讨论】:

    • 这是评论,而不是答案。
    【解决方案3】:

    试试ps -w -w aux。 -w 选项将输出设置为宽,并且执行两次会使宽度不受限制。 “辅助”部分使其显示更多信息,并且是(afaik)非常标准的使用模式。这当然取决于平台,以上适用于 Linux 上的 procps 版本 3.2.7。

    【讨论】:

    • “aux”没有什么神奇之处;它们只是一起指定的“a”、“u”和“x”选项。因此,您也可以合并两个 'w' 选项。 :-)
    • 啊,是的,当然是这样。我想这只是我的标准咒语,将“辅助”视为一个论点而不是一个选项。不过,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-02-04
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    • 2016-05-15
    • 2017-04-28
    • 2020-09-20
    • 1970-01-01
    相关资源
    最近更新 更多