PS1 修改之我见 及 前置颜色设置

回复 收藏
本帖最后由 sincethen 于 2016-1-27 11:02 编辑

1.jpg

PS1是用户登陆时,最常见到的信息提示。
设置好,能帮助大家得到更多的消息,让你操作更加舒心。

1: 查看ps1设置
echo $PS1
\[  \e[37;40m\]  [ \[\e[32;40m\] \u \[\e[37;40m\]  @\h   \[\e[35;40m\]  \W  \[\e[0m\]   ]  \$



颜色设置:
\[\e[F;Bm\]
这其中``F''为字体颜色,编号30~37;``B''为背景色,编号40~47

去掉颜色设置来看,变为:
ps1为 [ \u  @\h  \w ] \$

这其中大部分是特殊符号,含义列举如下:

\d :代表日期,格式为weekday month date,例如:"Mon Aug1"
\H:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称。家目录会以 ~代替
\W :利用basename取得工作目录名称,所以只会列出最后一个目录
\# :下达的第几个命令 \!    : 在history中的位置
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$



那么去掉颜色,修改PS1,命令:
PS1="[\u@\h \w ]\$"
添加上 常用的时间格式,位于第几个命令,
PS1="[\A \u@\h \w \! ]\$"

一些好处:
添加时间这个不多说了。
主要是完整的路径。和第几个命令:
比如第 100个命令为  
  ls  install.log  install.log.syslog   svnbak1_40.svn
那么在以后的命令行中可通过快捷命令直接调用这些参数:
那么在 102个命令中:
cat  !100:2
会输出信息为: cat  install.log.syslog


---------------------------------------------------------------------------------------------------------------------------------------------------------
再说说颜色说明 :
\[\e[F;Bm\]   
正常颜色设置是  \e[F;Bm  此处需添加了[] 并作了转义,所以为 \[ \]
来对 \e[F;Bm 略作说明:
以echo 显示为例:


大致上在网上可搜到说明:
echo -e "\033[字背景颜色;文字颜色m 字符串  \033[0m"
此处  \033 即为 \e  ,033是十进制27  \27 是转义字符。所以也可以这样说明:
echo -e "\e[字背景颜色;文字颜色m  字符串    \e[0m"
字背景颜色 表示为F 数值为30~37,文字颜色 表示为B 数值为40~47 。F为 font 简写, B 为 background 简写
m为字体显示方式.

前景 背景   颜色
---------------------------------------
30   40     黑色
31   41     紅色
32   42     綠色
33   43     黃色
34   44     藍色
35   45     紫紅色

36   46     青藍色

37   47     白色




m能设置为:
代码     意义
-------------------------
0          OFF
1          高亮显示
4         下划线
5          闪烁
7          反白显示
8          不可见



那么设置 为 黑底紫红色 下划线 的参数是   \e[35;40;4m  。记得最后要添加 还原默认的显示 方式。 \e[0m
命令:  echo -e "\e[35;40;4m 你好 \e[0m"   


再来看初始的 PS1设置:
\[  \e[37;40m\]  [  \[\e[32;40m\]  \u  \[\e[37;40m\]  @\h   \[\e[35;40m\]  \W  \[\e[0m\]   ]  \$
\[                                                                                                                                                       显示 [
\[  \e[37;40m\]                                                                                                                                  设置 默认显示为:黑底白字
\[  \e[37;40m\]  [                                                                                                               ]              添加  括号
\[  \e[37;40m\]  [  \[\e[32;40m\]  \u                                                                                  ]  \$          设置 \u 用户的 显示属性



2016-01-26 19:02 举报
已邀请:
0

sincethen

赞同来自:

来源于:http://my.oschina.net/fufangchun/blog/305135
一些BUSH 命令提示符:
可在 . /etc/bashrc 添加:

1. 在成功执行的命令上增加一个笑脸符号:
命令执行成功,你将会得到一个笑脸作为你的命令行提示,一旦的命令执行失败,命令行提示将会换成一个哭脸。且闪烁和高亮。


PS1="\`if [ \$? = 0 ]; then echo   \[\e[40\;33\;5\;1m\]^_^\[\e[0m\]; else echo \[\e[40\;31\;5\;1m\]@_@\[\e[0m\];   fi\`[\u@\h:\w]\\$"
echo 'export PS1="\`if [ \$? = 0 ]; then echo   \[\e[40\;33\;5\;1m\]^_^\[\e[0m\]; else echo \[\e[40\;31\;5\;1m\]@_@\[\e[0m\];   fi\`[\u@\h:\w]\\$"' >> /etc/bashrc


2.更改失败命令的颜色


PS1="\[\033[40;33;1m\][\!]\`if [[ \$? =   "0" ]]; then echo "\\[\\033[32m\\]"; else echo   "\\[\\033[31m\\]"; fi\`[\u@\h: \`if [[ `pwd|wc -c|tr -d "   "` > 18 ]]; then echo "\\W"; else echo "\\w";   fi\`]\\$\[\033[0m\] "; echo -ne "\033]0;`hostname -s`:`pwd`\007"


echo 'export PS1="\[\033[40;33;1m\][\!]\`if [[ \$?   = "0" ]]; then echo "\\[\\033[32m\\]"; else echo   "\\[\\033[31m\\]"; fi\`[\u@\h: \`if [[ `pwd|wc -c|tr -d "   "` > 18 ]]; then echo "\\W"; else echo "\\w";   fi\`]\\$\[\033[0m\] "; echo -ne "\033]0;`hostname   -s`:`pwd`\007"' >> /etc/bashrc





0

sincethen

赞同来自:

本帖最后由 sincethen 于 2016-1-27 13:43 编辑

个人所设的PS1
PS1="\[\e[33;40m\]\t\[\e[0m\]:\[\e[34;40m\]\w \n\[\e[0m\][\[\e[35;40m\]\u\[\e[37;40m\]@\h][\`if [[ \$? = "0" ]];then echo "\\[\\033[32m\\]"; else echo  "\\[\\033[31m\\]"; fi\`\!\[\e[0m\]]\$ "


0

阿铭 管理员

赞同来自:

有缺陷。

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: