Linux 修改终端命令行颜色

Linux 终端命令行全部为白色, 会经常导致命令与输出内容难以分辨

通过定义 PS1 环境变量即可实现,下面我以 root 用户身份进行操作

在终端输入命令

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 默认的命令行提示信息为

# [当前用户的账号名称@主机的第一个名字 工作目录的最后一项]#
[\u@\h \W]\$

颜色的设置

在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\]'

# 样式
[root@server ~ 14:42:23]# 

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

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\]'

# 样式
[root@server]-[14:44:51]-[4]-[~]
   >># 


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

# 样式
[root@server ~ 03:47:37]# 

永久保存

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

键入命令

cd ~
ls -al

现在可以看到 .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

或者可以一键导入

echo "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\]'" >> ~/.bashrc

原文

修改linux终端命令行颜色
PS1应用之——修改linux终端命令行各字体颜色

最后更新于 2017-12-21
使用 Hugo 构建
主题 StackJimmy 设计