一、需求描述
在Linux下执行命令的时候一般都是黑白配色,但是有时候会出现一个问题,就是执行一条命令之后如果出现大段的内容,你无法在很快速的定位的开头的位置,但是如果Linux提示符能够变成和命令不一样的颜色就能够很快定位了。这里需要一个Linux的环境变量PS1,你可以通过echo $PS1命令输出一下看看你的是什么。默认情况下都是这样的:
PS1='[\u@\h \W]\$ ' # \u表示登陆用户名,\h表示主机名,\W表示当前工作路径的最后一个文件夹也就是当前文件夹,\$表示用户提示符,root用户为#,一般用户为$
下面列出其他的参数,可以根据需求进行添加
二、PS1环境变量参数
\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"
\H :完整的主机名称
\h :仅取主机名中的第一个名字
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称
\v :BASH的版本信息
\w :完整的工作目录名称
\W :利用basename取得工作目录名称,只显示最后一个目录名
\# :下达的第几个命令
\$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $
三、颜色设置
格式:以\[\e[F;Bm\],以\[\e[0m\]结尾,中间是需要设置颜色的部分,其中“F“为字体颜色,编号为30-37,“B”为背景色,编号为40~47 。
F和B对应的八种颜色的顺序为:黑色,红色,绿色,黄色,蓝色,紫红色,青蓝色,白色
- 设置的时候将颜色对应的数字替换掉F(前景色)和B(背景色)即可。
- 此外设置时可以通过export PS1="....."这种方式设置,能够即可生效,但是重启时会失效;
- 想要永久设置需要在当前用户的~/.bashrc文件中进行配置
四、实例
目的:将当前用户的命令提示符永久变成红色
方法:在当前目录的~/.bashrc文件中添加一句话
PS1="\[\e[31;40m\][\u@\h \W]\\$\[\e[0m\] "
保存退出,之后执行source ~/.bashrc命令就会生效了。效果如下:
采坑:"\"符号在这里都是转义的意思,但是我第一次设置的时候输入“\$”,发现显示结果直接是$,即使是root用户也是$,后来我发现原来"[]"里面的直接使用“\”即可,外面要使用“\\$”进行转义。
参考: