Linux Shell的提示字符设置 - PS1变量用法
当每次在Linux中使用回车执行命令之后,都会回到最开始的提示字符处,这个过程就是取用了set命令下自定义变量PS1的值。
基本格式
[cadmin@localhost ~]$ echo $PS1
[\u@\h \W]\$
此处的[\u@\h \W]\$
就是[cadmin@localhost ~]$
的通用格式,通过修改PS1变量可以达到修改提示字符的目的。在这之前,需要先了解此处用的符号含义:
\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
\H :完整的主机名称,在此处为localhost.localdomain
\h :仅取主机名中的第一个名字,在此处为localhost
\t :显示时间为24小时格式『HH:MM:SS』
\T :显示时间为12小时格式『HH:MM:SS』
\A :显示时间为24小时格式『HH:MM』
\@:显示时间为12小时格式『AM/PM』
\u :当前用户的账号名称,此处为cadmin
\v :BASH的版本信息
\w :完整的工作目录名称
\W :利用basename取得工作目录名称,只显示最后一个目录名
\# :下达的第几个命令
\$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $
经过调整,自己最习惯的排列方式为\u @ \h:\w\$
颜色格式
PS1中的颜色参数格式为\[\e[F;Bm\],F代表文本前景色,B代表背景色,这一串参数的位置就是这个颜色开始生效的位置,且后出现的颜色参数会覆盖前面的颜色参数。
例如\[\033[01;32m\]\u @ \h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
赋值给PS1后,提示字符变成:
最终,自己最习惯的排列加上比较醒目的格式是:
\[\033[01;32m\]\u @ \h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
永久生效
在当前shell里面的修改都只是暂时性的,只有将对应变量的赋值加入到对应用户的.bashrc下,才能在启动时就生效。
cadmin @ localhost:~$cd # 进入对应用户家目录
vi .bashrc # 编辑.bashrc
在文件最后加上PS1="\[\033[01;32m\]\u @ \h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$"
,然后source .bashrc
即可。