BASH Shell更改Linux或UNIX上Shell提示符的颜色

时间:2020-01-09 10:37:25  来源:igfitidea点击:

在Linux或Unix操作系统下,如何更改shell提示符的颜色?
在命令提示符下工作时,您可以更改shell提示符的颜色以打动您的朋友或使自己的生活变得很轻松。

BASH shell是Linux和Apple OS X的默认设置。
您当前的提示设置存储在名为PS1的shell变量中。
还有其他变量,例如PS2,PS3和PS4。

当准备读取命令时,Bash显示主要提示PS1,而在需要更多输入来完成命令时,Bash显示辅助提示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用户),否则显示$。

修改当前的BASH提示

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

oldps1="$PS1"

因此,如果您搞砸了,可以使用以下语法轻松地切换回:

PS1="$oldps1"

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

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

输出示例:

新的提示在起作用

其中:

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

在提示中添加颜色

要为shell提示添加颜色,请使用以下导出命令语法:'\e[x;ym $PS1 \e[m'

  • \e[: 开始配色方案
  • x;y: 要使用的颜色对(x; y)
  • $PS1: 您的shell提示变量。
  • \e[m: 停止配色方案。

要设置红色提示,请键入以下命令:

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

颜色代码列表

颜色||代码
黑色
蓝色
绿色
青色
红色
紫色
棕色
蓝色
绿色
青色
红色
紫色
棕色

注意:您需要将数字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"

保存并关闭vim/vi中的文件。

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

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

# let us setup prompt
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\] "

您将得到如下提示:这是另一个包含命令退出状态的示例:

# 
#\u - user name
#\h - short hostname
#\W - current working dir
#\? - exit status of the command
export PS1="{\[\e[32m\]\u\[\e[m\]@\[\e[36m\]\h\[\e[m\]:\W_$?}$ "

tput命令

您还可以使用tput命令设置终端并修改提示设置。
例如,要使用输入显示红色提示:

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

方便的Tput命令行选项列表

  • tput bold粗体效果
  • tput rev显示反色
  • tput sgr0重置所有内容
  • tput setaf {CODE}设置前景色,有关更多信息,请参见下表{CODE}。
  • tput setab {CODE}设置背景颜色,有关更多信息,请参见下面的颜色{CODE}表。

tput命令的各种颜色代码

颜色{code}颜色
0黑色
1红色
2Green
3黄色
4Blue
5洋红色
6青色
7White