Linux-玩转系统提示符PS1

2020-06-08  本文已影响0人  testerzhang

前言

当我们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\[\033[1;37m\]\342\224\214(\[\033[01;34m\]\u@\h\[\033[1;37m\])\342\224\200($(if [[ $? == 0 ]]; then echo "\[\033[01;32m\]\342\234\223"; else echo "\[\033[01;31m\]\342\234\227"; fi)\[\033[1;37m\])\342\224\200(\[\033[1;34m\]\@ \d\[\033[1;37m\])\[\033[1;37m\]\n\342\224\224\342\224\200(\[\033[1;32m\]\w\[\033[1;37m\])\342\224\200(\[\033[1;32m\]$(ls -1 | wc -l | sed 's: ::g') files, $(ls -sh | head -n1 | sed 's/total //')b\[\033[1;37m\])\342\224\200> \[\033[0m\]

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

我的电脑配置PS1

怎么做

$ vim ~/.bash_profile

export PS1="\n\[\033[1;37m\]\342\224\214($(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]\h'; else echo '\[\033[01;34m\]\u@\h'; fi)\[\033[1;37m\])\342\224\200(\$(if [[ \$? == 0 ]]; then echo \"\[\033[01;32m\]\342\234\223\"; else echo \"\[\033[01;31m\]\342\234\227\"; fi)\[\033[1;37m\])\342\224\200(\[\033[1;34m\]\@ \d\[\033[1;37m\])\[\033[1;37m\]\n\342\224\224\342\224\200(\[\033[1;32m\]\w\[\033[1;37m\])\342\224\200(\[\033[1;32m\]\$(ls -1 | wc -l | sed 's: ::g') files, \$(ls -sh | head -n1 | sed 's/total //')b\[\033[1;37m\])\342\224\200> \[\033[0m\]"
$ source ~/.bash_profile

是不是丰富多彩,你也可以玩转PS1,增加趣味性。

上一篇 下一篇

猜你喜欢

热点阅读