[转]PS1应用-修改linux终端命令行字体颜色

原文 :https://www.jianshu.com/p/4239d3ea72fe

最近在学习linux操作系统(CentOS 6 & CentOS 7)。觉得linux终端命令行全部为白色,会经常导致命令与输出内容难以分辨。于是上网找到修改linux终端命令行颜色的方法,发现通过定义PS1环境变量即可实现,下面我以root用户身份进行操作。

1.了解PS1
  PS1是Linux终端用户的一个环境变量,用来定义命令行提示符的参数。
  在终端输入命令:

set | grep 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] xxxx [\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\]]$ '

但注意这样的设置只是临时性的.

3.修改.bashrc文件,永久保存命令行样式.
  上面的设置的作用域只有当前终端的登陆有效,关闭终端或退出登录即刻失效。要想永久性的保存设置,需要修改.bashrc配置文件。
  键入命令:
1 # cd
2 # ls -la

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

 nano .bashrc

加入这一行:

PS1="\[\e[37;40m\][\[\e[36;40m\]\u@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "

ctrl+o保存 ctrl+x退出。  重新加载bash配置文件:

source .bashrc

即可立即并永久生效了。

效果如图,再也不怕在茫茫字海中苦苦搜寻命令行的下落了.

image

你可能感兴趣的:([转]PS1应用-修改linux终端命令行字体颜色)