dmesg 输出中有一些令人讨厌的颜色。如何改变这个?查看 .Xresources 和 .bashrc,那里定义的颜色没有与我正在搜索的颜色相匹配。
答案1
dmesg
颜色可以使用定制terminal-colors.d
文件。您可以dmesg
通过创建名为 的文件来禁用颜色/etc/terminal-colors.d/dmesg.disable
,或者通过创建名为 的文件(/etc/terminal-colors.d/dmesg.scheme
每个颜色定义包含一行)来构建您自己的配色方案,例如
subsys red
将子系统前缀设置为红色。
如果您没有terminal-colors.d
目录,请先创建它:
sudo mkdir /etc/terminal-colors.d
看中的“颜色”部分man dmesg
有关支持的颜色名称列表,以及中的方案描述man terminal-colors.d
获取可用于颜色的值。要查看dmesg
默认颜色是什么,您必须查看其源代码,当前的默认值是:
static const struct dmesg_color colors[] =
{
[DMESG_COLOR_SUBSYS] = { "subsys", UL_COLOR_BROWN },
[DMESG_COLOR_TIME] = { "time", UL_COLOR_GREEN },
[DMESG_COLOR_TIMEBREAK] = { "timebreak",UL_COLOR_GREEN UL_COLOR_BOLD },
[DMESG_COLOR_ALERT] = { "alert", UL_COLOR_REVERSE UL_COLOR_RED },
[DMESG_COLOR_CRIT] = { "crit", UL_COLOR_BOLD UL_COLOR_RED },
[DMESG_COLOR_ERR] = { "err", UL_COLOR_RED },
[DMESG_COLOR_WARN] = { "warn", UL_COLOR_BOLD },
[DMESG_COLOR_SEGFAULT] = { "segfault", UL_COLOR_HALFBRIGHT UL_COLOR_RED }
};
答案2
对于许多已无故着色的工具,取消它们着色的最简单方法是将它们通过管道传输cat
。
$ dmesg | cat