결과를 필터링해 보세요맨 위명령을 받은창에서 필터링을 누르고 o
여기 튜토리얼에 설명된 대로 필터를 입력합니다.http://man7.org/linux/man-pages/man1/top.1.html
COMMAND=iTerm2
하지만 예를 들어 다른 명령을 입력하면 invalid order
오류가 발생합니다.
문제의 애니메이션 GIF를 여기에서 볼 수 있습니다:https://i.stack.imgur.com/Qhhtl.jpg
- 운영 체제: Mac OS Catalina 버전: 10.15.2
답변1
o
필터가 켜져 있지 않음BSD 탑, 이것은 일종의입니다.
o Change the order in which the display is sorted. The sort key
names include cpu, res, size, time. The default is cpu.
원하는 방식으로 필터링할 수 있는 방법이 있는지 잘 모르겠습니다.
o
따라서 누른 다음 Enter를 누를 수 있지만 COMMAND
작동 COMMAND=iTerm2
하지 않습니다.
또는 단일 PID를 필터링하는 옵션을 top
사용하여 실행할 수 있지만 iTerm2는 여러 프로세스를 실행할 수 있습니다.-pid
top -pid $(pgrep iTerm2 | head -1)
답변2
Mac 터미널 Zsh에서 top 명령은 OP의 질문에서 알 수 있듯이 기존 Linux 구현과 많은 차이점이 있습니다. 모든 iTerm2 프로세스를 필터링하는 좋은 솔루션을 찾았습니다.
top -pid $(pgrep -d " -pid " iTerm2)
플래그로 구분된 PID 목록을 반환합니다 -pid
. 첫 번째 -pid
플래그는 기본 초기 PID를 포함합니다.
편집: 나는 이 방법을 더 쉽게 활용하고 싶었기 때문에 zsh 함수를 만들었습니다 topg
. 내 쉘 스크립트에 대한 피드백을 환영합니다. 기본적으로 [-g|--grep] 플래그가 추가된 상단 래퍼입니다. 수정하는 대로 업데이트를 게시하겠습니다.
사용법에 관해서는 공백으로 구분된 다양한 프로세스 이름의 문자열을 전달하거나 여러 플래그를 함께 추가할 수 있습니다. top이 응답하는 다른 명령은 전달됩니다.
사용 예:
topg -g ssh --grep firefox -g "WindowServer Gitify"
function topg () {
emulate -L zsh
zmodload zsh/zutil || return
# Default option values can be specified as (value).
local help filter_commands
zparseopts -D -F -K -a -- \
{h,-help}=help \
{g,-grep}+:=filter_commands || return
if (( $#help )); then
local top_help=`top -h`
local lines
lines=( ${(f)top_help} )
lines[1]=${lines[1]:gs/top/tops}
lines[3]=(${lines[3]}, "$(echo "\t\t")[-g <pattern> [<pattern2>] | --grep <pattern> [<pattern2>]]")
print -rC1 -- \
${(F)lines}
return
fi
if (( $#filter_commands )); then
local -a array
local flag vals
for flag vals in "${(@)filter_commands}"; do
array+=(${=vals})
done
eval "top -pid $(pgrep -d " -pid " "${(@)array}") "${@:1}""
return
else
eval "top "${@:1}""
return
fi
}
내가 말했듯이, 나는 어떤 피드백이라도 환영합니다.