Debian - 批处理模式下的 top(1),但按 PID 排序

Debian - 批处理模式下的 top(1),但按 PID 排序

我想使用 以批处理/非交互模式运行 top -b。但是我希望输出按 PID 排序。哪个命令行选项可以做到这一点?我使用的是 Debian Lenny 和-o pid此处的选项 (http://www.unixtop.org/man.shtml)不起作用。

答案1

~/.toprc对我来说,在没有或/etc/toprc运行3.2.8的 Ubuntu 系统上top,主要排序是%CPU,次要排序是PID

设置批处理模式的top排序依据:PID

如果你还没有~/.toprc

  • top以交互模式启动。
  • 按。这将使用当前设置W写入新文件。~/.toprc
  • 退出top(按q)。

要创建必要的配置文件:

  • 备份您的文件~/.toprc。您将在后续步骤中需要它。我们将其命名为~/.toprc.ORIG(如果您愿意,可以选择其他名称)。
  • top以交互模式启动。
  • F,然后a,然后按 Enter。这将选择PID为排序字段。
  • R。这将反转排序,使其按升序排列。
  • 按。这将使用当前设置W写入新文件。~/.toprc
  • 退出top(按q)。
  • mv ~/.toprc ~/toprc.PIDSORT(或选择你喜欢的名字)
  • 将备份复制回原始文件(cp ~/.toprc.ORIG ~/.toprc)。

要使用您创建的文件来输出top -b -n1按排序的内容PID,请创建如下脚本:

#!/bin/bash
cp "$HOME/.toprc.PIDSORT" "$HOME/.toprc"
top -b -n1 > /path/to/outputfile
cp "$HOME/.toprc.ORIG" "$HOME/.toprc"

答案2

您可以尝试通过排序运行输出,例如

top -b -n1 | sort -b -n

这会按数字对默认输出进行排序,因此按 PID 排序。但它确实会打乱标题行的顺序。

相关内容