<返回更多

Linux-玩转系统提示符PS1

2020-06-15    
加入收藏

前言

当我们ssh登录的时候经常可以看到一些主机名,当前用户名的信息,那些是什么东西?

其实就是系统提示符,它是用系统变量PS1来定义的。

Linux-玩转系统提示符PS1

 

系统变量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]

这里没显示颜色,我截图看看效果:

Linux-玩转系统提示符PS1

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,增加趣味性。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>