Tôi thấy có một sự khác biệt trong đầu ra giữa ps ef
và ps -ef
. Sự khác biệt đó là gì, cả hai lệnh đều đúng hay được ưu tiên?
Tôi thấy có một sự khác biệt trong đầu ra giữa ps ef
và ps -ef
. Sự khác biệt đó là gì, cả hai lệnh đều đúng hay được ưu tiên?
Câu trả lời:
Xem man ps
(một trong hệ thống của bạn, trực tuyến có thể có giải thích khác nhau).
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.
Vì vậy, phương thức 1 ( ps ef
) là kiểu BSD và trang thủ công tiếp tục với
Việc sử dụng các tùy chọn kiểu BSD sẽ thêm trạng thái quá trình (stat = STAT) vào màn hình mặc định và hiển thị lệnh args (args = HOL) thay vì tên thực thi . Bạn có thể ghi đè lên điều này bằng biến môi trường PS_FORMAT. Việc sử dụng các tùy chọn kiểu BSD cũng sẽ thay đổi lựa chọn quy trình để bao gồm các quy trình trên các thiết bị đầu cuối khác (TTYs) do bạn sở hữu; cách khác, điều này có thể được mô tả là thiết lập lựa chọn thành tập hợp tất cả các quy trình được lọc để loại trừ các quy trình thuộc sở hữu của người dùng khác hoặc không trên thiết bị đầu cuối. Các hiệu ứng này không được xem xét khi các tùy chọn được mô tả là "giống hệt" bên dưới, vì vậy -M sẽ được coi là giống hệt với Z, v.v.
Vì vậy, cả hai đều là các lệnh hợp lệ nhưng chúng không hiển thị cùng một thông tin.
man ps
nói:
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.
Vì vậy, ef
sử dụng BSD e
và f
các tùy chọn, và -ef
sử dụng Unix -e
và -f
các tùy chọn. Đây là khác nhau (phần SIMPLE PROCESS SELECTION
, OUTPUT FORMAT CONTROL
và OUTPUT MODIFIERS
tương ứng):
-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).
Rõ ràng, bạn không chọn tất cả các quy trình bằng các ef
tùy chọn, nhưng đang sử dụng danh sách quy trình mặc định, cộng với một số định dạng bổ sung:
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.
Bạn nên sử dụng loại nào? Bạn muốn làm gì với đầu ra?
Ngoài ra, hãy xem EXAMPLES
phần (danh sách này -ef
khá nổi bật và hoàn toàn không sử dụng e
tùy chọn 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