Mac 终端命令到 geektools

Mac 终端命令到 geektools

我刚刚得到 Geektools,并且试图让 shell geeklettop -F -R -o cpu以与终端中显示相同的方式显示命令。通过 Google,我找到了这个命令来显示一组系统信息:

uptime | awk '{print "UPTIME : " $3 " " $4 " " $5 " " }'; top -l 1 | awk '/PhysMem/ {print "RAM : " $8 " "}' ; top -l 2 | awk '/CPU usage/; NR; 5 {printf "CPU" $6, $7=":", $8, $9="user ", $10, $11="sys ", $12, $13}'

这包含的 CPU 信息比我想要/需要的要多得多。我希望用更清晰的第一个命令替换第二个命令中的 CPU 信息,但我不知道如何让它正确显示。

答案1

尝试一下ps aux。它会显示一个按 CPU 使用率排序的干净输出。如果你想要更简洁的输出,可以尝试一下

ps aux | awk '{print $3 "       " $11}';

要理解此命令,只需运行ps aux,然后查看输出。变量$3指的是输出的第三列。您可以通过在命令中添加或删除这些变量来从 GeekTool 中添加或删除列。引号之间的大量空格只会更改输出中列之间的间距。

如果您需要更多选项,请输入 查看手册页man ps。(您也可以这样做top。如果您想知道为什么我没有建议使用 进行修改top,这是由于以下问题:

GeekTool 的问题在于它需要静态命令的输出。top可以使用 使其给出静态输出top -l 1,但因为它只进行一次采样,所以无法获取 CPU 使用率。(为此,它至少需要两个。)您会注意到,如果您运行top -l 1,您的 CPU 使用率将显示为 0。要纠正该问题,您可以使用top -l 2。但是,这会显示两次系统使用情况,并且只有第二组数据是正确的。这对 GeekTool 可能没什么帮助。如果您仍然确实想使用top,可以尝试以下命令:top -l 2 -o cpu -R -stats cpu,command。但是,它只会显示不正确的数据,因为它首先打印了该数据。

相关内容