
원격으로 사용하고 있는 컴퓨터의 emacs 프로세스 수를 계산하려면 ps -Af 명령을 사용해야 합니다. 어디서부터 시작해야 하나요?
답변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 }
.
이는 파이프라인만 필요하며 검색 프로세스에서 개수를 반환하지 않는 문제를 우아하게 처리합니다.