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 | 白色 |