`-f`와 `-o`는 `ps`에서 어떻게 상호 작용합니까?

`-f`와 `-o`는 `ps`에서 어떻게 상호 작용합니까?

-f-o어떻게 상호작용 하나요 ps? 보도에 따르면, 그들은 함께 일하기로 되어 있지 않았습니다ps: 출력 수정자 및 출력 형식 제어 그리고https://unix.stackexchange.com/a/446198/674, -f필드가 암시적으로 지정되므로 -o사용자가 필드를 지정할 수 있습니다.

man ps설명하다

-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.

f      ASCII art process hierarchy (forest).

관련 없는 옵션/매개변수인 것 같습니다.

그런데 왜

  1. ps -f -o cmd처럼 ps f아버지와 아들의 관계를 보여주나요?
  2. ps -f -o ...ps f?와 동일한 수의 프로세스를 선택하십시오.

    $ ps f  | wc -l
    224
    $ ps -f -o pid |  wc -l
    224
    
  3. ps -f유무에 관계없이 선택할 수 있는 다양한 프로세스가 있습니까 -o?

    $ ps -f  |  wc -l
    5
    
  4. -e여기서는 가능할 것 같지 않나요?

    $ ps -e -f -o pid,ppid,comm |  wc -l
    224
    
    $ ps -e -f  |  wc -l
    414
    
    $ ps -e  -o pid,ppid,comm |  wc -l
    414
    

감사해요.

답변1

많은 psGnu/Linux는 System V와 BSD라는 두 가지 이상의 버전과 호환됩니다 ps. 일부 옵션은 하나에서 나오고 일부는 다른 옵션에서 나옵니다.

답변2

1. 및 2.:

예, 출력이 프로세스 계층 구조의 출력과 동일하게 ps -f -o ...작동합니다 .ps fps -f -o ...ps f -o ...

예:

ps -f -o user,pid,ppid,cmd
# is the same as
ps f -o user,pid,ppid,cmd

삼.

ps -f현재 쉘(tty)의 모든 프로세스를 선택하고 ps -f -o ...동시에 tty의 모든 프로세스를 출력하는 것으로 보입니다.

예:

ps -f
# selects the same processes of current tty as
ps -o user,pid,ppid,cmd,tty

# and... have a look at the tty value here
ps -f -o user,pid,ppid,cmd,tty

4.

예, ps -ef작동하지 않는 것 같습니다 . 유사한 계층 구조를 -o추가할 수 있습니다 .-Hps -eH -o user,pid,ppid,cmd

관련 정보