1 min read

linux-打造友好的shell提示符 [原创]

首先看一下原本的设来了提示符样子。

在ubuntu feisty的~/.bashrc配置文件里面, 最初的定义是这样的。

# set a fancy prompt (non-color, unless we know we “want” color)
case “$TERM” in
xterm-color)
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    ;;
*)
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac

我们只看这一行:
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
环境变量:
注释:其中${xxxx}是个变量, \u代表目前的用户,\h代表主机名, \w代表工作路径,\$是‘$‘(\是转义符号,可以使用诸如\n,\t之类的)

颜色代码:
[\033[01;32m\]是一个标准的颜色代码,由一个半中括号构成。其中第二个‘[’后面是标准的ANSI颜色码。共有约二十种样式/颜色提供,详细信息请google.

我的shell提示符是这样的:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[01;35m\]@\[\033[01;36m\]\h\[\033[00m\]:\[\033[01;34m\]\w\n\[\033[01;39m\]$?\[\033[01;38m\]\$ '
具体意义是:当前的username由01;32m定义—绿色,同理@用红色,主机名用另一种颜色展示.然后显示当前目录并换行(之所以换行是因为有些目录很长),然后显示上一次操作的结果.1,2,3等可能表示一些常规的错误或者失败,具体的意义还不清楚.
[$?返回上一次操作的返回码,0表示成功]

该文于2007-10-10被赛迪网发布,遂被多处引用.但作者居然赫然写着:sixth. TNND,看来得写个版权声明了.