bash 是否有颜色命令,如 MS-Windows CMD 中所见?

bash 是否有颜色命令,如 MS-Windows CMD 中所见?

微软有一个命令cmd,叫做color.我知道,在 中bash,有一些特殊字符允许您在回显期间更改文本颜色。我也知道,在 ubuntu 中,您可以编辑终端的参数,在配置中设置“样式”,编辑它并在菜单下用鼠标应用它。

我问的是,debian、ubuntu 和 centOS 下是否存在一些非常简单的东西,例如:

color 1b

这样控制台就会从:

在此输入图像描述

在此输入图像描述

答案1

有多种方法可以做到这一点。

一种方法是使用tput

tput setab 4将背景颜色设置为蓝色。要设置前景色,请使用tput setaf

另一种方法是使用原始 ANSI 转义,这里有一个很好的文档:https://misc.flogisoft.com/bash/tip_colors_and_formatting

答案2

setterm可以使用该命令:

setterm -background blue

或者

setterm -ba blue

它使用标准 ECMA-48 控制序列,并且实际上可以与许多(但不是全部)终端仿真器一起使用。 (与手册相反,它实际上并未使用 terminfo 作为此选项。)ECMA-48 包含一个概念默认颜色对于背景和前景,可以将其更改为default

setterm --background default

要更改默认颜色,请添加以下--store选项(不过,它会发出仅适用于 Linux 内核的内置终端仿真器的控制序列):

setterm --background red --store

请参阅man settermsetterm --help了解更多详细信息。

答案3

使用xterm类似的终端模拟器,您可以使用:

xtermcontrol --bg blue

blue或 所支持的任何颜色规格XParseColor(3x))。

这实际上发送了一个\33]11;blue\7序列,因此您可以执行相同的操作:

printf '\33]11;%s\a' blue

操作系统命令,位于 XTerm 控制序列文档中了解详情。

相关内容