linux字体颜色设置

shell中设置文字输出的颜色及字体格式

ANSI控制码

简介

ANSI控制码用于在字符显示系统中控制光标移动和字符色彩等,常用于BBS系统中。

ANSI ESCAPE SEQUENCES又称为VT100系列控制码,国内译为ANSI控制码。顾名思义,需要VT100系列终端的支持,当然现在已经不在局限于VT100了,包括xterm,linux都能很好完成。ANSI控制码依赖终端,不是依赖语言,所以在shell,perl,c里应用均没有问题。

ANSI控制码开始的标志都为ESC[,ESC对应ASCII码表的033(八进制),linux命令echo用-e启用转义,\033来输入ESC,\033[31m即为ESC[31m。

 

格式

echo:-e 用来开启echo中的转义,\e 或 \033 来输出Esc符号

格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"

注意m后面紧跟字符串。

 

ANSI控制码

\33[0m 关闭所有属性 
\33[1m 设置高亮度
\33[4m 下划线 
\33[5m 闪烁 
\33[7m 反显 
\33[8m 消隐 
\33[30m -- \33[37m 设置前景色(字体色)30:黑 31:红     32:绿 33:黄    34:蓝色 35:紫色 36:深绿 37:白色
\33[40m -- \33[47m 设置背景色                  40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色
\33[nA 光标上移n行 
\33[nB 光标下移n行 
\33[nC 光标右移n行 
\33[nD 光标左移n行 
\33[y;xH设置光标位置 
\33[2J 清屏 
\33[K 清除从光标到行尾的内容 
\33[s 保存光标位置 
\33[u 恢复光标位置 
\33[?25l 隐藏光标 
\33[?25h 显示光标

显示字元属性控制

[n1;n2;......m

Ⅰ设定显示字元的属性状态;

Ⅱ若有两个以上的属性状态要设定则以分号将代码(n1;n2;..)隔开;

Ⅲ除非重新设定,否则原设定之属性一直被保留;

1、Linux中设置文本颜色及背景色

Shell 使用 ANSI 转义码 (ANSI escape codes) 进行颜色输出。转义序列颜色输出表如下

颜色

前景色(字体色)

背景色

黑色 (Black)

30

40

红色 (Red)

31

41

绿色 (Green)

32

42

黄色 (Yellow)

33

43

蓝色 (Blue)

34

44

紫红色 (Magenta)

35

45

青色 (Cyan)

36

46

白色 (White)

37

47

echo -e "\033[颜色值m 文本"
     
     

这句代码中\033[ 作为转义序列的开始,你也可以使用 "\e[" 颜色值处设定前景色值。m 终止转义序列,后面紧跟着就是生效的文本。echo 需要 -e 来开启转义序列。可以用 printf 代替 echo。

printf  "\e[颜色值m 文本\n"
     
     

2、shell中设置字体颜色及背景实例

例1:打印蓝色文本(两种方法)


     
     
  1. echo -e "\033[34m Hello World"
  2. printf "\e[34m Hello World\n"

但是这样执行之后,会使得其后面的文本输出都是蓝色,连命令提示符都是蓝色。要使其返回颜色使用 \033[0m。

使用不同的转义序列组合来达到不同的效果,如下面加上背景色的显示:

echo -e "\033[前景色值;背景色值m 文本\033[0m"
     
     

前景色值和背景色值使用分号间隔,不分先后,因为两种值的颜色范围不一样,比如 黑色 30 40 。另外分开写同样生效,如 \033[44m\033[32m

3、Linux中设置字体属性(加粗、闪烁、下划线等)

转义序列还可以设置文本在显示屏上显示的方式,如是否加粗等,如下表:

ANSI 码

含义

0

常规文本

1

粗体文本

4

含下划线文本

5

闪烁文本

7

反色(补色)文本

加粗属性合并后,有些变化。如下表:

关闭加粗

颜色

开启加粗

颜色

0;30

黑 (Black)

1;30

深灰 (Dark Gray)

0;31

红 (Red)

1;31

深红 (Dark Red)

0;32

绿 (Green)

1;32

深绿 (Dark Green)

0;33

黄 (Yellow)

1;33

亮黄 (Yellow)

0;34

蓝 (Blue)

1;34

深蓝 (Dark Blue)

0;35

紫红 (Magenta)

1;35

暗紫红 (Dark Magenta)

0;36

青 (Cyan)

1;36

深青 (Dark Cyan)

0;37

浅   灰(White)

1;37

白 (White)

特效可以叠加,需要使用“;”隔开,例如:闪烁+下划线+白底色+黑字为   \033[5;4;47;30m闪烁+下划线+白底色+黑字为\033[0m

4、shell脚本实现各种字体颜色及背景设置


     
     
  1. #!/bin/bash
  2. #
  3. #下面是字体输出颜色及终端格式控制
  4. #字体色范围:30-37
  5. echo -e "\033[30m 黑色字 \033[0m"
  6. echo -e "\033[31m 红色字 \033[0m"
  7. echo -e "\033[32m 绿色字 \033[0m"
  8. echo -e "\033[33m ×××字 \033[0m"
  9. echo -e "\033[34m 蓝色字 \033[0m"
  10. echo -e "\033[35m 紫色字 \033[0m"
  11. echo -e "\033[36m 天蓝字 \033[0m"
  12. echo -e "\033[37m 白色字 \033[0m"
  13. #字背景颜色范围:40-47
  14. echo -e "\033[40;37m 黑底白字 \033[0m"
  15. echo -e "\033[41;30m 红底黑字 \033[0m"
  16. echo -e "\033[42;34m 绿底蓝字 \033[0m"
  17. echo -e "\033[43;34m 黄底蓝字 \033[0m"
  18. echo -e "\033[44;30m 蓝底黑字 \033[0m"
  19. echo -e "\033[45;30m 紫底黑字 \033[0m"
  20. echo -e "\033[46;30m 天蓝底黑字 \033[0m"
  21. echo -e "\033[47;34m 白底蓝字 \033[0m"
  22. #控制选项说明
  23. #\033[0m 关闭所有属性
  24. #\033[1m 设置高亮度
  25. #\033[4m 下划线
  26. echo -e "\033[4;31m 下划线红字 \033[0m"
  27. #闪烁
  28. echo -e "\033[5;34m 红字在闪烁 \033[0m"
  29. #反影
  30. echo -e "\033[8m 消隐 \033[0m "
  31. #\033[30m-\033[37m 设置前景色
  32. #\033[40m-\033[47m 设置背景色
  33. #\033[nA光标上移n行
  34. #\033[nB光标下移n行
  35. echo -e "\033[4A 光标上移4行 \033[0m"
  36. #\033[nC光标右移n行
  37. #\033[nD光标左移n行
  38. #\033[y;xH设置光标位置
  39. #\033[2J清屏
  40. #\033[K清除从光标到行尾的内容
  41. echo -e "\033[K 清除光标到行尾的内容 \033[0m"
  42. #\033[s 保存光标位置
  43. #\033[u 恢复光标位置
  44. #\033[?25| 隐藏光标
  45. #\033[?25h 显示光标
  46. echo -e "\033[?25l 隐藏光标 \033[0m"
  47. echo -e "\033[?25h 显示光标 \033[0m"

5、使用echo让字符串显示不同颜色

下面的命令可写入脚本执行,根据实际情况替换需要改变颜色的文本。


     
     
  1. echo -e "\033[30m 黑色字 可替换部分 \033[0m"
  2. echo -e "\033[31m 红色字 可替换部分 \033[0m"
  3. echo -e "\033[32m 绿色字 可替换部分 \033[0m"
  4. echo -e "\033[33m ×××字 可替换部分 \033[0m"
  5. echo -e "\033[34m 蓝色字 可替换部分 \033[0m"
  6. echo -e "\033[35m 紫色字 可替换部分 \033[0m"
  7. echo -e "\033[36m 天蓝字 可替换部分 \033[0m"
  8. echo -e "\033[37m 白色字 可替换部分 \033[0m"

6、通过定义变量的方式给字体加颜色


     
     
  1. #!/bin/bash
  2. #通过变量给字体加颜色
  3. RED_COLOR= '\E[1;31m'
  4. GREEN_COLOR= '\E[1;32m'
  5. YELLOW_COLOR= '\E[1;33m'
  6. BLUE_COLOR= '\E[1;34m'
  7. PINK_COLOR= '\E[1;35m'
  8. RES= '\E[0m'
  9. echo -e "${RED_COLOR}=====红色可替换部分=====${RES}"
  10. echo -e "${GREEN_COLOR}=====绿色可替换部分=====${RES}"
  11. echo -e "${YELLOW_COLOR}=====×××可替换部分=====${RES}"
  12. echo -e "${BLUE_COLOR}=====蓝色可替换部分=====${RES}"
  13. echo -e "${PINK}=====粉色可替换部分=====${RES}"

7、开发一个给输出内容加颜色的函数(也可以加背景颜色)

在脚本中传2个参数,给指定内容(第一个参数),加指定颜色(第二个参数)


     
     
  1. #!/bin/bash
  2. #通过变量给字体加颜色
  3. #这里定义一个COLOR_1()函数,后面如果想改变字体颜色直接调用即可
  4. COLOR_1(){
  5. RED_COLOR= '\E[1;31m'
  6. GREEN_COLOR= '\E[1;32m'
  7. YELLOW_COLOR= '\E[1;33m'
  8. BLUE_COLOR= '\E[1;34m'
  9. PINK_COLOR= '\E[1;35m'
  10. RES= '\E[0m'
  11. #这里判断传入的参数是否不等于2个,如果不等于2个就提示并退出
  12. if [ $# -ne 2 ]; then
  13. echo "Usage $0 content {red|yellow|blue|green|pink}"
  14. exit
  15. fi
  16. case "$2" in
  17. red|RED)
  18. echo -e "${RED_COLOR}$1${RES}"
  19. ;;
  20. yellow|YELLOW)
  21. echo -e "${YELLOW_COLOR}$1${RES}"
  22. ;;
  23. green|GREEN)
  24. echo -e "${GREEN_COLOR}$1${RES}"
  25. ;;
  26. blue|BLUE)
  27. echo -e "${BLUE_COLOR}$1${RES}"
  28. ;;
  29. pink|PINK)
  30. echo -e "${PINK_COLOR}$1${RES}"
  31. ;;
  32. *)
  33. echo -e "请输入指定的颜色代码:{red|yellow|blue|green|pink}"
  34. esac
  35. }
  36. COLOR_1 "程序安装报错!" red
  37. COLOR_1 "程序安装成功!" green
  38. COLOR_1 "输出相关注释信息" blue

 转自:

https://blog.51cto.com/longlei/2357898

### 回答1: 在Linux终端中,可以使用ANSI转义序列来设置字体颜色。具体方法如下: 1. 设置前景色(即字体颜色): \033[30m 黑色 \033[31m 红色 \033[32m 绿色 \033[33m 黄色 \033[34m 蓝色 \033[35m 紫色 \033[36m 青色 \033[37m 白色 2. 设置背景色: \033[40m 黑色 \033[41m 红色 \033[42m 绿色 \033[43m 黄色 \033[44m 蓝色 \033[45m 紫色 \033[46m 青色 \033[47m 白色 例如,要将字体颜色设置为红色,可以在终端中输入: echo -e "\033[31mHello World!\033[m" 其中,\033[31m表示设置字体颜色为红色,\033[m表示恢复默认颜色。 ### 回答2: 在Linux终端中,我们可以通过修改字体的颜色来增加终端的可读性或美观度。以下是一些常用的方法: 1. 通过ANSI转义序列来设置颜色 ANSI转义序列是一系列控制码,用于改变文本输出的颜色、背景、样式等。在终端中,我们可以使用ANSI转义序列来设置文本的前景色和背景色。 例如,使用以下命令设置字体颜色为红色: ``` echo -e "\033[31mThis is red text\033[0m" ``` 其中,`\033[31m`表示将接下来的文本颜色设置为红色,`\033[0m`表示将文本颜色恢复为默认颜色。其他常用颜色对应的代码如下: | 颜色 | 前景色 | 背景色 | |---|---|---| | 黑色 | \033[30m | \033[40m | | 红色 | \033[31m | \033[41m | | 绿色 | \033[32m | \033[42m | | 黄色 | \033[33m | \033[43m | | 蓝色 | \033[34m | \033[44m | | 紫色 | \033[35m | \033[45m | | 青色 | \033[36m | \033[46m | | 白色 | \033[37m | \033[47m | 2. 修改终端的配置文件 在Linux下,我们可以通过修改终端的配置文件来设置终端的字体、颜色、光标等外观特性。在GNOME Terminal中,配置文件为`~/.config/gtk-3.0/gtk.css`。在该文件中,我们可以使用CSS样式来设置终端的外观。 例如,使用以下代码设置终端的背景色为灰色,字体颜色为白色: ```css TerminalWindow, vte-terminal { background-color: #2b2b2b; color: #ffffff; } ``` 3. 使用终端配色方案 除了手动设置颜色之外,我们还可以使用终端配色方案来快速设置终端的外观。在Linux下,常用的终端配色方案有Solarized、Dracula、Monokai等。 例如,在GNOME Terminal中,我们可以通过在“首选项”中选择“配色方案”来加载预设的配色方案。如果需要自定义配色方案,可以通过安装`gnome-terminal-colors-solarized`等工具来实现。 总之,无论是使用ANSI转义序列、修改终端配置文件还是使用配色方案,设置终端字体颜色都是很容易实现的。有了好的字体配色,我们可以更愉快地使用终端,提高工作效率。 ### 回答3: 在Linux终端中,我们可以通过设置字体颜色来改变终端的外观。下面介绍几种常用的设置方式。 一、直接使用ANSI转义序列 ANSI转义序列指的是一些特殊的字符序列,可以在终端中展示不同的颜色和样式。具体格式为:\033[显示方式;前景色;背景色m 其中,显示方式、前景色和背景色的值可以对应不同的颜色效果,具体值如下: 显示方式:0默认,1高亮,4下划线,5闪烁,7反显 前景色:30黑,31红,32绿,33黄,34蓝,35紫,36深绿,37白色 背景色:40黑,41红,42绿,43黄,44蓝,45紫,46深绿,47白色 例子: echo -e "\033[31mThis is red text\033[0m" 该命令将输出红色的"This is red text" 二、修改终端配置文件 Step 1:打开终端,输入命令:vi ~/.bashrc Step 2:找到以下两行 PS1=’\h:\w\$ ’ unset color_prompt force_color_prompt Step 3:修改成如下内容 PS1=’\[\e[1;31m\]\h:\w\$ \[\e[m\]’ unset color_prompt force_color_prompt Step 4:保存,退出,输入命令:source ~/.bashrc 其中,\[\e[1;31m\]指定字体为红色,\[\e[m\]则关闭颜色设置。 三、使用Zsh Zsh是一个功能强大的终端Shell,提供了许多自定义设置选项,可以通过修改~/.zshrc文件来设置颜色。 Step 1:打开终端,输入命令:vi ~/.zshrc Step 2:在文件末尾添加以下内容 export PS1="%F{red}%n@%m%f:%F{blue}%~%f%% " Step 3:保存,退出 其中,%F{red}指定字体为红色,%F{blue}指定字体为蓝色。 以上就是几种常用的Linux终端字体颜色设置方式,不同的设置方式有不同的适用场景,可以根据个人需要选择合适的设置方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值