我可以通过首选项更改颜色,但是如何通过命令行更改终端的背景颜色和文本颜色?
dconf。我之前已经写过类似问题的答案:askubuntu.com/a/628129/295286
                \033[00;34mFOO\033[00m
                我可以通过首选项更改颜色,但是如何通过命令行更改终端的背景颜色和文本颜色?
dconf。我之前已经写过类似问题的答案:askubuntu.com/a/628129/295286
                \033[00;34mFOO\033[00m
                Answers:
在某些XTerm / ANSI兼容终端(如xterm和gnome-terminal)上,可以使用比默认8/16色调色板更大的调色板(例如,使用88色,256色或16777216色(RGB)调色板)设置颜色。 ; xterm和都gnome-terminal支持256色和16777216色(RGB)调色板);请注意,shell可能会覆盖此设置(例如对于就是这种情况zsh)。
这是一个脚本,用于列出256色调色板中的颜色以及在支持256色调色板的XTerm / ANSI兼容终端中的ANSI颜色代码:
#!/bin/bash
for((i=16; i<256; i++)); do
    printf "\e[48;5;${i}m%03d" $i;
    printf '\e[0m';
    [ ! $((($i - 15) % 6)) -eq 0 ] && printf ' ' || printf '\n'
done
根据您要将颜色应用于前景还是背景,请在以下命令中分别使用或<fg_bg>值:3848
printf '\e[<fg_bg>;5;<ANSI_color_code>m'
例如,要将前景色(<fg_bg>= 38)设置为红色(<ANSI_color_code>= 196),将背景色(<fg_bg>= 48)设置为黑色(<ANSI_color_code>= 0):
printf '\e[38;5;196m Foreground color: red\n'
printf '\e[48;5;0m Background color: black\n'
有必要重新绘制提示printf '\e[K',以使背景色适用于整行,并使前景色适用于光标:
在兼容的终端中使用RGB值代替ANSI颜色代码可以完成相同的操作;根据是要将颜色应用于前景还是背景,请在以下命令中分别使用或<fg_bg>值:3848
printf '\e[<fg_bg>;2;<R>;<G>;<B>m'
例如,要将前景色(<fg_bg>= 38)设置为红色(<R>= 255,<G>= 0,<B>= 0),将背景色(<fg_bg>= 48)设置为黑色(<R>= 0,<G>= 0,<B>= 0):
printf '\e[38;2;255;0;0m Foreground color: red\n'
printf '\e[48;2;0;0;0m Background color: black\n'
同样,有必要使用重绘提示printf '\e[K',以使背景色应用于整行,并使前景色应用于光标:
使用这两种方法,都可以printf '\e[0m'用来重置所有属性:
xterm并gnome-terminal识别\ E [38/48; 2; R; G;家蚕真彩转义序列; 但是,xterm将实际颜色四舍五入到其256色调色板中的最近值。gnome-terminal显示转义序列中给出的确切真实颜色。
                    xterm),如果光标恰好位于最右边(可视地显示在最右边的列中,但由于已经在最右边的列中打印了一个字符,从逻辑上讲已经超出了该范围),则最后一个字母将被剥离。参见例如bugzilla.gnome.org/show_bug.cgi?id=740789或savannah.gnu.org/bugs/?36831。
                    在此页面上找到的信息,不包括预览列:
序列由转义字符(通常由“ ^[”或“ <Esc>”表示)以及其他一些字符组成:“ ^[FCm”(FC以下项目符号列表中的数字之一)。
在中bash,Esc代码可以是以下之一:
\e\033 (八进制)\x1B (十六进制)注意1: “ \e[0m”序列删除所有属性(格式和颜色)。在每个彩色文本的末尾添加它可能是一个好主意。
注意2:前景色和背景色可能会有所不同,具体取决于终端的配置,并非所有颜色都受支持。
0:重置/删除所有修改器,前景和背景属性: echo -e "\e[0mNormal Text"1:粗体/明亮: echo -e "Normal \e[1mBold"2:昏暗: echo -e "Normal \e[2mDim"4:下划线: echo -e "Normal \e[4mUnderlined"5:闪烁(除了XTerm以外,在大多数终端中不起作用): echo -e "Normal \e[5mBlink"7:反转/反转: echo -e "Normal \e[7minverted"8:隐藏(对敏感信息有用): echo -e "Normal \e[8mHidden Input"21:重置/删除粗体/明亮: echo -e "Normal \e[1mBold \e[21mNormal"22:重置/删除暗淡: echo -e "Normal \e[2mDim \e[22mNormal"24:重置/删除下划线: echo -e "Normal \e[4mUnderlined \e[24mNormal"25:重置/删除闪烁: echo -e "Normal \e[5mBlink \e[25mNormal"27:重置/删除反向/反转: echo -e "Normal \e[7minverted \e[27mNormal"28:重置/删除隐藏的内容: echo -e "Normal \e[8mHidden \e[28mNormal"39:默认值(通常是绿色,白色或浅灰色): echo -e "Default \e[39mDefault"30:黑色:echo -e "Default \e[30mBlack"(最好具有背景颜色组合:   echo -e "Default \e[30;107mBlack on white")31:红色(请勿与绿色背景一起使用)32: 绿色33: 黄色34: 蓝色35:洋红色/紫色36:青色37: 浅灰90: 深灰色91: 红灯92:浅绿色93:浅黄色94: 浅蓝95:浅洋红色/粉红色96:浅青色97:白色49:默认背景色(通常为黑色或蓝色)40: 黑色41:红色42: 绿色43: 黄色44: 蓝色45:洋红色/紫色46:青色47:浅灰色(请勿与白色前景一起使用)100:深灰色(请勿与黑色前景一起使用)101: 红灯102:浅绿色(请勿与白色前景一起使用)103:浅黄色(请勿与白色前景一起使用)104:浅蓝色(请勿与浅黄色前景一起使用)105:浅洋红色/粉红色(请勿与浅色前景一起使用)106:浅青色(请勿与白色前景一起使用)107:白色(请勿与浅色前景一起使用)要同时设置前景色和背景色,请使用the form echo -e "\e[S;FG;BGm"。例如:(echo -e "\e[1;97;41m"红色背景上的加粗白色前景)
有关256种颜色的选择,请参见源页面。
如果要偶然更改颜色:
您可以使用setterm命令:
setterm -term linux -back <background_colour> -fore <text_color> -clear
从颜色中,您可以选择(前后和背景):
black|blue|green|cyan|red|magenta|yellow|white|default
更多选项:
setterm -help
在14.04中,我没有找到dconf用于设置颜色或终端的选项。但是,您可以使用gconftool
您首先需要获取您的个人资料名称:
gconftool-2 --get /apps/gnome-terminal/global/profile_list
然后,设置个人资料的文本颜色:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/foreground_color" --type string "#FFFFFF"
例如将文本颜色设置为白色
与背景色相同:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string "#000000"
例如将背景色设置为黑色
或者,要设置颜色的名称,您可以简单地在与setterm命令相同的调色板中使用white或green,例如:
gconftool-2 --set "/apps/gnome-terminal/profiles/<profile_name>/background_color" --type string black
dconf write /org/gnome/terminal/legacy/profiles:/:<profile_id>/background-color "'rgb(0,0,0)'"。
                    gconftool-2(为Ubuntu 14.04,也许如下几个版本),或dconf或gsettings对Ubuntu的变化GNOME终端的设置新的版本,并采取立即生效的所有的标签和相同的配置文件的窗口。我不认为OP正在寻找这种行为。
                    有关将前景或背景切换为调色板的特定颜色,或在某些终端中甚至切换为直接RGB颜色的信息,请参见kos的答案。这样的序列效果一直持续到选择了其他颜色(或将其恢复为默认颜色)为止。
某些终端仿真器支持的另一种方法是使用OSC 10/11转义序列重新定义终端的默认前景色和背景色的确切RGB值:
echo -ne '\e]10;#123456\e\\'  # set default foreground to #123456
echo -ne '\e]11;#abcdef\e\\'  # set default background to #abcdef
这可能会持续更长的时间(直到被另一个OSC 10/11覆盖或通过OSC 110/111重置),但是与dconf方法不同,这仍然仅影响当前终端。