Vejo que há uma diferença na saída entre ps ef
e ps -ef
. Qual é essa diferença, os dois comandos estão corretos ou qual é o preferido?
Vejo que há uma diferença na saída entre ps ef
e ps -ef
. Qual é essa diferença, os dois comandos estão corretos ou qual é o preferido?
Respostas:
Veja man ps
(o do seu sistema, on-line pode ter explicações diferentes).
This version of ps accepts several kinds of options:
1 UNIX options, which may be grouped and must be preceded by a dash.
2 BSD options, which may be grouped and must not be used with a dash.
3 GNU long options, which are preceded by two dashes.
Portanto, o primeiro método ( ps ef
) é no estilo BSD e a página do manual continua com
O uso de opções no estilo BSD adicionará o estado do processo (stat = STAT) à exibição padrão e mostrará o comando args (args = COMMAND) em vez do nome do executável . Você pode substituir isso pela variável de ambiente PS_FORMAT. O uso de opções no estilo BSD também mudará a seleção do processo para incluir processos em outros terminais (TTYs) que pertencem a você; alternativamente, isso pode ser descrito como definir a seleção como o conjunto de todos os processos filtrados para excluir processos pertencentes a outros usuários ou não em um terminal. Esses efeitos não são considerados quando as opções são descritas como "idênticas" abaixo, portanto -M será considerado idêntico a Z e assim por diante.
Portanto, ambos são comandos válidos, mas não estão mostrando as mesmas informações.
man ps
diz:
This version of ps accepts several kinds of options:
1 UNIX options, which may be grouped and must be preceded by a
dash.
2 BSD options, which may be grouped and must not be used with a
dash.
3 GNU long options, which are preceded by two dashes.
Então, ef
usa o BSD e
e as f
opções, e -ef
usa o Unix -e
e as -f
opções. Estes são diferentes (secções SIMPLE PROCESS SELECTION
, OUTPUT FORMAT CONTROL
e OUTPUT MODIFIERS
, respectivamente):
-e Select all processes. Identical to -A.
-f Do full-format listing. This option can be combined with many
other UNIX-style options to add additional columns. It also
causes the command arguments to be printed. When used with
-L, the NLWP (number of threads) and LWP (thread ID) columns
will be added. See the c option, the format keyword args, and
the format keyword comm.
e Show the environment after the command.
f ASCII art process hierarchy (forest).
Claramente, você não está selecionando todos os processos usando as ef
opções, mas usando a lista padrão de processos, além de alguma formatação adicional:
By default, ps selects all processes with the same effective user ID
(euid=EUID) as the current user and associated with the same terminal
as the invoker. It displays the process ID (pid=PID), the terminal
associated with the process (tname=TTY), the cumulated CPU time in
[DD-]hh:mm:ss format (time=TIME), and the executable name (ucmd=CMD).
Output is unsorted by default.
The use of BSD-style options will add process state (stat=STAT) to
the default display and show the command args (args=COMMAND) instead
of the executable name. You can override this with the PS_FORMAT
environment variable. The use of BSD-style options will also change
the process selection to include processes on other terminals (TTYs)
that are owned by you; alternately, this may be described as setting
the selection to be the set of all processes filtered to exclude
processes owned by other users or not on a terminal.
Qual você deve usar? O que você quer fazer com a saída?
Além disso, consulte a EXAMPLES
seção (que lista com -ef
bastante destaque e não usa a e
opção BSD ):
EXAMPLES
To see every process on the system using standard syntax:
ps -e
ps -ef
ps -eF
ps -ely
To see every process on the system using BSD syntax:
ps ax
ps axu
To print a process tree:
ps -ejH
ps axjf
ps -ef
==ps aux
afaik