如何在命令行上更改此蓝色文本的颜色?

如何在命令行上更改此蓝色文本的颜色?

我知道这个问题已被问过多次,但我没有找到其他问题的答案。

这是一张图片来说明我的观点:

在此输入图像描述

你能在不眯眼的情况下读懂蓝线吗?不?我也不。

我正在完整详细模式下运行 ansible playbook,需要使用包含 50 多个任务的 playbook 来读取这些日志。

谁能解释一下我怎样才能改变这些颜色?

我查看了一些我没有找到解决方案的问题:

答案1

您可以指定在 ansible 中使用的颜色(至少在 ansible 2.3.1.0 中可以)。打开 ansible.cfg 并转到显示 [colors] 的部分,您应该看到类似这样的内容

[colors]
#highlight = white
#verbose = blue
verbose = green
#warn = bright purple
#error = red
#debug = dark gray
#deprecate = purple
#skip = cyan
#unreachable = red
#ok = green
#changed = yellow
#diff_add = green
#diff_remove = red
#diff_lines = cyan

只需取消注释您要更改的文本类型并指定您想要的颜色即可。

答案2

如果您使用 putty 作为 ssh 客户端,则只需更改其外观设置即可。

更改设置 -> 窗口 -> 颜色。在标题为“选择要调整的颜色:”的框中,选择“ANSI 蓝色”以更改颜色。

答案3

大多数应用坚持使用 16 种颜色(8 种深色和 8 种亮色),称为ANSI 颜色,因为这是几乎所有终端都支持的共同点。 ANSI 标准没有指定确切的阴影,它只是说“黑色”、“蓝色”、“红色”等。默认的蓝色阴影通常是纯蓝色,很难在 RGB 显示器的黑色背景上读取,但是好的终端模拟器可以让您配置颜色。在颜色中添加一点红色和绿色通常足以使其可读但仍然清晰。

使用 xterm、PuTTY 和其他兼容终端,您可以通过发出正确的命令来配置终端内运行的应用程序的颜色转义序列。在启动应用程序之前尝试在终端中运行此命令:

## Set the blue hue (color 4) to CornflowerBlue
printf '\e]4;4;#6495ed\a'

如果您在打开终端时运行 bash,请将其放入您的.bashrc.如果 ansible 应用程序自行打开终端,请使其将此转义序列打印到终端。

或者,许多终端允许您在其配置中配置颜色,例如通过 Xterm 中的 X 资源。检查终端仿真器的文档。

答案4

不,从来没有能够在黑色上读取蓝色(而且生命太短,无法在我可能使用的每个终端或控制台组合中进行颜色自定义),因此我默认禁用颜色。对于xterm.Xdefaults条目为:

XTerm*colorMode:false

创造奇迹;否则,如果没有办法消除终端中的颜色,则可能需要针对特定​​应用程序进行黑客攻击;一个快速的方法是使用 shell 函数并将输出通过管道传输到与终端cat断开连接的位置,并可能导致它不发送垃圾邮件颜色:ansible

function ansible-playbook {
    command ansible-playbook "$@" | cat
}

另一个麻烦是摆弄TERM, 例如(这往往适用于较旧的系统,但是现代系统上TERM=vt220 ansible-playbook ...存在颜色垃圾邮件,并且在不知道您要进入的情况下更改可能是一个坏主意)。TERM=vt220TERM

然而!从源码中的一些探索来看ansible,ansible 没有 bug,并且确实提供了一个ANSIBLE_NOCOLOR=1环境变量:

ANSIBLE_NOCOLOR=1 ansible-playbook ...

相关内容