linux命令提示符是由PS1、PS2变量定义的。默认的值为"[\u@\h \W]\\$ " 全局的PS1变量在/etc/bashrc文件中有定义,如果是普通用户提示符最后显示$,root用户显示#。下面为定义PS1变量时可用的变量:

字符 含义
\! 显示该命令的历史记录编号。
\# 显示当前命令的命令编号。
\$ 显示$符作为提示符,如果用户是root的话,则显示#号。
\\ 显示反斜杠。
\d 显示当前日期。
\h 显示主机名。
\n 打印新行。
\nnn 显示nnn的八进制值。
\s 显示当前运行的shell的名字。
\t 显示当前时间。
\u 显示当前用户的用户名。
\W 显示当前工作目录的名字。
\w 显示当前工作目录的路径。

这些特殊字符能组合成很多种有用的提示符方案(也可以组合为很奇异的方案),例如把 PS1 设为:
PS1="\t"
这导致提示符显示当前的时间,就象下面的显示一样(提示符后面将不会有空格):
02:16:15
而下面的设置:
PS1=\t
将导致提示符变成下面的样子:
t
这显示了设置中引号的重要性,下面的提示符串:
PS1="\t\\ "
会使提示符看起来象这个样子:
02:16:30\
这种情况下,提示符后面会有一个空格,因为引号里有一个空格。

如果想对某个账户设置自定的命令行提示符,可以编辑用户的/home/用户 目录下编辑 .bashrc文件,添加PS1变量的定义。root用户则在 /root/.bashrc 文件中定义。例如:

# vi ~/.bashrc

PS1=”[\u@\h \w]\\$ “

保存退出后退出当前终端或者重新运行bash命令就可以看到修改后的效果了。如下:

[root@monitor /data/soft]#

颜色化提示符
Linux提示符也可以定义显示不同的颜色,其颜色值的定义参见 echo命令高级应用——显示带颜色的字符
如编辑 ~/.bashrc 文件 添加如下设置:
PS1="\[\e[1;37m\][\u@\h \w]\[\e[1;32m\]\[\e[01m\]\\$ \[\e[0m\]"

重新连接发现提示符变成了如下显示:
image

http://salogs.com/2009/07/echo%E5%91%BD%E4%BB%A4%E9%AB%98%E7%BA%A7%E5%BA%94%E7%94%A8%E2%80%94%E2%80%94%E6%98%BE%E7%A4%BA%E5%B8%A6%E9%A2%9C%E8%89%B2%E7%9A%84%E5%AD%97%E7%AC%A6/