PS1

PS1就是用来设置命令提示符的环境变量
以下是PS1中可以使用的转义字符

\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称。家目录会以 ~代替
\W :利用basename取得工作目录名称,所以只会列出最后一个目录
\# :下达的第几个命令
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

PS1中设置字符序列颜色的格式是​​\[\e[F;Bm\]​​​,对应的取消颜色设置为​​\[\e[m\]​​​
其中“F”为字体颜色编号,编号为30~37,“B”位背景颜色编号,编号为40~47

颜色表
前景 背景 颜色
  30 40 黑色
  31 41 红色
  32 42 绿色
  33 43 黄色
  34 44 蓝色
  35 45 紫红色
  36 46 青蓝色
  37 47 白色

代码 意义
0 OFF
1 高亮显示
4 underline
7 反白显示
8 不可见

来看一个例子:

linux下PS1命令提示符_linux


​\[\e[31m\]​​表示设置后面的字符串序列颜色为红色

​\u​​表示当前用户的账号名

​\H​​表示主机名

​\[\e[m\]​​表示撤销之前设置的字符串序列的颜色

注:有些嵌入式的主机可能并不支持如上的转义字符或者颜色的设置,但是ubuntu等系统一般都是支持的


PS2

一个非常长的命令可以通过在末尾加“\”使其分行显示。多行命令的默认提示符是“>”。 我们可以通过修改PS2 ,将提示符修改为”continue->” 。


PS3

Shell脚本中使用select时的提示符


PS4

set -x”用来修改跟踪输出的前缀