我希望取消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
我不希望做的是:
top -u user | grep process_name
或
top -bp $(pgrep process_name) | do_something
我怎样才能做到这一点?
注意:我使用的是Ubuntu 12.04,顶级版本是3.2.8。
答案 0 :(得分:3)
它被称为“摘要区域”,我认为top
初始化没有办法禁用它们。
但是当top
正在运行时,您可以通过按 l , t , 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)
答案 1 :(得分:3)
今天遇到了这个问题。我有一个潜在的解决方案 - 当禁用摘要区域时,从顶部的交互模式创建一个顶级配置文件。由于在批处理模式下也会在启动时读取此文件,因此也会导致在批处理模式下禁用摘要区域。
按照以下步骤进行设置..
以互动模式启动顶部。
进入交互模式后,依次按“' l”,' m'停用摘要区域。和'
按' W' (大写)来编写你的顶级配置文件(通常是〜/ .toprc)
退出互动模式。
现在,当您以批处理模式运行顶部时,摘要区域将不会显示(!)
更进一步......
如果您在某些情况下只想要这个,并且大多数时候仍然想要摘要区域,则可以使用备用顶级配置文件。但是,AFAIK,使用备用配置文件的方式有点时髦。有几种方法可以做到这一点。我使用的方法如下:
创建顶级可执行文件的软链接。只要您对链接的位置具有写入权限,就不必以root身份完成...
ln -s /usr/bin/top /home/myusername/bin/omgwtf
通过输入链接的名称(' omgwtf')而不是' top'来启动顶部。您将处于正常的顶级交互模式,但是当您保存配置文件时,它将写入〜/ .omgwtfrc,只留下〜/ .toprc。
禁用摘要区域并像以前一样编写配置文件(按' l',' m',' t'和&#39 ; W&#39)
将来,当您准备在批处理模式下运行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
%
答案 2 :(得分:2)
如果您以批处理模式(-b -n1
)运行顶部,只需使用sed
删除顶部行:
top -b -n1 | sed 1,7d
这将删除顶部7个标题行,这些标题行仅输出并仅返回进程。
答案 3 :(得分:1)
这将转储输出,如果需要,可以将其重定向到任何文件。
top -n1 |grep -Ev "Tasks:|Cpu(s):|Swap:|Mem:"
答案 4 :(得分:1)
egrep
可能已经足够了,但我想补充说perl -lane
可以用闪电般的速度做这件事:
top -b -n 1 | perl -lane '/PID/ and $x=1; $x and print' | head -n10
这样你可能会忘记grep,sed,awk等的精确参数,因为perl通常比这些工具快得多。
答案 5 :(得分:1)
要监视特定进程,以下命令对我有用-
top -sbn1 -p $(pidof <process_name>) | grep $(pidof <process_name>)
要获取所有过程信息,可以使用以下命令-
top -sbn1|sed -n '/PID/,/^$/p'
答案 6 :(得分:0)
在Mac上,您不能使用其他许多答案中使用的-b
。
在这种情况下,命令将为top -n1 -l1 | sed 1,10d
仅抓取第一条过程行(及其标头),仅记录一次,而不是交互式,然后取消显示前10行的top命令的常规信息。