Linux下SHELL的PS1变量简介linux
Linux环境变量中PS1是很重要的环境变量:code
PS(Prompt Sign): 是指命令提示符,例如在Fedora 12的终端下:[liutao@liutao ~]$ ,在设定PS1环境变量时,咱们须要用到预设的一些特殊符号来设定PS1,下面是鸟哥书上关于BASH的特殊变量。变量
o \d :表明日期,格式为 Weekday Month Date,例如 "Mon Aug 1"终端
o \H :完整的主机名称。举例来讲,鸟哥的练习机 linux.dmtsai.tw ,那么这个主机名称就是 linux.dmtsai.tw www.2cto.com引用
o \h :仅取主机名称的第一个名字。以上述来说,就是 linux 而已, .dmtsai.tw 被省略。程序
o \t :显示时间,为 24 小时格式,如: HH:MM:SScommand
o \T :显示时间,12 小时的时间格式!方法
o \A :显示时间,24 小时格式, HH:MM英文
o \u :目前使用者的帐号名称;环境变量
o \v :BASH 的版本信息;
o \w :完整的工做目录名称。家目录会以 ~ 取代;
o \W :利用 basename 取得工做目录名称,因此仅会列出最后一个目录名。
o # :下达的第几个指令。
o $ :提示字符,若是是 root 时,提示字符为 # ,不然就是 $ 。
Fedora 12下,PS1 内容为:
鸟哥书上的例子为: [root@linux /home/dmtsai 16:50 #12]#
PS1='[\u@\h \w \A #\#]\$ '
在Fedora 12上的实现:
在上例中咱们看出了,PS1在赋值的时用了单引号(‘),下面咱们将讨论下在SHELL变量赋值,先看鸟哥书上的变量赋值:
变量与变量内容以等号( = )来连结;
等号两边不能直接接空格符;
变量名称只能是英文字母与数字,可是数字不能是开头字符;
若在赋值中有空格符可使用双引号或单引号来将变量内容结合起来,但需要特别留意, 双引号内的特殊字符能够保有变量特性,可是单引号内的特殊字符则仅为通常字符;
必要时须要以反斜杠(\)来将特殊符号 ( 如 Enter, $, , 空格符, ' 等 ) 变成通常符号;
在一串指令中,还须要藉由其它的指令提供的信息,可使用引用字符( command
);(特别特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号!) www.2cto.com
若该变量为扩增变量内容时,则需以双引号及 $变量名称 如: "$PATH":/home继续累加内容;
若该变量须要在其它子程序执行,则须要以 export 来使变量变成环境变量, 如export PATH
一般大写字符为系统预设变量,自行设定变量可使用小写字符,方便判断 ( 纯粹依照使用者兴趣与嗜好 ) ;
取消变量的方法为: unset 变量名称。
那么在PS1的设置中,由于中间有空格,因此咱们须要用单双引号,没有与须要用到命令的结果,因此不须要引用。而咱们选择单引号是为了让PS1直接接受纯字符,而不是在SHELL中有特殊意义的字符,或者以$开头的变量,因此咱们用单引号便可,当让也能够用双引号。