Я бачу, різниця у виході між ps ef
і ps -ef
. У чому полягає відмінність, чи обидві команди правильні чи які переважні?
Я бачу, різниця у виході між ps ef
і ps -ef
. У чому полягає відмінність, чи обидві команди правильні чи які переважні?
Відповіді:
Дивіться man ps
(той, хто у вашій системі, он-лайн може мати різні пояснення).
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.
Отже, 1-й метод ( ps ef
) - це BSD-стиль, і сторінка керівництва продовжується
Використання параметрів стилю BSD додасть стан процесу (stat = STAT) на дисплей за замовчуванням та покаже командні аргументи (args = COMMAND) замість імені виконуваного файлу . Ви можете змінити це за допомогою змінної середовища PS_FORMAT. Використання параметрів стилю BSD також змінить вибір процесу для включення процесів на інші термінали (TTY), які належать вам; по черзі це може бути описано як встановлення вибору для набору всіх процесів, відфільтрованих, щоб виключити процеси, що належать іншим користувачам або не є терміналом. Ці ефекти не враховуються, коли параметри описуються як "ідентичні" нижче, тому -M буде вважатися ідентичним Z і так далі.
Отже, обидві є дійсними командами, але вони не показують однакову інформацію.
man ps
каже:
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.
Отже, ef
використовує BSD e
та f
параметри, а також -ef
використовує Unix -e
та -f
параметри. Це різні (секції SIMPLE PROCESS SELECTION
, OUTPUT FORMAT CONTROL
і OUTPUT MODIFIERS
відповідно):
-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).
Зрозуміло, що ви не вибираєте всі процеси за допомогою ef
параметрів, але використовуєте перелік процесів за замовчуванням, а також додаткове форматування:
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.
Який слід використовувати? Що ви хочете зробити з результатом?
Також дивіться EXAMPLES
розділ (який робить список -ef
досить помітним і взагалі не використовує параметр BSD e
):
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