PS1是一个很有意思的变量,是拿来定义命令行的提示符的linux 环境变量不生效,可以根据我们自己的需求来定义自己喜欢的提示符。
PS1可以支持以下这种选项:
d:显示曰期,格式为"礼拜月日"。
H:显示完整的主机名。如默认主机名"localhost.localdomain"。
h:显示缩写的主机名。如默认主机名"localhost"。
t:显示24小时制时间,格式为"HH:MM:SS"。
T:显示12小时制时间,格式为"HH:MM:SS"。
A:显示24小时制时间,格式为"HH:MM"。
@:显示12小时制时间,格式为"HH:MMam/pm"。
u:显示当前用户名。
v:显示Bash的版本信息。
w:显示当前所在目录的完整名称。
W:显示当前所在目录的最后一个目录。
#:执行的第几条命令。
$:提示符。若果是root用户,则会显示提示符为"#";若果是普通用户,则会显示提示符为"$"。
这种选项该如何用呢?我们先瞧瞧PS1变量的默认值linux 环境变量不生效,如下:
[root@localhost ~]# echo $PS1
[u@hW]$
#默认的提示符是显示"[用户名@缩写主机名最后所在目录]提示符"
在PS1变量中,假如是可以解释的符号,如"u"、"h"等硬盘安装linux,则显示这个符号的作用;若果是不能解释的符号,如"@“或"空格”,则原符号输出。我们更改一下PS1变量,瞧瞧会出现哪些情况。
[root@localhost ~]# PS1='[u@t w]$'
#修改提示符为'[用户名@当前时间当前所在完整目录]提示符'
[root@04:46:40 ~]#cd /usr/local/src/
#切换到当前所在目录,因为家目录是看不出来区别的
[root@04:47:29 /usr/local/src]#
#看到了吗?提示符按照我们的设计发生了变化
这儿要当心,PS1变量的值要用单冒号包含linux解压命令,否则设置不生效。再举个反例:
[root@04:50:08 /usr/local/src]#PS1='[u@ @ h # W]$'
[root@04:53上午 localhost 31 src]#
#提示符又变了。@:时间格式是HH:MM am/pm;#:会显示执行了多少条命令
PS1变量可以自由订制,似乎看见了一点Linux可以自由订制和更改的影子,还是很有意思的。不过说实话,一个提示符早已使用习惯了,若果换一个还是特别别扭的,还是改回默认的提示符吧,命令如下:
[root@04:53上午 localhost 31 src]#PS1='[u@h W]$'
[root@localhost src]#
注意,这种提示符的更改同样是临时生效的,一旦注销或重启系统才会消失。要想永久生效,必须写入环境变量配置文件。