修改linux终端命令行各字体颜色

最近在学习sed,linux终端经常性全为白色,命令和输出难以识别,发现通过定义PS1环境变量可以实现。

1、了解PS1

PS1是用来定义命令行提示符的参数。

查询当前PS1的定义值:

set | grep 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 :完整的工作目录名称

扫描二维码关注公众号,回复: 41632 查看本文章

\W :利用basename取得工作目录名称,只显示最后一个目录名

# :下达的第几个命令

\$ :提示字符,如果是root用户,提示符为 # ,普通用户则为 $

此时可以看出PS1='[\u@\h \W]\$ '的意思就是:[当前用户的账号名称@主机名的第一个名字 工作目录的最后一层目录名]

2、颜色设置

设置颜色的格式为:以[\e[F;Bm]开始,以\e[m结束。其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。

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

将我们所需要的颜色套入格式即可,例如:

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

显示当前用户的账号名称(\u)、主机的第一个名字(\h)、完整的当前工作目录名称(\w)、24小时格式时间(\t)

附我自己的格式:

PS1='\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\$ '

3、永久保存

修改.bashrc文件

root用户下找到.bashrc这个文件,编辑这个文件,在最后一行加入自己喜欢的样式,例如加入上面的

PS1='\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[35;40m\]\W\[\e[0m\]]\$ '

保存退出,然后执行

source .bashrc
这样即可做到永久生效了




猜你喜欢

转载自blog.csdn.net/Battle_Mage/article/details/80038742