Linux-玩转系统提示符PS1

前言当我们ssh登录的时候经常可以看到一些主机名,当前用户名的信息,那些是什么东西?
其实就是系统提示符,它是用系统变量PS1来定义的 。

Linux-玩转系统提示符PS1

文章插图
 
系统变量PS1默认值[root@VM_0_15_centos ~]# echo $PS1[\u@h W]$所以你一登录,就能看到下面这样的格式
[root@VM_0_15_centos ~]#【Linux-玩转系统提示符PS1】那这些英文单词的含义是啥?
\u :当前用户的账号名称h :仅取主机的第一个名字W :利用basename取得工作目录名称,所以只会列出最后一个目录$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$那么它还有哪些其他参数
d :代表日期,格式为weekday month date,例如:"Mon Aug 1"H :完整的主机名称t :显示时间为24小时格式,如:HH:MM:SST :显示时间为12小时格式A :显示时间为24小时格式:HH:MMv :BASH的版本信息w :完整的工作目录名称 。家目录会以 ~代替# :下达的第几个命令我的电脑个性化设置┌(jaysonzwj@jaysonzwjdemacBook-Pro)─(?)─(10:30 下午 一6 08)└─(~)─(40 files, 30296b)─> echo $PS1n[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]这里没显示颜色,我截图看看效果:
Linux-玩转系统提示符PS1

文章插图
PS1实例
怎么个性化
  • export 一下,写入用户环境变量文件
$ vim ~/.bash_profileexport 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,增加趣味性 。




    推荐阅读