当我们ssh登录的时候经常可以看到一些主机名,当前用户名的信息,那些是什么东西?
其实就是系统提示符,它是用系统变量PS1来定义的。
[root@VM_0_15_centos ~]# echo $PS1
[\u@h W]$
所以你一登录,就能看到下面这样的格式
[root@VM_0_15_centos ~]#
那这些英文单词的含义是啥?
\u :当前用户的账号名称
h :仅取主机的第一个名字
W :利用basename取得工作目录名称,所以只会列出最后一个目录
$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
那么它还有哪些其他参数
d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
H :完整的主机名称
t :显示时间为24小时格式,如:HH:MM:SS
T :显示时间为12小时格式
A :显示时间为24小时格式:HH:MM
v :BASH的版本信息
w :完整的工作目录名称。家目录会以 ~代替
# :下达的第几个命令
┌(jaysonzwj@jaysonzwjdemacBook-Pro)─(✓)─(10:30 下午 一 6 08)
└─(~)─(40 files, 30296b)─> echo $PS1
n[ 33[1;37m]342224214([ 33[01;34m]\u@h[ 33[1;37m])342224200($(if [[ $? == 0 ]]; then echo "[ 33[01;32m]342234223"; else echo "[ 33[01;31m]342234227"; fi)[ 33[1;37m])342224200([ 33[1;34m]@ d[ 33[1;37m])[ 33[1;37m]n342224224342224200([ 33[1;32m]w[ 33[1;37m])342224200([ 33[1;32m]$(ls -1 | wc -l | sed 's: ::g') files, $(ls -sh | head -n1 | sed 's/total //')b[ 33[1;37m])342224200> [ 33[0m]
这里没显示颜色,我截图看看效果:
PS1实例
$ vim ~/.bash_profile
export PS1="n[ 33[1;37m]342224214($(if [[ ${EUID} == 0 ]]; then echo '[ 33[01;31m]h'; else echo '[ 33[01;34m]\u@h'; fi)[ 33[1;37m])342224200($(if [[ $? == 0 ]]; then echo "[ 33[01;32m]342234223"; else echo "[ 33[01;31m]342234227"; fi)[ 33[1;37m])342224200([ 33[1;34m]@ d[ 33[1;37m])[ 33[1;37m]n342224224342224200([ 33[1;32m]w[ 33[1;37m])342224200([ 33[1;32m]$(ls -1 | wc -l | sed 's: ::g') files, $(ls -sh | head -n1 | sed 's/total //')b[ 33[1;37m])342224200> [ 33[0m]"
$ source ~/.bash_profile
是不是丰富多彩,你也可以玩转PS1,增加趣味性。