给点颜色给PS1
这里介绍了一堆关于彩色显示的代码…
1.字体颜色
用下面的代码可以让PS1
变成蓝色:
export PS1="\e[0;34m\u@\h \w> \e[m "
知道这是为什么嘛?
因为我们在中间嵌入了颜色代码:\e[0;34m
以及关闭颜色的代码:\e[m
下面的命令会让颜色变得更亮, 还带有加粗效果:
export PS1="\e[1;34m\u@\h \w> \e[m "
慢慢介绍里面的东西都是什么意思:
\e[
颜色开启x;ym
颜色的类型: x,y自己定义\e[m
关闭颜色
下面是一张颜色代码表:
颜色 | 代码 |
---|---|
黑色 | 0;30 |
蓝色 | 0;34 |
绿色 | 0;32 |
青色 | 0;36 |
红色 | 0;31 |
紫色 | 0;35 |
棕色 | 0;33 |
如果把上面代码中的0
替换成1
就会使颜色加深, 字体加粗.
2.字体背景色
我们不仅可以更改显示的字体的颜色, 我们还可以改变字体的背景颜色:
export PS1="\e[47m\u@\h \w> \e[m "
上面的命令使我们得到了一个浅灰色的背景.
3.组合
没错, 我们当然可以把上两种结果组合起来, 实现任何你想要的结果:
export PS1="\e[0;34m\e[47m\u@\h \w> \e[m "
`
比如利用上面的代码就可以得到一个字体颜色为蓝色, 字体背景色为浅灰的效果.
下面是我自己截的图, 不要看花眼…
每一行命令都对应它下一行开头的颜色.
这里还是希望你亲自实验一下, 而不是看一遍…
4.tput 命令
说实话, 我对这里也是第一次见, 长知识了.
例子:
$ export PS1="\[$(tput bold)$(tput setb 4)$(tput setaf
7)\]\u@\h:\w $ \[$(tput sgr0)\]"
其中:
tput setb [1-7]
- 设置背景色tput setf [1-7]
- 设置前景色tput setab [1-7]
- 用ANSI escape设置背景色(我查了,但不懂…)tput setaf [1-7]
- 用ANSI escape设置前景色
前两个好使, 就算用echo
输出也是很漂亮的.
还有一些设置字体的选项:
tput bold
粗体tput dim
亮度减半tput smul
开启下划线tput rmul
关闭下划线tput rev
颜色反转, 类似于高对比度那种tput smso
开启高对比度模式tput rmso
关闭高对比度模式tput sgr0
关闭所有特效
颜色代码:
0
– 黑色1
– 红色2
– 绿色3
– 黄色4
– 蓝色5
– 洋红6
– 青色7
- 白色
扩展阅读
9 UNIX / Linux tput Examples: Control Your Terminal Color and Cursor