个性化PS1变量

##PS1是个啥? 鸟哥的书中关于PS1这么说的:linux

这是 PS1 (数字的 1 不是英文字母),这个东西就是咱们的『命令提示字符』喔! 当咱们每次按下 [Enter] 按键去运行某个命令后,最后要再次出现提示字符时, 就会主动去读取这个变量值了。上头 PS1 内显示的是一些特殊符号,这些特殊符号能够显示不一样的信息, 每一个 distributions 的 bash 默认的 PS1 变量内容可能有些许的差别,没关系,『习惯你本身的习惯』就行了。 你能够用 man bash (注3)去查询一下 PS1 的相关说明,以理解底下的一些符号意义。shell

总结来讲,这个环境变量主要控制这命令提示符(也就是终端里的wgjak47@wgjak47-M410:~$)的样式。 ubuntu下这个变量值默认为\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 而其中{debian_chroot:+($debian_chroot)} 这句的意思是说,若是在/etc下有debian_chroot文件,则命令提示符前面就附加上debian_chroot文件的内容。关于:+这个语法的能够参考:[linux bash shell之变量替换][http://my.oschina.net/u/1242185/blog/357330]ubuntu

根据man page,PS1的经常使用的变量值有如下项:bash

\a 一个 ASCII 响铃字符 (010)
\d 日期,格式是 "星期 月份 日" (例如,"Tue May 26")
\D{format}
format 被传递给 strftime(3),结果被插入到提示字符串中; 空的 format 将使用语言环境特定的时间格式。花括号是必需的
\e 一个 ASCII 转义字符 (033)
\h 主机名,第一个 `.' 以前的部分
\H 主机名
\j shell 当前管理的做业数量
\l shell 的终端设备名的基本部分
\n 新行符
\r 回车
\s shell 的名称, $0 的基本部分 (最后一个斜杠后面的部分)
\t 当前时间,采用 24小时制的 HH:MM:SS 格式
\T 当前时间,采用 12小时制的 HH:MM:SS 格式
@ 当前时间,采用 12小时制上午/下午 (am/pm) 格式
\A 当前时间,采用 24小时制上午/下午格式
\u 当前用户的用户名 the username of the current user
\v bash 的版本 (例如,2.00)
\V bash 的发行编号,版本号加补丁级别 (例如,2.00.0)
\w 当前工做目录
\W 当前工做目录的基本部分
! 此命令的历史编号
# 此命令的命令编号
$ 若是有效 UID 是 0,就是 #, 其余状况下是 $
\nnn 对应八进制数 nnn 的字符
\ 一个反斜杠
[ 一个不可打印字符序列的开始,能够用于在提示符中嵌入终端控制序列
] 一个不可打印字符序列的结束
经过设置PS1变量能够获得你但愿的提示符样式。字体

更进一步:彩色化 这个其实没什么太大用处,只是让提示符更好看一些。 PS1环境变量支持如下色彩和特效:.net

颜色表code

前景 背景 颜色

30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫色
36 46 青色
37 47 白色orm

代码 意义

0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见blog

使用方法:字符串

在PS1中配置字符序列颜色的格式为:

[\e[F;Bm]

基本上是夹在 "\e["(转义开方括号)和 "m" 之间数字值。假如指定一个以上的数字代码,则用分号将他们分开。

其中 F 为字体颜色,编号30~37; B 为背景色,编号40~47。

可经过 \e[0m 关闭颜色输出;特别的,当B为1时,将显示加亮加粗的文字,请看下面的颜色表和代码表。

例: export PS1="\[\e[32;1m\]\u@\[\e[32;1m\]\H\$ \[\e[0m\]"

相关文章
相关标签/搜索