标签搜索

Linux彩色命令提示符prompt

lilymaxyz
2025-03-12 / 0 评论 / 0 阅读 / 正在检测是否收录...

@TOC

一、彩色命令提示符prompt

登录Linux后,默认的系统提示符毫无个性,无法明显辨别生产和测试环境,而导致误操作。可以通过修改PS1变量实现个性的提示符格式,避免这种低级错误。

1.1.默认的提示符

#Rocky默认的提示符
[dange@rocky8-1 ~]# 

#ubuntu默认的提示符
dange@ubuntu2204:~# 
 - # 管理员
 - $ 普通用户
#查看当前命令提示符
[dange@rocky8-1 ~]$ echo $PS1
[\u@\h \W]\$
PS1变量代表的内容就是用户名+@+主机名+路径名(长路径)+ $

# 如果以root用户登录主机,则默认提示符为,对应的就是上面的[\u@\h \W]\$
[dange@rocky8-1 ~]# 

# PS1中的值要使用单引号引用,如果是双引号,则某些替换符不会被解析
PS1='\[\e[31m\][\u@\h \W]\$\[\e[0m\]'

# 如果是永久保存,则要写入文件
echo "PS1='\[\e[31m\][\u@\h \W]\$\[\e[0m\]'" > /etc/profile.d/env.sh 
source /etc/profile.d/env.sh

1.2.PS1变量中的常用选项

PS1变量中的常用选项说明
#PS1变量中的常用选项
\d日期,格式为"星期 月 日"
\H完整的主机名。如默认主机名"localhost.localdomain"
\h简写的主机名。如默认主机名"localhost"
\t24小时制问题,格式为"HH:MM:SS"
\T12小时制时间,格式为"HH:MM:SS"。
\A24小时制时间,格式为"HH:MM"。
\@12小时制时间,格式为"HH:MM am/pm"。
\u当前用户名。
\vBash版本信息。
\w当前所在目录的完整名称。
\W当前所在目录的最后一个目录。
\#执行的第几条命令。
$提示符。如果是 root 用户,则会显示提示符为"#";如果是普通用户,则会显示提示符为"$"

1.3.PS1中颜色部分

1.3.1.开始结束位

#PS1中颜色部分
\033[     #开始为
\033[0m   #结束位

# 上面的\033 可以换成 \e
# 颜色设置 \e[ 颜色m  内容 \e[0m  颜色后面要用m结束,多个颜色,用;分隔,只要一个m
\e[31m我是红色\e[0m

1.3.2.各颜色表示方式

字体颜色背景色颜色
3040黑色
3141红色
3242绿色
3343黄色
3444蓝色
3545紫红色
3646青蓝色
3747白色
字体颜色背景颜色
\e[30m我是黑色\e[0m\e[40m我是黑色\e[0m
\e[31m我是红色\e[0m\e[41m我是红色\e[0m
\e[32m我是绿色\e[0m\e[42m我是绿色\e[0m
\e[33m我是黄色\e[0m\e[43m我是黄色\e[0m
\e[34m我是蓝色\e[0m\e[44m我是蓝色\e[0m
\e[35m我是紫红色\e[0m\e[45m我是紫红色\e[0m
\e[36m我是青蓝色\e[0m\e[46m我是青蓝色\e[0m
\e[37m我是白色\e[0m\e[47m我是白色\e[0m
# 字体颜色+背景颜色组合,字体颜色和背景颜色不分先后,因为值不一样
\e[30;40m红底黑字\e[0m
\e[41;30m红底黑字\e[0m

1.3.3.特殊效果

特殊效果含义
0关闭效果
1高亮效果
3斜体
4下划线
5闪烁,闪烁效果与远程工具所在的环境有关
7反白显示
8隐藏
9删除线
可组合使用,但如果效果有冲突时,以最后的为准,就是说,后面的效果,会覆盖前面的效果
\e[30;41;5m红底黑色字闪烁\e[0m
\e[4;30;41;5m红底黑色字下划线闪烁\e[0m

\e[0;4;30;41;5m红底黑字下划线闪烁\e[0m  #这里的0;4;5 都表示效果,但后面的4;5覆盖了前面的0
\e[4;30;41;5;0m红底黑字下划线闪烁\e[0m  #这样写,4;5的效果都被0去掉了

1.4.范例:在CentOS系统实现持久保存提示符格式

PS1='[\u@\h \W]\$'
PS1='\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\$\[\e[0m\] '

在这里插入图片描述

PS1='\[\e[31;1m\][\u@\h \W]\$ \[\e[0m\]'

在这里插入图片描述

1.5.范例:ubuntu2204中PS1

dange@ubuntu2204:~$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

#  ${debian_chroot:+($debian_chroot)}  表示给变量赋值,如果存在
/etc/debian_chroot 文件,则该文件中内容会被赋值给变量$debian_chroot

#文件不存在
root@ubuntu2204:~# ls /etc/debian_chroot
ls: cannot access '/etc/debian_chroot': No such file or directory

#变量为空
root@ubuntu2204:~# echo $debian_chroot

在 ubuntu2204 中,设置 PS1,如果要对所有普能用户生效,将 PS1 定义写在 /usr/share/bash-completion/bash_completion 的最下面,如里需要对每个用户单独定义,写在用户家目录的 .bashrc 文件的最下面。

范例:实现Ubuntu系统持久保存提示符格式

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

PS1='\[\e[1;31m\][\u@\h:\w]\$\[\e[0m\] '

在这里插入图片描述

1.6.PS1中颜色设置过程分解【详解】

在这里插入图片描述

[\u@\h \W]\$
用户名+@+主机名+路径名(长路径)+ 提示符符号($)

颜色如何设置:
一个单独的颜色设置:  \e[代码;前景;背景m, 如:\[\e[1;32;40m\]表示高亮显示字体为绿色,背景色为黑色。
注意:颜色的设置,放在相应的要设置的前面
如用户名颜色设置:  \[\e[01;35;40m\]\u
结束颜色设置:     \[\e[0m\]
PS1='[\u@\h \W]\$ '
PS1='\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\$ '
PS1='\e[31;1m[\u@\h \W]\$ \e[0m '
PS1='\e[1;35m[\u@\h \W]\$ \e[0m '
PS1='\[\e[1;35m\][\u@\h \W]\$ \[\e[0m\] '

如用户名颜色设置:  \[\e[01;35;40m\]\u
结束颜色设置:     \[\e[0m\]
PS1='[\u@\h \W]\$ '
PS1='[\u@\h \W]\$ '
PS1='\[\e[1;32m\][\u@\h \W]\[\e[0m\]\$ '
PS1='\[\e[1;32m\][\[\e[1;33m\]\u@\h \W]\[\e[0m\]\$ '
PS1='\[\e[1;32m\][\[\e[1;33m\]\u\[\e[1;35m\]@\h \W]\[\e[0m\]\$ '
PS1='\[\e[1;32m\][\[\e[1;33m\]\u\[\e[1;35m\]@\h\[\e[1;31m\] \W]\[\e[0m\]\$ '
PS1='\[\e[1;32m\][\[\e[1;33m\]\u\[\e[1;35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\$ '

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.7.我使用的色彩

1.7.1.Rocky8

PS1='\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\$ '
PS1='\[[\[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\$ '
PS1='\[\e[31;1m\][\u@\h \W]\$ \[\e[0m\]'

# 如果是永久保存,则要写入文件
echo "PS1='\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\$ '" > /etc/profile.d/env.sh 
echo "PS1='\[\e[31;1m\][\u@\h \W]\$ \[\e[0m\]'" > /etc/profile.d/env.sh 
source /etc/profile.d/env.sh

在这里插入图片描述

在这里插入图片描述

1.7.2.ubuntu2004

[13:49:10 dange@ubuntu2004 ~]$ echo $PS1
\[\e[1;32m\][\t \[\e[1;35m\]\u@\h \W]\$\[\e[0m\]
[13:49:15 dange@ubuntu2004 ~]$ 
[13:49:21 dange@ubuntu2004 ~]$ su - root
Password: 
[13:49:27 root@ubuntu2004:~]# echo $PS1
\[\e[1;32m\][\t \[\e[1;31m\]\u@\h:\W]\$\[\e[0m\]

在这里插入图片描述

PS1='\[\e[1;31m\][\u@\h:\W]\$\[\e[0m\] '
PS1='\[\e[1;32m\][\t \[\e[1;31m\]\u@\h:\W]\$\[\e[0m\] '
PS1='\[\e[1;32m\][\t \[\e[1;33m\]\u@\[\e[1;31m\]\h:\W\[\e[1;32m\]]\$\[\e[0m\] '
echo "PS1='\[\e[1;31m\][\u@\h:\W]\$\[\e[0m\] '" >> .bashrc
echo "PS1='\[\e[1;32m\][\t \[\e[1;31m\]\u@\h:\W]\$\[\e[0m\] '" >> .bashrc
source .bashrc

1.8.关于为centos7中命令提示符设置颜色之后,无法正常换行的问题

单引号和双引号问题

在这里插入图片描述

endl

0

评论

博主关闭了所有页面的评论