第五章 手把手教会你使用 Linux 控制台

补充一下关于命令行提示符的,就是楼主的 “二、控制台命令之存活篇 ==> 1、命令行提示符” 这部分的内容:
设置PS1 这个变量,要查2 个man 文档就可以了,
1. man bash' ,看一下 “PROMPTING” 这一节,主要讲了Bash 命令行提示符有哪些可以转义的特殊字符; 2. man 4 console_codes’ ,介绍了Linux 控制终端转义和控制序列,PS1 变量里的“31m”、“0m”,还有颜色代码之类的就是参考这篇文档来的。

$ ‘即可
楼主帖子里的这个配置不能正常工作,Bash 里定义变量的时候,如果字符串用单引号(')括起来,特殊字符是不会转义的。如果有童鞋用了这个配置,会发现你的提示符还是定义PS1的字符串,并没有转义成想要的 “用户@主机 PWD 时间 $” 之类的提示符。

配置命令行提示符我也遇到个问题没有搞定,下面是我的配置:

1016 => $ cat /etc/bash.bashrc.local
#!/bin/bash
#
# Customizing Bash Environment
unset PS1 EDITOR VISUAL
EDITOR="/usr/bin/vim"
VISUAL=${EDITOR:=/usr/bin/vim}

if  "$UID" = 0 ]] ; then
  PS1="\n\\033[1;31m\]\u\\033[0m\]@\\033[0;34m\]\H\\033[0m\]:\\033[1;36m\]\w\\033[0m\]] \\033[32m\]\d - \t]\n\\033[0m\]\! => \\033[1;31m\]#\\033[0m\] "
else
  PS1="\n\\033[1;33m\]\u\\033[0m\]@\\033[0;34m\]\H\\033[0m\]:\\033[1;36m\]\w\\033[0m\]] \\033[32m\]\d - \t]\n\\033[0m\]\! => \\033[1;33m\]$\\033[0m\] "
fi
export PS1 EDITOR VISUAL

效果如下:

!](http://farm4.staticflickr.com/3766/11114265513_d149cb148a_o.png)
](Bash-prompting | Bash 命令行提示符 | 朋飞 郑 | Flickr)
Flickr 上 Terry ZhengBash-prompting
我没有用 \$' 这个转义字符,因为我用了之后 root 用户登陆系统,并没有转义成 '#' ,反正我也要单独定义颜色,索性就自己判断 ${UID} 来指定是用 '#' 还是 '$' 了。 不知道是不是我的转义序列那里出错了,还是Bash有Bug,已经折腾N次了,我也试过不加其他转义序列,只用单独的 $’ ,无论是在 tty 还是 Konsole 中,都没有用,登录 root 用户还是不会转义。还请高手指点一下,不胜感激!

Note:
$PS1 包含 \n' 以后, 要使用 ' 保持换行. 这个序列应该出现在不移动光标的字符序列(如颜色转义序列)之前。它使 Bash 能够正确计算自动换行。