aux在`ps aux`中是什么意思?


161

ps aux似乎可以方便地列出所有进程及其状态和资源使用情况(Linux / BSD / MacOS),但是我无法理解aux使用的参数含义man ps

什么aux意思

Answers:


208

a =显示所有用户
的进程u =显示进程的用户/所有者
x =还显示未连接到终端的进程

顺便说一句,man ps是很好的资源。

过去,BSD和AT&T开发了不兼容的ps。没有前划线(根据问题)的选项是BSD样式,而有前划线的选项是AT&T Unix样式。最重要的是,Linux开发了一个同时支持两种样式的版本,然后在其中添加了以双破折号开头的选项的第三种样式。

所有(或几乎所有)非嵌入式Linux发行版都使用procps套件的变体。以上选项是在procps ps手册页中定义的。

在评论中,您说您正在使用Apple MacOS(我想是OSX)。对于OSX手册页ps在这里,它仅显示AT&T样式的支持。


1
@HowardGuo您确定这不-u只是正义u吗?
jordanm

2
@HowardGuo我已经更新了答案,以反映GNU(Linux)版本ps与Apple OSX版本之间的差异。这个问题目前被标记为“ Linux”。如果您还询问MacOS,则可能要更新标签。
John1024

1
非常感谢。我刚刚检查了Linux中ps的手册页,它具有有关的信息aux,MacOS的手册页没有此类信息,这可能是文档错误。
霍华德

2
OSX手册页ps的确ps aux在“旧版说明”部分下显示“ ... 仍然像在Tiger中一样工作”。
开发

3
我必须反对“ man ps在Mac OSX上是很好的资源。”手册页仅在最后指出,这样做ps aux是为了方便起见,但绝对没有暗示可能在不带连字符的情况下指定选项最后,手册页很长而且很复杂,读者可以花很多时间去质疑自己的理智,然后放弃并谷歌搜索这个
stackexchange

15
   a      Lift the BSD-style "only yourself" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.  
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          with a terminal (tty), or to list all processes when used together 
          with the x option.

   u      Display user-oriented format.

   x      Lift the BSD-style "must have a tty" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          owned by you (same EUID as ps), or to list all processes when used 
          together with the a option.

$ ps aux | head -10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  51120  2796 ?        Ss   Dec22   0:09 /usr/lib/systemd/systemd --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Dec22   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Dec22   0:04 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Dec22   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Dec22   0:15 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Dec22   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    Dec22   2:47 [rcu_sched]
...
saml      3015  0.0  0.0 117756   596 pts/2    Ss   Dec22   0:00 bash
saml      3093  0.9  4.1 1539436 330796 ?      Sl   Dec22  70:16 /usr/lib64/thunderbird/thunderbird
saml      3873  0.0  0.1 1482432 8628 ?        Sl   Dec22   0:02 gvim -f
root      5675  0.0  0.0 124096   412 ?        Ss   Dec22   0:02 /usr/sbin/crond -n
root      5777  0.0  0.0  51132  1068 ?        Ss   Dec22   0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml      5987  0.7  1.5 1237740 119876 ?      Sl   Dec26  14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root      6115  0.0  0.0      0     0 ?        S    Dec27   0:06 [kworker/0:2]
...

使用上述开关,您将获得有关上述过程的输出。

开关aux将显示:

  • 所有用户的流程
  • 向您展示以面向用户的方式列出的过程(按用户名)
  • 向您显示所有过程,而不仅仅是连接到终端的过程。这将包括诸如crond,upowered等服务之类的过程。

6

理解联机帮助页的关键不是搜索“ aux”(我首先尝试过),而是专注于描述参数种类的部分ps

此版本的ps接受几种选择:

  1. UNIX选项,可以分组,并且必须在破折号之前。
  2. BSD选项,可以分组,并且不能带破折号。
  3. GNU长选项,前面带有两个破折号。

由此,我们知道这aux是一组(分组的)BSD选项aux,这使它们的查找稍微容易一些。

  • ax明确描述了选择和控制哪些进程并一起使用以选择所有进程。

  • u 输出使用“面向用户”格式,该格式提供更多列,包括用户ID和CPU /内存使用情况。


这样的推论是,如果您想要某个过程的“ ps aux”样式输出,则可以通过省略aand x,然后执行来获得它ps u $pid
mwfearnley
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.