您的位置:首页 > 教育 > 锐评 > 亲手打造自己的Linux命令提示符

亲手打造自己的Linux命令提示符

2025/11/10 17:56:20 来源:https://blog.csdn.net/qq_62453104/article/details/141887294  浏览:    关键词:亲手打造自己的Linux命令提示符

最近租了个服务器,但是自带的命令提示符太ugly了,决定自己捯饬捯饬。

shell命令提示符是存储在$PS1这个环境变量中,因此我们只要对$PS1进行修改,就可以修改命令提示符了。

需要先知道$PS1的常用参数

  • \u: 用户

  • \h: 主机名(短格式

  • \H: 主机名(完整格式

  • \w: 当前工作目录的完整路

  • \W: 当前工作目录的基本名称(仅目录名

  • \d: 当前日期,格式为 Weekday Month Dat

  • \t: 当前时间,格式为 HH:MM:S

  • \T: 当前时间,格式为 HH:MM:SS(12小时制

  • \@: 当前时间,格式为 HH:MM AM/PM(12小时制

  • \A: 当前时间,格式为 HH:MM(24小时制

  • \n: 换行

  • \[\]: 用于包裹转义序列(如颜色设置),以确保 Bash 正确计算提示符的长度。

  • $?: 上一个命令的退出状

  • $: 当前用户的 shell 提示符(通常是 $#

  • \$: 如果是普通用户,则显示 $;如果是超级用户(root),则显示 #

知道了这些参数,就可以按需选择和排列自己命令提示符的内容了!

比如,下面这个语句修改出来的命令提示符就变为:username@host:~$

PS1='\u@\h:\w\$ '

加点时间和日期:[Wed Sep 04 10:51:36]username@host:~$

PS1='[\d \t] \u@\h:\w\$ '

多行提示符,

PS1='\u@\h:\w\n\$ '

这些参数和示例可以帮助你自定义 Bash 提示符,以更好地适应你的需求和偏好。


好的,内容多了点,但是还是很单调,那就加点颜色吧。shell终端字符是用转义序列来控制颜色的。

转义序列的写法

1.\e或\E或\033或\33开头(escape的ASCII码是⼗进制的27,⼋进制的33)
2.[显示⽅式;前景⾊;背景⾊m]
3.\e或\E或\033或\33[0m结尾,或\[\e[0m\],恢复默认显示

规则2中的显示方式、前景色、背景色在shell中有对应的数字来表示:

如果同⼀个字符需要设置多个效果,则⽤分号分隔

比如,表示 绿底(42)粗体(1)红字(31)

为了让大家对这些数字有一个直观的认识,写了一个简单的循环,看看效果

for i in `seq 0 7` `seq 30 37` `seq 40 47` `seq 90 97` ; do echo -ne "\e[${i}m $i \e[0m"; done


nice,有了内容和颜色,就可以自己开搞

爱是一道光:

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

 花里胡哨:

PS1='\[\e[1;32m\][\[\e[0;35m\]\u\[\e[0;37m\]@\h \W \[\e[0;34m\]\d \t\[\e[0;32m\]]\[\e[0m\]\\$'

最后,需要提醒的是,由于我们以上只是在暂时修改了PS1变量,只在当前终端生效,也就是说,下次重新启动或者换一个终端,这些效果会消失。为了永久生效,需要添加到配置文件中(如~/.bashrc),或者export PS1=“·········”>>~/.bashrc中(可以source一下立即生效)。

欧克,结束!大家可以自由发挥,欢迎贴到评论区互相学(嘲)习(笑)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com