"ps aux"의 aux는 무엇을 의미하나요?

"ps aux"의 aux는 무엇을 의미하나요?

ps auxaux상태 및 리소스 사용량(Linux/BSD/MacOS) 과 함께 모든 프로세스를 나열하는 편리한 방법이 있는 것 같지만 man ps.

무슨 뜻이에요 aux?

답변1

a = 모든 사용자에 대한 프로세스 표시
u = 프로세스의 사용자/소유자 표시
x = 터미널에 연결되지 않은 프로세스도 표시

BTW, man ps훌륭한 리소스입니다.

역사적으로 BSD와 AT&T는 호환되지 않는 옵션을 개발했습니다 ps. 선행 대시가 없는 옵션(질문에 따르면)은 BSD 스타일이고 선행 대시가 있는 옵션은 AT&T Unix 스타일입니다. 그 외에도 Linux는 두 스타일을 모두 지원하는 버전을 개발한 다음 옵션이 이중 대시로 시작하는 세 번째 스타일을 추가했습니다.

모든(또는 거의 모든) 비임베디드 Linux 배포판은프로세스모음곡. 위의 옵션은 다음과 같이 정의됩니다.절차 ps매뉴얼 페이지.

댓글에서 귀하는 Apple MacOS(내 생각에는 OSX)를 사용하고 있다고 말씀하셨습니다. OSX 매뉴얼 페이지 ps는 다음과 같습니다.여기그리고 AT&T 스타일만 지원된다는 것을 보여줍니다.

답변2

man ps옵션은 아래에 설명되어 있습니다.

   a      Lift the BSD-style "only yourself" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.  
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          with a terminal (tty), or to list all processes when used together 
          with the x option.

   u      Display user-oriented format.

   x      Lift the BSD-style "must have a tty" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          owned by you (same EUID as ps), or to list all processes when used 
          together with the a option.

$ ps aux | head -10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  51120  2796 ?        Ss   Dec22   0:09 /usr/lib/systemd/systemd --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Dec22   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Dec22   0:04 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Dec22   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Dec22   0:15 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Dec22   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    Dec22   2:47 [rcu_sched]
...
saml      3015  0.0  0.0 117756   596 pts/2    Ss   Dec22   0:00 bash
saml      3093  0.9  4.1 1539436 330796 ?      Sl   Dec22  70:16 /usr/lib64/thunderbird/thunderbird
saml      3873  0.0  0.1 1482432 8628 ?        Sl   Dec22   0:02 gvim -f
root      5675  0.0  0.0 124096   412 ?        Ss   Dec22   0:02 /usr/sbin/crond -n
root      5777  0.0  0.0  51132  1068 ?        Ss   Dec22   0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml      5987  0.7  1.5 1237740 119876 ?      Sl   Dec26  14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root      6115  0.0  0.0      0     0 ?        S    Dec27   0:06 [kworker/0:2]
...

위 스위치를 사용하면 위 프로세스와 관련된 출력을 얻을 수 있습니다.

스위치에 aux다음이 표시됩니다.

  • 모든 사용자를 위한 프로세스
  • 사용자에게 표시되는 방식으로 나열된 프로세스를 표시합니다(사용자 이름 기준).
  • 터미널에 연결된 프로세스뿐만 아니라 모든 프로세스를 보여줍니다. 여기에는 crond, upowerd 및 기타 서비스와 같은 프로세스가 포함됩니다.

답변3

이해의 핵심은맨페이지"aux"(처음 시도)를 검색하는 대신 매개변수 유형을 설명하는 부분에 집중하세요 ps.

이 ps 버전은 다양한 옵션을 허용합니다:

  1. UNIX 옵션은 그룹화할 수 있으며 앞에 대시가 와야 합니다.
  2. BSD 옵션은 그룹화할 수 있으며 대시와 함께 사용할 수 없습니다.
  3. 두 개의 대시가 앞에 오는 GNU 긴 옵션입니다.

이를 통해 우리는 이것이 aux(그룹화된) BSD 옵션 세트라는 것을 알 수 a있으며 u, x이를 통해 쉽게 찾을 수 있습니다.

  • ax어떤 프로세스가 선택되고 함께 사용되는지 제어하는 ​​것은 모든 프로세스를 선택하는 것으로 명시적으로 설명됩니다 .

  • u사용자 ID 및 CPU/메모리 사용량을 포함한 추가 열을 제공하는 "사용자 측" 형식을 사용하여 출력합니다.

출력 형식은 개별적으로 제어 되므로 u특정 프로세스에만 해당하는 "ps aux" 스타일 출력을 얻을 수 있습니다 ps u $pid1 $pid2 ....

답변4

ps: 프로세스 상태

나에게는 두 가지를 모두 /bin/ps --version얻습니다 /usr/bin/ps --version.ps from procps-ng 3.3.16

ps는 다음에서 제공하는 명령입니다.프로세스:
명령줄 및 전체 화면유용탐색의 경우 procfs프로세스 테이블의 항목 상태에 대한 정보를 제공하기 위해 커널에 의해 동적으로 생성된 "유사" 파일 시스템입니다.

문법 2개

시스템의 모든 프로세스를 보려면 다음을 사용하십시오.

  1. 표준 구문
  • 폴리스티렌
  • 폴리스티렌-EF

그런데, 예 ps -u:

  • ps -u root --format=user,pid,command # 다음 줄과 동일:
  • ps -uroot --format=user,pid,command #(정말 보기 흉한 구문입니다!)

출력은 다음과 같습니다

    USER         PID COMMAND
    root           1 /sbin/init splash
    root           2 [kthreadd]
    root           3 [rcu_gp]
    root           4 [rcu_par_gp]
    root           6 [kworker/0:0H-kblockd]
    root           9 [kworker/u80:0-ixgbe]

이 POSIX 및 UNIX 표준에 따르면 다음을 ps -aux의미합니다 ps -a -ux.
1. tty가 있는 프로세스(세션 리더 제외) [by -a]
2. 이름이 "x"인 사용자가 소유한 모든 프로세스 [by -ux] ( -u: 유효한 프로세스 선택순서)

공정 선택 옵션이 추가됩니다. (다음 조건을 만족할 경우 해당 공정이 표시됩니다.)어느주어진 선택 기준)

"x"(현재 사용자?)라는 사용자가 존재하지 않는 경우ps -aux 가능한Falls ps aux하고 경고를 출력합니다.

-x매뉴얼 페이지에는 옵션이 없지만 ps -x동일한 프로세스로 찾을 수 있습니다 ps -ux(다른 출력 형식).

  • ps -ux --format=user가져오기:
    사용자 이름이 존재하지 않습니다.
  • ps -x --format=user
    올바른 결과 얻기(현재 사용자에 해당)

다음과 같은 사실이 생각나는 것도 당연합니다 manpage.

이 동작은 전환을 돕기 위한 것입니다.오래된 스크립트와 습관. 깨지기 쉬우므로 의존해서는 안 됩니다.


  1. BSD 구문:
    PS 도끼
  • 답변: 모든 사용자

  • x: 목록모두프로세스 소유자(ps와 동일한 EUID). 또는 더 구체적으로 말하면 다음과 같은 프로세스가 포함되지 않습니다.제어 터미널(터미널에 연결되지 않은 프로세스 포함)

    따라서 ax모든 프로세스가 나열됩니다

  • u: 자원 출력세이지 형식
    예: ps axu


이 시나리오는 zsh 자동 완성의 편리함을 보여줍니다(Tab을 누르고 프롬프트 표시).여기에 이미지 설명을 입력하세요.

여기에 이미지 설명을 입력하세요.

이 맨페이지는 독자에게 친숙합니다. https://www.mankier.com/1/ps

관련 정보