如何抑制top命令的一般信息

sjs*_*sam 6 bash top-command

我希望使用a来压缩top命令的一般信息top parameter.

一般信息我的意思是以下内容:

top - 09:35:05 up  3:26,  2 users,  load average: 0.29, 0.22, 0.21
Tasks:   1 total,   0 running,   1 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.3%us,  0.7%sy,  0.0%ni, 96.3%id,  0.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3840932k total,  2687880k used,  1153052k free,    88380k buffers
Swap:  3998716k total,        0k used,  3998716k free,   987076k cached
Run Code Online (Sandbox Code Playgroud)

不想做的是:

top -u user | grep process_name
Run Code Online (Sandbox Code Playgroud)

要么

top -bp $(pgrep process_name) | do_something
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

注意:我在Ubuntu 12.04上,顶级版本是3.2.8.

Dav*_*rks 9

top如果您在批处理模式 ( ) 下运行-b -n1,只需使用以下命令删除标题行sed

top -b -n1 | sed 1,7d
Run Code Online (Sandbox Code Playgroud)

top这将删除仅输出和返回进程的前 7 个标题行。


hee*_*ayl 5

它被称为“摘要区域”,我认为在初始化时没有办法top禁用它们。

但在top运行时,您可以通过按lt、来禁用这些功能m

man top

 Summary-Area-defaults
  'l' - Load Avg/Uptime  On  (thus program name)
  't' - Task/Cpu states  On  (1+1 lines, see '1')
  'm' - Mem/Swap usage   On  (2 lines worth)
  '1' - Single Cpu       On  (thus 1 line if smp)
Run Code Online (Sandbox Code Playgroud)

  • 但我的目标是以批处理模式运行它。无论如何,感谢您重申我对此的结论。 (2认同)

Pap*_*Bob 5

今天遇到这个问题。我有一个潜在的解决方案 - 当摘要区域被禁用时,从顶部的交互模式中创建一个顶部配置文件。由于这个文件也是在批处理模式下在top启动时读取的,所以它也会导致在批处理模式下禁用摘要区域。

请按照以下步骤进行设置。

  1. 以交互模式启动 top。

  2. 进入交互模式后,依次按“l”、“m”和“t”禁用摘要区域。

  3. 按“W”(大写)写入顶级配置文件(通常为 ~/.toprc)

  4. 退出交互模式。

现在,当您以批处理模式运行 top 时,将不会出现摘要区域 (!)

再进一步...

如果您只需要在某些情况下使用它,并且大部分时间仍然需要摘要区域,则可以使用备用顶级配置文件。但是,AFAIK,让顶部使用备用配置文件的方式有点时髦。有几种方法可以做到这一点。我使用的方法如下:

  1. 创建指向顶级可执行文件的软链接。这不必以 root 身份完成,只要您对链接的位置具有写访问权限...

    ln -s /usr/bin/top /home/myusername/bin/omgwtf
    
    Run Code Online (Sandbox Code Playgroud)
  2. 通过键入链接的名称 ('omgwtf') 而不是 'top' 来启动 top。您将处于正常的 top 交互模式,但是当您保存配置文件时,它将写入 ~/.omgwtfrc,而将 ~/.toprc 单独保留。

  3. 禁用汇总区并写入与之前相同的配置文件(按'l'、'm'、't'和'W')

将来,当您准备好在批处理模式下运行没有摘要信息的 top 时,您必须通过您创建的链接名称调用 top。例如,

% omgwtf -usyslog -bn1
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
576 syslog    20   0  264496   8144   1352 S   0.0  0.1   0:03.66 rsyslogd
%
Run Code Online (Sandbox Code Playgroud)