Cap*_*ton 5 top environment-variables
我似乎无法在 Internet 上找到此环境变量的任何示例,该变量top
显然会读取并用于显示颜色。
我将如何正确设置此变量以便top
在其输出中使用替代颜色?
我有 Solaris top
3.5beta9 版。
此中的 TOPCOLORS 变量top
(也称为unixtop)在您使用的版本中不可用。它首次出现在此实用程序的 3.6 版中,如自述文件的颜色部分所述。出于某种原因,通常的 BSD 似乎不包括 top 的更新版本(FreeBSD 9.1 有 3.5beta12)。
如果您可以安装或编译更新的版本,手册页应该为您提供有关如何设置颜色的更多信息。在 3.8beta1 版本中,这就是它打印的内容:
指定要使用的颜色和应使用它们的条件。目前,只有摘要显示区域中的数字可以着色。在未来的版本中,还可以在过程显示区域中突出显示数字。环境变量是指定颜色的唯一方法:没有等效的命令行选项。注意环境变量TOPCOLOURS也是可以理解的。英式拼写优先。颜色的使用仅适用于理解和处理 ANSI 颜色转义序列的终端。
环境变量是一系列颜色规范,以冒号分隔。每个规范采取的形式tag=min,max#code
,其中
tag
是要检查的值的名称,min
并max
指定值的范围,以及code
是 ANSI 颜色代码。可以列出多个颜色代码并用分号分隔。缺失min
意味着可能的最低值(通常为 0),缺失max
意味着无穷大。逗号必须始终存在。
当指定平均负载的数字时,它们应该乘以 100。例如,规范:
1min=500,1000#31
表示 5 到 10 之间的 1 分钟平均负载应显示为红色。颜色属性可以组合。例如,规范:
5min=1000,#37;41
表示高于 10 的 5 分钟平均负载应显示为红色背景上的白色字符。一个名为的特殊标签
header
用于控制过程显示标题的颜色。应指定没有下限和上限,特别是header=,#
后跟 ANSI 颜色代码。
您可以使用该-T
选项查看此顶部安装识别的颜色代码列表。这还将显示用于颜色高亮的当前测试集,如环境中所指定。
(手册页摘录结束)
在color.h
从源代码文件列表中的程序理解标记和代码。标签是:
/*
* These color tag names are currently in use
* (or reserved for future use):
*
* cpu, size, res, time, 1min, 5min, 15min, host
*/
Run Code Online (Sandbox Code Playgroud)
颜色是ANSI颜色:
/*
* Valid ANSI values for colors are:
*
* 0 Reset all attributes
* 1 Bright
* 2 Dim
* 4 Underscore
* 5 Blink
* 7 Reverse
* 8 Hidden
*
* Foreground Colours
* 30 Black
* 31 Red
* 32 Green
* 33 Yellow
* 34 Blue
* 35 Magenta
* 36 Cyan
* 37 White
*
* Background Colours
* 40 Black
* 41 Red
* 42 Green
* 43 Yellow
* 44 Blue
* 45 Magenta
* 46 Cyan
* 47 White
*/
Run Code Online (Sandbox Code Playgroud)
使用以下设置,您可以了解可能性(此处为在 FreeBSD 上编译的顶级 3.8beta1):
export TOPCOLORS="header=,#1\
:1min=,399#32:1min=400,799#33:1min=800,#31\
:5min=,299#32:5min=300,599#33:5min=600,#31\
:15min=,199#32:15min=200,399#33:15min=400,#31\
:cpu.user=,9#32:cpu.user=10,49#33:cpu.user=50,#31\
:cpu.system=,9#32:cpu.system=10,49#33:cpu.system=50,#31\
:cpu.interrupt=,9#32:cpu.interrupt=10,49#33:cpu.interrupt=50,#31"
Run Code Online (Sandbox Code Playgroud)
调用 totop -T
将直接显示 top 是否理解您声明的颜色设置。它还将列出所有理解的标签(在我的情况下与color.h
文件内容有些不同)。
在不同的 UNIX 系统上,使用了替代方法。在 Linux 下,您通常会发现该top
实用程序来自procps包。您还可以安装htop,这是一个很好的多彩替代方案,它也可用于OSX和 FreeBSD(它依赖于 Linux 层),但 AFAIK 不在 Solaris 上。