首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ps -ef与ps -auxwww?

ps -ef与ps -auxwww?
EN

Unix & Linux用户
提问于 2021-06-08 09:41:38
回答 1查看 1.6K关注 0票数 -1

有谁能向我解释一下

代码语言:javascript
复制
ps -ef

代码语言:javascript
复制
ps -auxwww

举几个例子?

我只想知道他们之间的区别。我检查了一个提供信息的帖子,即ps -ef不会用很长的命令行列出进程,而ps -auxwww也会列出这些进程。

EN

回答 1

Unix & Linux用户

发布于 2021-06-08 12:22:18

ps是一个非常依赖于系统的命令.由于历史原因,现在和过去都有不同的味道。

ps -ef是获取信息的语法,在AT&T的Unix支持组( AT&T's Unix Support Group )的基础上,AT&T的Unix支持组(Unix Support Group)发布了fuller格式的清单,这是AT&T商业化Unix的一部分。或者SysV语法(如果您喜欢的话),尽管ps -ef在1980年已经在SysIII中了。

它由POSIX指定,但仅在XSI选项下指定(XSI选项对应于X/Open规范,该规范旨在为基于SysV的系统带来某种形式的标准化,现在已合并到POSIX中)。

最接近的POSIX等价物是ps -A -o user,pid,ppid,tty,time,args (缺少C (CPU)列)。

ps aux将是BSD语法,它是基于AT&T研究公司(贝尔实验室)开发的Unix的原始版本的学术系统。你没有在那里使用-a适用于所有进程(不仅仅是与当前终端相关联的进程),u用于面向用户的输出包括附加信息,x用于还包括与任何终端无关的进程( ps首次出现的研究Unix v3中已经有-x )。wide的w是后来添加的。

通常在基于Linux的系统上发现的procps ps实现试图协调所有不同的(通常是不兼容的)语法、SysV语法、BSD语法,甚至更像来自HP/UX或AIX的语法,因此,当一个语法与另一个语法冲突时,支持大多数语法例外。

您的系统上的手册页将为您提供各种标志的所有细节。

ps -ef是否会截断命令行在很大程度上取决于系统、系统版本和实现以及ps的版本,以及输出是否到达终端。有些人支持-w,以使其更广泛。在一些系统上,包括较早版本的Linux,命令行被系统本身截断,所以如果它非常大,那么很难获得完整的命令行。

按照标准,您还可以选择指定所需的字段:

代码语言:javascript
复制
ps -A -o pid -o args

例如,对于pid和命令行(从技术上讲,传递给进程执行的最后一个命令的参数列表-尽管在许多系统上,进程也可以任意更改)--A11进程。

代码语言:javascript
复制
ps -A -o pid= -o args=

跳过标题。

注意,并非所有系统都支持相同的字段列表。

在脚本中,我建议坚持使用POSIX语法 (避免可选特性)。

对于基于某些条件(包括命令行)的进程搜索,使用pgrep (pkill来杀死它们)。这些不是标准的,但很常见,而且使用起来比处理ps的输出更可靠。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/653359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档