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
  1. \e 转义起始符,定义一个转义序列,也可以使用 \033或者\x1B代替
  2. [ 表示开始定义颜色
  3. m 转义终止符,表示颜色定义完毕
  4. 再次使用 \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」 自取。

WindowsLinux

IPTraf-ngLinux

Linux19MySQL

lolcatLinux

Linux

Linuxqq,ftp?croc

介绍一个Linux中更牛X的资源监控工具btop


图片
入门小站
全栈入门知识
178篇原创内容
公众号
 
收录于合集 #Linux
 490
下一篇介绍一个Linux中更牛X的资源监控工具btop
阅读 677
posted @ 2022-08-25 10:57  往事已成昨天  阅读(745)  评论(0编辑  收藏  举报