一些转义字符,供定制PS1(当然如果要定制PS2也可以使用,但一般很少定制PS2吧)时使用。
以下列举一些常用的:
- \h 主机名字
- \u 当前用户名字
- \w 当前工作目录
- \$ UID为0时(也就是root)效果为#,否则为$
- \t 当前二十四小时制时间
- \T 当前十二小时制时间
- \[ 开始一串非打印字符
- \] 非打印字符串结束
提示符颜色
还可以给提示符添加颜色,也是通过在PS1中使用特定的序列来实现的。"\e["表示颜色序列的开始。后面紧跟表示颜色的数字,不同的数字代表不同的颜色,有些表示前景色,有些表
示背景色,有些表示光标闪烁颜色,数字间用“;"分隔,且没有顺序关系,最后"m"表
示颜色序列的结束。后续的字符将按照颜色序列的定义显示,直到"\e[0m"重置为默认值。
比如一个可能的PS1为:“export PS1="\e[32;40m\w> \e[0m”
| 编码 | 颜色动作 |
|---|---|
| 0 | 重新设置属性到缺省设置 |
| 1 | 设置粗体 |
| 2 | 设置一半亮度 |
| 4 | 设置下划线 |
| 5 | 设置闪烁 |
| 7 | 设置反向图象 |
| 22 | 设置一般密度 |
| 24 | 关闭下划线 |
| 25 | 关闭闪烁 |
| 27 | 关闭反向图象 |
| 30 | 设置黑色前景 |
| 31 | 设置红色前景 |
| 32 | 设置绿色前景 |
| 33 | 设置棕色前景 |
| 34 | 设置蓝色前景 |
| 35 | 设置紫色前景 |
| 36 | 设置青色前景 |
| 37 | 设置白色前景 |
| 38 | 在缺省的前景颜色上设置下划线 |
| 39 | 在缺省的前景颜色上关闭下划线 |
| 40 | 设置黑色背景 |
| 41 | 设置红色背景 |
| 42 | 设置绿色背景 |
| 43 | 设置棕色背景 |
| 44 | 设置蓝色背景 |
| 45 | 设置紫色背景 |
| 46 | 设置青色背景 |
| 47 | 设置白色背景 |
| 49 | 设置缺省黑色背景 |
\[ 和 \]的作用
还要特别提一下\[ 和 \]的作用,它通知Bash两者间的字符为非打印字符,
当Bash计算提示符长度时,会忽略这一串字符。这是很有必要的,比如对于定义颜色的特殊
序列,就应该包含在其中,因为颜色序列并非打印字符。如果没有将非打印字符(比如颜色
序列)包含在\[和\]之间,当输入较短命令时不会有问题,但是当输入长命令,超过使用的
终端窗口的宽度时,因为Bash将非打印字符都算入提示符长度,造成命令换行的错误,终端
窗口的显示将会错乱。
titlebar
默认情况下,
PS1=\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$分析这一段代码,发现\[ 和 \]的“\e]0;\u@\h: \w\a”还是解释不了。其实"\e]0;" 与
"\a"之间的序列用于控制终端窗口titlebar的显示。还可以把0换成1或者2,分别控制任务
栏终端窗口titlebar显示和主窗口的titlebar显示,即:
\e]1;icon-title\a\e]2;main-title\a参考资料
[1]Bash Shell PS1: 10 Examples to Make Your Linux Prompt like
Angelina Jolie
[2]Tip: Prompt magic
[3]http://tldp.org/HOWTO/Bash-Prompt-HOWTO/xterm-title-bar-manipulations.html
[4]tput 入门
没有评论:
发表评论