
ps -Af 명령을 사용하여 원격으로 사용 중인 컴퓨터의 emacs 프로세스 수를 계산해야 합니다. 어디서부터 시작해야 할까요?
답변1
ps -Af
최선의 접근 방식은 아닙니다.
이 f
옵션은 불필요하며 emacs라는 사용자의 경우는 말할 것도 없고 emacs가 아닌 프로세스가 emacs 또는 이를 매개 변수 중 하나로 포함하는 문자열을 사용하는 경우 거짓 긍정을 트리거할 수 있습니다.
다음과 같은 더 간단한 명령을 사용하는 것이 좋습니다.
pgrep emacs | wc -l
답변2
넌 할 수있어ps -C emacs --no-heading | wc -l
ps -C command
명령 이름으로 프로세스 출력
편집: ps --help
매우 흥미롭습니다
답변3
Hennes가 말했듯이 " ps -AF | grep emacs | wc -l
"를 사용하여 이를 수행할 수 있습니다. 그러나 거기에도 자신만의 명령이 있을 것입니다. 이 명령을 제거하려면 " grep -v
"(또는 --inverted-match
)를 사용하여 계산하고 싶지 않은 명령을 필터링할 수 있습니다. 그러면 다음과 같이 보일 것입니다:ps -AF | grep emacs | grep -v grep | wc -l
답변4
첫 번째 원칙부터 시작하세요.
사용하라는 요청을 받은 명령이 정확히 무엇을 수행하는지, 그리고 지정된 옵션( -Af
)이 어떻게 작동하는지 설정하는 것부터 시작하십시오. 이렇게 하려면 다음을 읽어보세요 man ps
.
-A 모든 프로세스를 선택합니다.
-f 전체 형식 목록을 작성합니다. 이 옵션은 다른 많은 UNIX 스타일 옵션과 결합하여 추가 열을 추가할 수 있습니다.
따라서 시작점은 사용자를 위해 실행 중인 모든 프로세스의 출력이며 전체 형식으로 나열됩니다. 처리를 시도하기 전에 다음 명령을 실행하여 전체 출력을 확인하십시오.
ps -Af
프로세스 수를 계산하려면 emacs
피팅 도구를 통해 출력을 파이프하여 출력을 처리하거나 해당 일치 항목을 계산해야 합니다. grep
좋은 옵션이지만 효율성과 단순성을 위해 다음을 사용합니다 awk
.
ps -Af | awk '/emacs/ && !/awk/ { a++ } END { print a }'
이는 패턴을 검색하고 /emacs/
검색 자체의 패턴을 제외하고 !/awk/
일치 항목을 증가시킨 { a++ }
다음 총계를 인쇄합니다 { print a }
.
이는 단일 파이프만 필요하며 검색 프로세스를 카운트에 반환하지 않는 문제를 우아하게 처리합니다.