Linux如何更改shell提示符的颜色

时间:2019-11-20 08:53:02  来源:igfitidea点击:

如何更改bash shell提示符的颜色?

在Linux/Unix中,shell命令提示符是由shell变量PS1进行设置的。还有其他变量,例如PS2,PS3和PS4。
当准备读取命令时,PS1是主要提示符,PS2辅助提示符。
Bash允许通过插入许多反斜杠转义的特殊字符来定制这些提示字符串。

显示当前的BASH提示符(PS1)

使用echo命令查看当前的BASH提示符:

$ echo $PS1

输出示例:

[\u@\h \W]\$

Debian系统示例:

$ echo $PS1

输出示例:

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w$

默认情况下,命令提示符设置为[\ u @ \ h \ W] \ $

反斜杠转义的特殊字符:

  • \ u:显示当前用户名
  • \ h:显示主机名
  • \ W:打印当前工作目录。
  • \ $:如果有效UID为0,则显示#(表示是root用户),否则显示$。

修改linux shell的提示符

在修改设置之前,请使用以下命令保存旧的提示符:

oldps1="$PS1"

这样,在有问题的时候,我们可以执行下面的命令进行恢复:

PS1="$oldps1"

使用export命令,设置新的shell提示符:

$ export PS1="[\u@\H \W \@]\$ "

其中:

  • \ H:显示主机名。
  • \ @:以12小时上午/下午格式显示当前时间

设置bash shell提示符的颜色

使用下面语法给shell提示符添加颜色:

'\e[x;ym $PS1 \e[m'

其中

  • \e[: 表示开始配色方案
  • x;y: 要设置的颜色
  • $PS1: 我们的shell变量提示符
  • \e[m: 表示停止配色方案。

示例:设置红色提示符:

$ export PS1="\e[0;31m[\u@\h \W]$ \e[m "

颜色代码表

颜色代码
黑色0; 30
蓝色0; 34
绿色0; 32
青色0; 36
红色0; 31
紫色0; 35
棕色0; 33
蓝色0; 34
绿色0; 32
青色0; 36
红色0; 31
紫色0; 35
棕色0; 33

说明:将数字0替换为1可以得到浅色的颜色。

如何使提示符的设置进行永久化?

我们刚才使用$PS1设置的新Shell提示符设置是临时的,即在注销时会丢失。
要使设置永久生效,可以在配置文件 " $HOME/.bash_profile"文件或" $HOME/.bashrc"文件中进行设置。

$ cd
$ vi .bash_profile

或者

$ vi $HOME/.bashrc

添加下面的行:

export PS1="\e[0;31m[\u@\h \W]$ \e[m"

示例:在Bash更改Shell提示符的颜色

在~/.bashrc中添加以下命令:

export PS1="\[\e[32m\][\[\e[m\]\[\e[31m\]\u\[\e[m\]\[\e[33m\]@\[\e[m\]\[\e[32m\]\h\[\e[m\]:\[\e[36m\]\w\[\e[m\]\[\e[32m\]]\[\e[m\]\[\e[32;47m\]\$\[\e[m\] "

显示欢迎信息

可以使用tput命令设置终端并修改提示设置。

例如,显示红色提示:

export PS1="\[$(tput setaf 1)\]\u@\h:\w $ \[$(tput sgr0)\]"

Tput命令行选项列表

  • tput bold粗体效果
  • tput rev显示反色
  • tput sgr0重置所有内容
  • tput setaf 颜色代码设置前景色。
  • tput setab 颜色代码设置背景颜色。

tput命令中颜色代码

颜色代码颜色
0黑色
1红色
2绿色
3黄色
4蓝色
5洋红色
6青色
7白色