Linux 修改终端命令行颜色

标签: none

Linux终端命令行全部为白色,会经常导致命令与输出内容难以分辨。
通过定义PS1环境变量即可实现,下面我以root用户身份进行操作。

在终端输入命令:

# echo $PS1

可得到当前PS1的定义值:

PS1='[\u@\h \W]\$ '

1.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时,提示符为:# ,普通用户则为:$  

  由此,我们可知linux默认的命令行提示信息为:[当前用户的账号名称@主机的第一个名字 工作目录的最后一项]#

2.颜色的设置
在PS1中设置字符颜色的格式为:\[\e[F;Bm\]....\[\e[0m\],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。\[\e[0m\]作为颜色设定的结束。
颜色表如下:

F       B
30      40      黑色   
31      41      红色   
32      42      绿色   
33      43      黄色   
34      44      蓝色   
35      45      紫红色   
36      46      青蓝色   
37      47      白色  

只需将对应数字套入设置格式中即可。
比如要设置命令行的格式为绿字黑底\[\e[32;40m\],显示当前用户的账号名称\u、主机的第一个名字\h、完整的当前工作目录名称\w、24小时格式时间\t,可以直接在命令行键入如下命令:

# PS1='[\[\e[32;40m\]\u@\h \w \t]$ \[\e[0m\]'

经过多次测试后,最终确定了一个适合我自己的格式:

PS1='\[\e[35;40m\][\[\e[31;40m\]\u\[\e[33;40m\]@\[\e[36;40m\]\h\[\e[35;40m\]]-[\[\e[37;40m\]\t\[\e[35;40m\]]-[\[\e[33;40m\]\#\[\e[35;40m\]]-[\[\e[32;40m\]\w\[\e[35;40m\]]\n\[\e[33;40m\]   >>\$ \[\e[0m\]'

3.修改.bashrc文件,永久保存命令行样式.
通过上面的设置只能改变当前终端的命令行格式,关闭这个终端,在重新打开的一个终端中命令行格式又会恢复到默认的形式。想要永久性的改变终端命令行格式,需要修改.bashrc文件。

键入命令:

#cd /
#ls -all

现在可以看到.bashrc这个文件。
编辑.bashrc:

vim .bashrc

加入这一行:

PS1='\[\e[35;40m\][\[\e[31;40m\]\u\[\e[33;40m\]@\[\e[36;40m\]\h\[\e[35;40m\]]-[\[\e[37;40m\]\t\[\e[35;40m\]]-[\[\e[33;40m\]\#\[\e[35;40m\]]-[\[\e[32;40m\]\w\[\e[35;40m\]]\n\[\e[33;40m\]   >>\$ \[\e[0m\]'

保存退出。

重新加载bash配置文件:

source .bashrc





来源: https://www.cnblogs.com/menlsh/archive/2012/08/27/2659101.html
https://www.cnblogs.com/Q--T/p/5394993.html


扫描二维码,在手机上阅读!

添加新评论