我试图弄清楚如何在 linux shell 中获得前 k 个进程。显然,我脑海中浮现的第一件事是top
,但它似乎没有任何参数来指定要打印的进程数。
使用批处理模式和迭代次数参数,我可以让它产生所有进程的一次迭代并存储输出,但我找不到将列表缩减为某个数字的方法。(当然,我可以获取整个列表并将其裁剪掉,但我使用它的系统有 27000 个进程正在运行,因此检索列表需要几秒钟)。
例子:
>top -b -n1
>... (lots more processes here)
>26416 mcm101 20 0 4188 176 96 S 0.0 0.0 0:00.00 character_count
>26604 root 20 0 180m 5684 3532 S 0.0 0.0 0:00.54 sshd
>26616 pwf7 20 0 105m 1792 1432 S 0.0 0.0 0:00.10 bash
我想要的是这样的:
>top k
>1 mcm101 20 0 4188 176 96 S 0.0 0.0 0:00.00 character_count
>2 pwf7 20 0 105m 1792 1432 S 0.0 0.0 0:00.10 bash
>... (more processes here)
>k root 20 0 180m 5684 3532 S 0.0 0.0 0:00.54 sshd
有谁知道如何使用top
或任何其他命令来实现此结果?