linux命令行学习(56):提示符中怎样设置颜色?
2019-12-14 本文已影响0人
金石明镜
提示符可以设置颜色,包括文本颜色和背景色。
设置颜色不是使用单个的转义符,而是使用转义序列。实际使用时,要在这个序列的前后加上\[和\],将它们括住。
还有一个问题,我们一般是设置提示符的颜色(文本和背景),如果只是设置颜色,则会影响到输入的文字(包括文本和背景)。为了使设置的颜色只对提示符起作用,一般在提示符末尾要用一个转义序列恢复原来的颜色,这样我们的设置就只会对提示符起作用。
设置颜色的转义字符是下面这个样子的,以设置文本的红色为例:
\033[0;31m
\033[1;31m
设置背景的类似,就是最后一部分不一样。
文本是从30m到37m。
背景是从40m到47m。
另外,设置背景的序列中,第6位只有0,没有1,所以只有8种,而文本颜色有16种。
一个例子:
PS1="\[\033[0;31m\][\u \! \#@\h \W]\$[\033[0m\]"
这命令使提示符显示为红色。
其中,前面的
\[\033[0;31m\]
设置了文体显示为红色。
其前面的\[和\]相当于括号,中间是设置文本为红色的转义序列。
后面的
[\033[0m\]
用来将颜色恢复为原来颜色,如果没有它,则用户输入的字符都会显示为红色。
中间的
[\u \! \#@\h \W]\$
是提示符的字符显示,这里\u是用户名,\!是命令的历史编号,\#是本次会话的命令个数,\h是主机名,\W是当前工作目录,\$可能显示为#(对超级用户)或$(对普通用户)。
一个实际的显示例子:
[me 760 9@localhost ~]$