Linux颜色格式的设置
Linux给输出点颜色看看
我们在有些系统上,使用
ls -al
打印当前目录文件时,不同的文件会显示不同的颜色。你知道是怎么实现的吗?
ls的输出颜色不止3种,有以下几种,
- 白色:表示普通文件
- 蓝色:表示目录
- 绿色:表示可执行文件
- 红色:表示压缩文件
- 浅蓝色:链接文件
- 红色闪烁:表示链接的文件有问题
- 黄色:表示设备文件
- 灰色:表示其他文件
可以用
echo $LS_COLORS
看一下。也可以自己定义,直接将该环境变量保存到~/.bashrc
文件即可。
彩色输出的 ANSI 转义码
这里面用到了
ANSI 转义码
上面带数字的字符串就是这东西。
以下是每种颜色的一些 ANSI 转义码:
Black 0;30 Dark Gray 1;30
Red 0;31 Light Red 1;31
Green 0;32 Light Green 1;32
Brown/Orange 0;33 Yellow 1;33
Blue 0;34 Light Blue 1;34
Purple 0;35 Light Purple 1;35
Cyan 0;36 Light Cyan 1;36
Light Gray 0;37 White 1;37
单独这个对照表还是不能使用的,前后还需要加上其它字符。前面加
\033[
,中间是上面的转义码,后面加上m
。\e[0m
的作用是恢复之前的配色方案。
下面是一些如何将 ANSI 颜色代码串在一起的示例:
R='\033[0;31m' #'0;31' is Red's ANSI color code
G='\033[0;32m' #'0;32' is Green's ANSI color code
Y='\033[1;32m' #'1;32' is Yellow's ANSI color code
B='\033[0;34m' #'0;34' is Blue's ANSI color code
\e
转义起始符,定义一个转义序列,也可以使用\033
或者\x1B
代替[
表示开始定义颜色m
转义终止符,表示颜色定义完毕- 再次使用
\e[
,表示再次开启颜色定义,0
表示使用默认的颜色,m
表示颜色定义结束,所以\e[0m
的作用是恢复之前的配色方案
echo 命令中的彩色输出
你可以在 echo 命令中使用指定的颜色作为
变量
,在输出文本中引用这些变量。
举个例子
我定义了两个颜色变量。
#!/bin/bash
RED='\033[0;31m'
NOCOLOR='\033[0m'
echo -e "我 ${RED}爱${NOCOLOR} 入门小站 \e[0m"
NOCOLOR
就是没有颜色。
添加背景
echo -e "\e[40;38;5;82m 入门 \e[30;48;5;82m 小站 \e[0m"
添加下划线
echo -e "\033[39;49;9;4m 入门 \033[39;49;9;4m 小站 \e[0m"
添加隐藏
比如我不想显示密码就可以用
\e[8m
echo -e "入门 \e[8m密码在这会被隐藏 \e[0m小站\e[0m"
printf 的输出添加颜色
和上面echo的用法是一样的。
#!/bin/bash
RED='\033[0;31m'
NOCOLOR='\033[0m'
printf "我 ${RED}爱${NOCOLOR} 入门小站"
小工具
记忆这些颜色代码还是很费劲的,也没必要。可以使用
https://tooltt.com/ansi/
这个在线工具通过页面点击自动生成颜色代码。
【Linux常用命令速查手册】关注【入门小站】,后台回复 「1001」 自取。
近期热文
入门小站
全栈入门知识
公众号
收录于合集 #Linux
490个下一篇介绍一个Linux中更牛X的资源监控工具btop