从顶部开始进行特定排序

从顶部开始进行特定排序

我想首先top将排序设置为驻留内存大小,而不是默认的 CPU 使用率。

我没有找到从命令行参数或启动文件执行此操作的方法。显然我也不能echo "Oq" | top,因为我会阻止top使用 tty。

有没有办法做到这一点?

更新:我top在Linux(最近的Ubuntu和Debian,3.x内核)上运行,安装为“procps 1:3.2.8-11ubun”,尽管我认为列排序功能可能非常跨平台。

答案1

top -M按常驻内存使用情况排序。

M 按常驻内存使用情况对任务进行排序。

这是我系统上的 top 版本。

top -v top:procps 版本 3.2.7

如果您的 Linux 发行版支持该-M标志,您可以按照上述方式使用它这里

但是,如果您top不支持该-M标志,您可以启动命令并通过键入检查排序字段top进入交互模式。 h(我认为不同发行版都是一样的)

在我的系统(而不是top我的系统版本)中,我可以键入FO选择 Q我的版本的排序字段和键top,让我可以对常驻内存进行排序。

如果您想保存配置,您可以执行 slm 提到的操作这里

保存配置

您可以使用Shift+W保存更改,使其成为默认值:

  W         Write configuration file

该文件存储在$HOME/.toprc$HOME/.config/procps/toprc(在 procps-ng 3.3.13 或更高版本中),如下所示:

$ more toprc 
RCfile for "top with windows"       # shameless braggin'
Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=1.000, Curwin=2
Def fieldscur=AEHIoqTWKNMBcdfgjpLrsuvyzX
    winflags=129016, sortindx=19, maxtasks=0
    summclr=2, msgsclr=5, headclr=7, taskclr=7
Job fieldscur=ABcefgjlrstuvyzMKNHIWOPQDX
    winflags=63416, sortindx=13, maxtasks=0
    summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=ANOPQRSTUVbcdefgjlmyzWHIKX
    winflags=65464, sortindx=13, maxtasks=0
    summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=ABDECGfhijlopqrstuvyzMKNWX
    winflags=65464, sortindx=12, maxtasks=0
    summclr=3, msgsclr=3, headclr=2, taskclr=7

有关详细信息,请参阅手册页的第 5 节“5. 文件”。

答案2

在我的 Linux 系统上top(procps-ng 版本 3.3.9)有一个-o开关:

   -o  :Override-sort-field as:  -o fieldname
        Specifies  the  name  of  the  field  on  which tasks will be
        sorted, independent of what is reflected in the configuration
        file.  You can prepend a '+' or '-' to the field name to also
        override the sort direction.  A leading '+' will force  sort‐
        ing  high  to  low,  whereas  a '-' will ensure a low to high
        ordering.

因此,top -o RES开始top按驻留内存大小排序。

答案3

你已经top -a使用了Linux。尝试检查 Unix 上的联机帮助页top -m。不确定我们是否在谈论相同的内存。

相关内容