关于PS1的小小折腾
笔者今天折腾了不少东西,其中一个是Bash Shell的PS1(续行是PS2),也就是那个所谓的提示符~嗯,先把没有修改之前的默认设置记下:
ROOT:PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
USER:PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
然后下面的是笔者修改过后的PS1,嗯,个人觉得很好用:(你可以写到”~/.bashrc”或者”/etc/bash.bashrc”中)
ROOT:PS1='\[\e]2;[\d] -- [\u@\H] -- [\w]\a\]`rv=$?;if [ $rv -ne 0 ]; then echo -n -e "\[\e[07m\]{$rv}\[\e[00m\]"; fi`\[\e[01;34m\][\t] \[\e[01;33m\]\h \[\e[01;36m\]\W \[\e[01;31m\]\$ \[\e[00m\]'
USER:PS1='\[\e]2;[\d] -- [\u@\H] -- [\w]\a\]`rv=$?;if [ $rv -ne 0 ]; then echo -n -e "\[\e[07m\]{$rv}\[\e[00m\]"; fi`\[\e[01;35m\][\A] \[\e[01;32m\]\u \[\e[01;34m\]\W \[\e[01;36m\]\$ \[\e[00m\]'
这个是效果图:
然后附上一些在网上找到的资料: (关于转义字符)
\a ASCII响铃字符(等同\007)
\A 24小时制时间(没有秒数)
\d 输出"Wed Sep 06"格式的日期
\e ASCII转义字符(等同\033)
\h 主机名的第一部分(如"icyomik")
\H 主机名的全称(如"icyomik.example.com")
\j 在当前SHELL中通过按^Z挂起的进程数
\l 当前SHELL的终端设备名
\n 换行符
\r 回车符
\s SHELL的名称(如"bash")
\t 24小时制时间(如"23:01:01")
\T 12小时制时间(如"11:01:01")
\u 当前用户的名称
\v Bash版本
\V Bash版本(包括补丁级别)
\w 当前工作目录(绝对路径)
\W 当前工作目录(basename)
\! 当前命令在历史缓冲区中的位置
\@ 带有AM/PM的12小时制时间
\# 命令编号(你输入的第多少个命令)
\$ 如果不是超级用户(root),则插入一个"$";否则显示一个"#"
\[ 这个序列应该出现在不移动光标的字符序列之前(如颜色转义序列)
\] 这个序列应该出现在非打印字符序列之后(同上者构成一个伪作用域)
备注:被\[和\]括起来的字符,将作为非打印字符用于PS1、PS2显示颜色和格式,不应该省略。 当没有这两个转义序列时,而如果你键入的命令又恰好到达终端的最右端,就会造成显示的混乱。
(关于颜色,格式:\[\e[X;Ym\]
,X、Y指颜色的数值)
颜色对应关系:(30~37为前景色,40~47为背景色,具体可以”man dir_colors”)
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
其他颜色代码:
00 OFF
01 高亮(粗体)
04 下划线
05 闪烁(没有效果?)
07 反白显示
08 不可见
下面是一个比较好用的特殊格式,用于设置标题栏(用你要的字符替换其中的TITLE_VALUES即可):
\[\e]2;TITLE_VALUES\a\]
好了,关于PS1、PS2提示符,笔者用到的大概就这么多了,至于其他可以自己GOOGLE一下~