关于PS1和PS2

PS1——默认提示符

如下所示,可以通过修改Linux下的默认提示符,使其更加实用。
配色方案:

export PS1="\[\e[36m\][\u@\h \W]\\\$ \[\e[m\]"

网上大多资料并没有彻底解决我们关于PS1的困惑,如上述配色方案中
注意$前要多加\\否则进入root不会变为#
而有些地方多了一个“[”,或者有些地方少了 “]”,或者其他的符号或者字母等多了或少了,解决办法就是在配置文件中,PS1里相对应的符号前面加一个反斜线“\”,反斜线的作用是转义后面跟的符号等。

还有一些常见问题:
1、修改PS1后使用vim编辑的文件中出现黄色的空格方块
解决方案:
http://www.zixuephp.net/article-373.html
2、后面的命令行的颜色也跟着改变了
原因:未设置颜色结束符,详解请往下看。
3、设置PS1后终端命令不换行问题
原因:颜色设置未用[ 和] 括起来
配置文件中的设置:PS1=”[\u@\h \W]$”
常用参数含义:

\d :#代表日期,格式为weekday month date,例如:”Mon Aug 1”

\H :#完整的主机名称

\h :#仅取主机的第一个名字

\T :#显示时间为24小时格式,如:HH:MM:SS

\t :#显示时间为12小时格式 , 如:HH:MM:SS

\A :#显示时间为12小时格式:HH:MM

\u :#当前用户的账号名称

\v :#BASH的版本信息

\w :#完整的工作目录名称

\W :#利用basename取得工作目录名称,所以只会列出最后一个目录

# :#下达的第几个命令

$ :#提示字符,如果是root时,提示符为:# ,普通用户则为:$

颜色设置

在PS1中设置字符颜色的格式为:[\e[F;Bm],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。
语法:

[\e[F;Bm]需要改变颜色的部分[\e[0m]

开始颜色输入:[\e[F;Bm]

结束颜色输入:[\e[0m]

颜色表如下:

F B 
     
30 40 黑色

31 41 红色

32 42 绿色

33 43 黄色

34 44 蓝色

35 45 紫红色

36 46 青蓝色

37 47 白色 

设置特殊显示

 0 OFF,关闭颜色 
     1 高亮显示 
     4 显示下划线 
     5 闪烁显示 
     7 反白显示 
     8 颜色不可见 

特殊显示可在结束颜色输入里面设置:[\e[ 特殊颜色编号 m]
    
例:要设置命令行的格式为黄字黑底,显示当前用户的账号名称、主机的第一个名字、完整的当前工作目录名称、24小时格式时间,就可以使用如下的命令:PS1="[\e[32;40m[\u@\h \w \T]$[\e[0m]"
保存设置:
在命令行设置只能改变当前终端的命令行格式,关闭这个终端,在重新打开的一个终端中命令行格式又会恢复到默认的形式。想要永久性的改变终端命令行格式,需要修改.bashrc文件。
写入/etc/profile或/etc/bashrc对全部用户生效;写入~/.bash_profile 或 ~/.bashrc 只对当前用户生效。

PS2——再谈提示符

一个非常长的命令可以通过在末尾加“\”使其分行显示。多行命令的默认提示符是“>”。 我们可以通过修改PS2 ,将提示符修改为"continue->" 。

xdl@dev-db ~> myisamchk --silent --force --fast --update-state \ 
 >--key_buffer_size=512M --sort_buffer_size=512M \ 
 >--read_buffer_size=4M --write_buffer_size=4M \ 
 >/var/lib/mysql/bugs/*.MYI

[注: 这里使用 “>” 作为默认提示符]

xdl@dev-db ~> export PS2="continue-> " 
xdl@dev-db ~> myisamchk --silent --force --fast --update-state \ 
continue-> --key_buffer_size=512M --sort_buffer_size=512M \ 
continue-> --read_buffer_size=4M --write_buffer_size=4M \ 
continue-> /var/lib/mysql/bugs/*.MYI

[注: 与上面类似,用 "continue-> " 作提示符]

猜你喜欢

转载自blog.csdn.net/qq_39429714/article/details/83307152
PS1