Linux 设置命令提示符的颜色及内容

当我们需要同时维护多台服务器的时候,为了避免不会在不经意间将具有破坏性的命令(删除文件、格式化文件系统)执行在其他服务器上造成不必要的损失,我们可以在为我们需要使用ssh链接的每台服务器的命令提示符设定不同的颜色,这样就能很直观的区别不同的服务区。

Linux系统的 bash shell 环境下通常是由 PS1 这个 bash内置变量决定主命令提示符的显示格式,我们只需要将这个变量设置成我们需要的格式就能获得我们想要的视觉效果。
PS1 变量中我们可以使用以下一些定义好的内容,我可以使用普通字符串和这些字符的组合输出我们需要的内容:

\d      :"Wed Sep 06" 格式的日期
\t      :24小时制时间
\T      :12小时制时间
\@      :带有 am/pm 的 12 小时制时间
\e      :ASCII转义字符
\a      :ASCII 响铃字符(也可以键入 \007)
\r      :回车符
\n      :换行符
\h      :主机名
\H      :完整的主机名
\j      :在此 shell 中通过按 ^Z 挂起的进程数
\l      :此 shell 的终端设备名(如 "ttyp1")
\s      :shell 的名称(如 "bash")
\v      :bash 的版本(如 2.04)
\V      :Bash 版本(包括补丁级别)
\u      :用户名
\w      :当前工作目录(绝对路径)
\W      :当前工作目录的主文件名部分
\!      :当前命令在历史缓冲区的位置
\$      :如果当前用户的 UID 是 0(即root),则插入字符#;其他用户插入字符$
\\      :反斜杠
\[      :不可打印字符串的开头
\]      :不可打印字符串的结束
\nnn    :八进制转义字符

上面我讲解了内容,接着我们讲解一下如何改变输出颜色,我们通过背景色、字体颜色,属性来控制文字样式,他们都使用八进制来表示。
色值和颜色对照

前景   背景    颜色
30     40     黑色
31     41     紅色
32     42     綠色
33     43     黃色
34     44     藍色
35     45     紫紅色
36     46     青藍色
37     47     白色

属性代码

代码     行为
0        OFF
1        高亮显示
4        underline
5        闪烁
7        反白显示
8        不可见

我们一通过以下两种格式来控制输出样式:
1、设置属性和字体颜色:\[\e[属性;字体颜色m\] 或者写作 \[\033[属性;字体颜色m\]
2、设置属性和字体颜色和背景色:\[\e[属性;字体颜色;背景色m\] 或者写作 \[\033[属性;字体颜色;背景色m\]

注:上述两种两种格式中背景色、字体颜色,属性三者的位置是可以随意替换的,因为的他们的去值范围不同,所以很容易区别。

\[\e[0m\] 表示关闭颜色输出。

举例:
单行提示符:
PS1=’\[\033[0;36m[\u@\h\W]\$\033[0m\] ‘

多行全路经提示符:
PS1=’\[\e[0;33m\]\w\n\[\e[0;36m\][\u@\H \[\e[0;31m\]\!\[\e[0;36m\]]\$\[\e[m\] ‘

One Comment

  1. bbbbb
    Posted 2016 年 6 月 30 日 at 下午 11:52 | Permalink

    \$ 应该在 最后的\]后面。 即\]\$ 如果不这样,命令行输入错误删除时,直接删除了主机名,ctrl +u 也不能使用。

Post a Comment

Your email is never shared. Required fields are marked *

*
*