首页 > Linux 终端命令行提示符的艺术--PS1进阶

Linux 终端命令行提示符的艺术--PS1进阶

话不多说,先瞅瞅我的命令行提示符(有点大):

图中命令行解释:

┌[阳历日期/农历日期 时间]

├[当前目录下目录数+当前目录下文件数][当前绝对目录]

└[用户名@主机名-第几个终端 ╰_╯]

相关配置文件

全局配置文件:/etc/bash.bashrc或者/ect/bashrc

单用户配置文件:“~”目录下的.bashrc隐藏文件

代码

对应于上图中的代码如下(添加位置一般将原有的PS1覆盖为准,即可以在原有的PS1上修改,也可以直接添加到配置文件的最后):

get_ps1()
{
Date=$(date +%F)Time=$(date -R | cut -c 18-25 |sed 's/,//')Lunar=$(lunar `date +%Y %m %d` |grep '^Lunar :' |awk '{print $3}' |sed 's/^.....(.*)..$/1/')dn=$(ls -l | grep ^d | wc -l);fn=$(expr $(ls | wc -l) - ${dn})Num=$(echo $Lunar|wc -m)
[ "$Num" = "5" ] && space=' '
[ "$Num" = "4" ] && space='  'PS1="342224214[[e[01;32m]${Date}/${Lunar} ${space}${Time}[e[00m]]

342224234[[e[01;34m]${dn}[e[00m]+${fn}][[e[01;34m]w[e[00m]]

342224224[${debian_chroot:+($debian_chroot)}[e[01;32m]u@h-l [e[00m]342225260137342225257]$"
}
PROMPT_COMMAND=get_ps1

如果你觉的上面的命令行提示符太复杂,你也可以将它缩减。。。

你需要了解的

如果你想设计一个自己喜欢的并且够炫的命令行提示符,你首先要了解以下一些东西。

1)里面涉及到了农历日期,在Ubuntu 12.04 LTS中可以从源中找到lunar软件包,但在Fedora和CentOS中并没有,为此我写了一个阳历转农历的shell脚本,具体可以参见我的上一篇文章Linux shell实现阳历转农历。

2)转义符及颜色。这个我就不再罗嗦了,google一下“Linux 命令行 颜色”会有很多答案的。

3)PROMPT_COMMAND,这个是实时命令行的关键,这个变量的内容会在显示bash提示符前执行,所以上面用到的实时内容需要它。

4)特殊字符显示不了怎么办?你可以将它转换为字符编码,可以在http://0xcc.net/jsescape/进行转义,在Plain text栏输入你要转义的字符,在OOO栏就是你想要的字符编码。

转载于:https://www.cnblogs.com/snowsolf/p/3192224.html

更多相关:

  • python读写配置文件ConfigParser模块是python标准库自带的读取配置文件的模块.通过他可以方便的读取配置文件.目前示例代码中的Python版本都是基于2.7版本...

  • 在ATS插件开发过程中,我们经常会需要如下业务需求: 某个插件的配置文件更新了,我们需要让新的配置文件生效,但是我们不想重启ATS.因为作为CDN行业的缓存服务器来说,很大部分缓存是直接使用内存存放的,重启ATS意味着你以前所有的缓存都将清空,这是一个巨大的代价,万不得已我们不会这么办. 那么如何在不重启ATS的情况下,也能让插件...

  •     在minicom -s配置是记得取消硬件流控制。 1.minicom -o 配置文件 2.alias  com='minicom -o 配置文件' 转载于:https://www.cnblogs.com/niceskyfly/p/5257713.html...

  • 1. 首先创建一个winform解决方案 2. 与添加类文件相同的方法添加配置文件,比如:右击解决方案下的项目名称—>添加—>新建项—>选择 “应用程序配置文件”,.net默认文件名为app.config,点击确定 打开文件app.config,加入配置文件内容,比如: