차이점이 무엇인지 설명해 줄 수 있는 사람이 있나요?
ps -ef
그리고
ps -auxwww
몇 가지 예가 있나요?
나는 단지 그들 사이의 차이점을 알고 싶습니다. 하나 확인했어요우편 엽서ps -ef
긴 명령줄이 있는 프로세스는 나열되지 않지만 ps -auxwww
해당 프로세스도 나열된다는 정보를 제공합니다 .
답변1
ps
이는 시스템에 따라 매우 의존적인 명령입니다. 역사적인 이유로 인해 다양한 맛이 있었고 항상 있어 왔습니다.
ps -ef
e
f
AT&T에서 Unix 상용화를 담당하는 부분인 USG(Unix Support Group)를 기반으로 하는 Uller 형식 목록으로 Unices에 대한 정보를 얻기 위한 구문입니다 . 또는 원하는 경우 SysV 구문을 사용할 수 있습니다. 단, SysV 구문 ps -ef
은 1980년 SysIII에 존재했습니다.
이는 POSIX에 의해 지정되지만 XSI 옵션에서만 지정됩니다(SysV 기반 시스템에 어떤 형태의 표준화를 제공하기 위해 고안되었으며 현재 POSIX에 병합된 X/Open 사양에 해당).
가장 가까운 POSIX에 해당하는 것은 ps -A -o user,pid,ppid,tty,time,args
(누락 C
(CPU) 열)입니다.
ps aux
BSD 구문이 될 것입니다.학생AT&T Research(Bell Laboratories)에서 개발한 Unix 원본 버전을 기반으로 한 시스템입니다. 당신은 거기에서 그것을 사용하지 않았습니다 -
.a
모두프로세스(현재 터미널과 관련된 프로세스뿐만 아니라 u
)사용자 측 출력x
터미널과 관련되지 않은 프로세스도 포함하여 추가 정보를 포함합니다 (Research Unix v3에는 처음 출시되었을 때 ps
이미 이 기능이 있었습니다 ). ~을 위한-x
w
넓은훨씬 나중에 추가되었습니다.
일반적으로 Linux 기반 시스템에서 볼 수 있는 구현은 procps
ps
서로 다른(종종 호환되지 않는) 구문, SysV 구문, BSD 구문 또는 훨씬 더 유사한 HP/UX 또는 AIX 구문을 조화시키려고 시도하므로 대부분의 구문이 지원되지만 예외 : 하나가 다른 하나와 충돌합니다.
시스템의 매뉴얼 페이지에서는 다양한 플래그의 의미에 대한 모든 세부 정보를 제공합니다.
명령줄 잘림 여부 ps -ef
는 시스템, 시스템 버전, 구현 및 버전 ps
, 출력이 터미널로 전송되는지 여부에 따라 크게 달라집니다. 일부 지원으로 -w
인해 더 넓어졌습니다. 일부 시스템(이전 버전의 Linux 포함)에서는 명령줄이 시스템 자체에 의해 잘리므로 크기가 매우 큰 경우 전체 명령줄을 쉽게 얻을 수 없습니다.
기본적으로 필수 필드를 지정하는 옵션도 있습니다.
ps -A -o pid -o args
예를 들어, ll 프로세스의 pid 및 명령줄에만 해당됩니다 A
(기술적으로는 프로세스가 실행한 마지막 명령에 전달되는 인수 목록이지만 많은 시스템에서 프로세스가 이를 임의로 변경할 수도 있음).
ps -A -o pid= -o args=
제목을 건너뛰세요.
모든 시스템이 동일한 필드 목록을 지원하는 것은 아닙니다.
스크립트에서는 다음을 고수하는 것이 좋습니다.POSIX 구문(선택적 기능은 피하세요)
특정 기준(명령줄 포함)을 기반으로 프로세스를 검색하려면 pgrep
( pkill
를 사용하여 종료)을 사용하세요. 이는 표준은 아니지만 일반적이며 핸들보다 사용하기 쉽습니다 ps
.