Bash是当今大多数(如果不是全部)现代Linux发行版的默认shell。但是,你可能已经注意到这样一个现象,在每个发行版中,终端颜色和提示内容都不同。如果您一直想知道,或者只是好奇,自定义如何使Bash变得更好。无论如何,请继续阅读——本文将向您展示如何操作。PS1Bash环境变量命令提示符和终端外观通过一个名为PS1的变量进行管理。根据Bash手册页,PS1表示当shell准备好读取命令时显示的正文提示字符串。PS1允许包含一些反斜杠转义的特殊字符,请参阅手册页的PRMPTING部分了解它们的含义。为了演示,让我们在我们的系统上显示PS1的当前内容(它可能看起来与您的有点不同):$echo$PS1[\u@\h\W]\$现在,让我们看看如何自定义PS1以满足我们的个性化需求。CustomPS1format根据manpage的PROMPTING章节的描述,各个特殊字符的含义解释如下:\u:显示当前用户的用户名。\h:完全限定域名(FQDN)完全限定域名(FQDN)中第一个点(.)之前的主机名。\W:当前工作目录的基名,如果位于$HOME(主目录),通常用波浪符号(~)表示。\$:如果当前用户是root,则显示为#,否则显示为$。比如我们要显示当前命令的历史编号,可以考虑加上\!;如果我们想显示完整的FQDN而不是短服务器名称,请考虑添加\H.在下面的例子中,我们将这两个特殊字符同时引入到我们当前的环境中,命令如下:PS1="[\u@\H\W\!]\$"回车后,你你会看到提示的内容会变成下面这样。可以对比执行命令前后的提示内容:CustomizeLinuxTerminalPromptPS1现在,让我们更深入一点,修改命令提示符中的用户名和主机名——同时修改文本和环境背景。其实我们可以自定义3个方面的提示:文本格式前景色(text)背景色0:普通文字30:黑色40:黑色1:粗体文字31:红色41:红色4:下划线文字32:绿色42:Green33:Yellow43:Yellow34:Blue44:Blue35:Purple45:Purple36:Cyan46:Cyan37:White47:White我们会在开头使用\e特殊字符,后面是颜色序列,使用m在末尾表示结束。在这个序列中,三个值(background、format、foreground)之间用分号隔开(不赋值则假定为默认值)。推荐阅读:学习Linux中的Bashshell脚本。此外,由于值的范围不同,因此指定背景、格式或前景的顺序并不重要。例如下面的PS1会导致提示为黄色带下划线文本和红色背景:PS1="\e[41;4;33m[\u@\h\W]$"修改Linux终端提示颜色PS1虽然它看起来很漂亮,但这种定制只会持续到当前用户会话结束。如果关闭终端或退出会话,所有更改都将丢失。要使更改永久生效,您必须将以下行添加到~/.bashrc或~/.bash_profile,具体取决于您的版本。PS1="\e[41;4;33m[\u@\h\W]$"来吧,玩得开心,你可以尝试任何颜色,直到找到最适合你的颜色。(LCTT译注:原文中的这个设置不仅会影响提示,还会影响其他文字的输入和显示,所以在PS1设置中应该用\e[0m来结束颜色设置。例如:PS1="\e[41;4;33m[\u@\h\W]$\e[0m")总结在本文中,我们描述了如何自定义Bash提示符的颜色和提示内容。如果您对本文有任何疑问或建议,请在下面的评论框中写下来。我们期待您的声音。关于作者:AaronKili是Linux和F.O.S.S爱好者,未来的Linux系统管理员,Web开发人员,现任TechMint原作者,对计算充满热情并相信知识共享。
