我曾尝试过top | grep skype
,但它不起作用。我试图通过名字找到一个特定的过程。
答案 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