由于Linux终端命令行全部为白色,会经常导致命令与输出内容难以分辨。于是上网找到修改linux终端命令行颜色的方法,发现通过定义PS1环境变量即可实现,下面我以root用户身份进行操作。
1、了解PS1
PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。
在终端输入命令:
echo $PS1
可得到当前PS1的定义值:
PS1='[u@h W]$ '
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默认的命令行提示信息的格式:
PS1='[u@h W]$ ' [当前用户的账号名称@主机名的第一个名字 工作目录的最后一层目录名]#
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[37;40m][[e[32;40m]u[e[37;40m]@h [e[35;40m]W[e[0m]]$'
但注意这样的设置只是临时性的。
3、修改.bashrc文件,永久保存命令行样式
上面的设置的作用域只有当前终端的登录有效,关闭终端或退出登录即刻失效。要想永久性的保存设置,需要修改.bashrc配置文件。
键入命令:
cd ls -la
现在可以看到.bashrc这个文件。
编辑.bashrc:
vim .bashrc
在最后面加入这一行:
PS1='[e[37;40m][[e[32;40m]u[e[37;40m]@h [e[35;40m]W[e[0m]]$'
保存退出。
重新加载bash配置文件:
source .bashrc
即可立即并永久生效了。
效果如下: