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
原文