如何在Mac终端中找到具有“顶部”的特定进程

时间:2011-09-21 13:58:39

标签: macos grep

我曾尝试过top | grep skype,但它不起作用。我试图通过名字找到一个特定的过程。

8 个答案:

答案 0 :(得分:55)

请改用:ps -ax | grep -i skype

答案 1 :(得分:10)

使用:top -l 0 | grep Skype

0代表无限样本。您还可以将样本数限制为正数。

答案 2 :(得分:6)

如果你真的喜欢top,你可以尝试:

top -b -n 1 | grep skype

e.g。

kent$  top -b -n 1 |grep dropbox
 4039 kent      20   0  184m  14m 5464 S    0  0.4   0:58.30 dropbox

答案 3 :(得分:6)

在Linux上,top命令支持-p选项来监视特定的PID。在MacOS上,-p选项改为-pid

# Get the PID of the process
pgrep Skype

# Then
top -pid <put PID here>

# Or more succinctly:
top -pid `pgrep Skype`

如果您经常这样做,可以将其转换为函数并将其添加到~/.bash_profile

# Add this to ~/.bash_profile
function topgrep() {
    if [[ $# -ne 1 ]]; then 
        echo "Usage: topgrep <expression>"
    else 
        top -pid `pgrep $1`
    fi
}

现在您可以简单地使用topgrep Skype,它会像往常一样运行,但它只会显示与expression匹配的流程。

答案 4 :(得分:2)

使用ps代替top。

答案 5 :(得分:1)

现在您可以使用pgrep skype来查找流程。

答案 6 :(得分:0)

我建议使用ps -ax | less

less内,您可以输入 / skype 输入来搜索名称中包含“skype”的进程。

答案 7 :(得分:0)

在MacOSX Mojave上测试。它的工作方式与linux有所不同。

top -pid不需要用逗号分隔的pid列表,它只需要一个pid。所以我不得不稍微修改一下才能使用几个pid。

top -pid $(pgrep -d' -pid ' -f Python)

首先过滤所有Python进程。本质上是这样的:

top -pid 123 -pid 836 -pid 654