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

在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,看来得写个版权声明了.

作者简介

Chun-Hui Gao is a Research Associate at Huazhong Agricultural University.

重复使用

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The source code is licensed under MIT. The full source is available at https://github.com/yihui/hugo-prose.

欢迎修订

如果您发现本文里含有任何错误(包括错别字和标点符号),欢迎在本站的 GitHub 项目里提交修订意见。

引用本文

如果您使用了本文的内容,请按照以下方式引用:

gaoch (2007). linux-打造友好的shell提示符 [原创]. BIO-SPRING. /post/2007/10/04/colorful-shell-prompt/

BibTeX citation

@misc{
  title = "linux-打造友好的shell提示符 [原创]",
  author = "gaoch",
  year = "2007",
  journal = "BIO-SPRING",
  note = "/post/2007/10/04/colorful-shell-prompt/"
}