Linux 终端命令行提示符的艺术--PS1进阶
Linux 终端命令行提示符的艺术--PS1进阶
话不多说,先瞅瞅我的命令行提示符(有点大):
图中命令行解释:
┌[阳历日期/农历日期 时间]
├[当前目录下目录数+当前目录下文件数][当前绝对目录]
└[用户名@主机名-第几个终端 ╰_╯]
相关配置文件
全局配置文件:/etc/bash.bashrc或者/ect/bashrc
单用户配置文件:“~”目录下的.bashrc隐藏文件
代码
对应于上图中的代码如下(添加位置一般将原有的PS1覆盖为准,即可以在原有的PS1上修改,也可以直接添加到配置文件的最后):
=$( +%=$( -R | -c - | =$(lunar ` +%Y\ %m\ %d` | | | =$( -l | ^d | -l);fn=$( $( | -l) -=$( $Lunar| - = ] && space= = ] && space= =
\\\[\[\e[;34m\]${dn}\[\e[00m\]+${fn}][\[\e[;34m\]\\\[${debian_chroot:+($debian_chroot)}\[\e[;32m\]\u@\h-\l \[\e[00m\]\\\\\\\]\$=get_ps1
如果你觉的上面的命令行提示符太复杂,你也可以将它缩减。。。
你需要了解的
如果你想设计一个自己喜欢的并且够炫的命令行提示符,你首先要了解以下一些东西。
1)里面涉及到了农历日期,在Ubuntu 12.04 LTS中可以从源中找到lunar软件包,但在Fedora和CentOS中并没有,为此我写了一个阳历转农历的shell脚本,具体可以参见我的。
2)转义符及颜色。这个我就不再罗嗦了,google一下“Linux 命令行 颜色”会有很多答案的。
3)PROMPT_COMMAND,这个是实时命令行的关键,这个变量的内容会在显示bash提示符前执行,所以上面用到的实时内容需要它。
4)特殊字符显示不了怎么办?你可以将它转换为字符编码,可以在进行转义,在Plain text栏输入你要转义的字符,在\OOO栏就是你想要的字符编码。
评论暂时关闭