自定义 Prompt 实现 Linux 终端高亮

  • 2016-10-29
  • 1,182
  • 0

什么是Prompt

  为什么要强调自定义 Prompt 呢,因为它并不是一个工具或插件,而是一个 Bash提示符(PS1)的参考标准,也就是如何去定义 PS1 这个特殊的环境变量。Prompt 英文的含义就是“提示”,在终端上通常显示为这样:

  PS1 是一个特殊的环境变量,默认值通常是[\u@\h \W]\$

  它不仅控制着 bash 的显示格式,还有高亮的颜色。如果设置得当,则会让命令行看起来更加舒服,也更加高效。就像 vim 一样,有了关键字和语法高亮的优点,就足以让人忘掉 vi…

  set 命令可以查看系统默认的 PS1 变量,set | grep PS1

  这里分别找了两台,【已修改PS1】和【没有修改过PS1】的机器,set 查询的时候已经可以发现区别:
ps1prompt
 

如何设置  

  我是偶然在安装 oneinstack 脚本环境后,发现这个 prompt 颜色恰到好处,因此从 oneinstack 中整理出的 prompt 格式为:

  在bash中直接定义 PS1 或 export 命令导入PS1,是临时生效的;如果需要永久生效,可以编辑 /etc/profile,在底部重新定义PS1

参数含义:
 \u用户名,即此处的root
 \h主机名
 \e转义字符,用于转义括号[]内的颜色
 \W获取工作目录名称
 \$如果是root用户,提示符为#,否则为$


括号[]中设置颜色:
 颜色由ANSI escape code定义,“30+数字”代表前景色,“40+数字+m”代表背景色

  是不是这样设置完成后,感觉bash更好看了呢。对于 PS1,还有很多参数可以定义,比如可以加上 \t 或 \T 代表时间等,这篇文章整理得非常详细 G.T.Wang – 自訂 Prompt
 


其它参考文档:
Wiki百科 – ANSI escape code
Archlinux Wiki – Color Bash Prompt (简体中文)

评论

还没有任何评论,抢个沙发?

发表评论