概述
用户进入 Bash 以后,Bash 会显示一个命令提示符,用来提示用户在该位置后面输入命令。
环境变量 PS1
命令提示符通常是美元符号$,对于根用户则是井号#。这个符号是环境变量PS1决定的,执行下面的命令,可以看到当前命令提示符的定义。
$ echo $PS1
Bash 允许用户自定义命令提示符,只要改写这个变量即可。改写后的PS1,可以放在用户的 Bash 配置文件.bashrc里面,以后新建 Bash 对话时,新的提示符就会生效。要在当前窗口看到修改后的提示符,可以执行下面的命令。
$ source ~/.bashrc
命令提示符的定义,可以包含特殊的转义字符,表示特定内容。
a:响铃,计算机发出一记声音。d:以星期、月、日格式表示当前日期,例如“Mon May 26”。h:本机的主机名。H:完整的主机名。j:运行在当前 Shell 会话的工作数。l:当前终端设备名。:一个换行符。:一个回车符。s:Shell 的名称。:24小时制的hours:minutes:seconds格式表示当前时间。T:12小时制的当前时间。@:12小时制的AM/PM格式表示当前时间。A:24小时制的hours:minutes表示当前时间。u:当前用户名。v:Shell 的版本号。V:Shell 的版本号和发布号。w:当前的工作路径。W:当前目录名。!:当前命令在命令历史中的编号。#:当前 shell 会话中的命令数。$:普通用户显示为$字符,根用户显示为#字符。[:非打印字符序列的开始标志。]:非打印字符序列的结束标志。
举例来说,[u@h W]$这个提示符定义,显示出来就是[user@host ~]$(具体的显示内容取决于你的系统)。
[user@host ~]$ echo $PS1
[u@h W]$
改写PS1变量,就可以改变这个命令提示符。
$ PS1="A h $ "
17:33 host $
注意,$后面最好跟一个空格,这样的话,用户的输入与提示符就不会连在一起。
颜色
默认情况下,命令提示符是显示终端预定义的颜色。Bash 允许自定义提示符颜色。
使用下面的代码,可以设定其后文本的颜色。