前言
众所周知 , bash (the B ourne- A gain Sh ell)是目前绝大多数 Linux 发行版使用的默认 shell 。本文将会介绍如何通过添加颜色和样式来自定义 bash 命令提示符的显示 。尽管很多插件或工具都可以很轻易地满足这一需求 , 但我们也可以不使用插件和工具 , 自己手动自定义一些基本的显示方式 , 例如添加或者修改某些元素、更改前景色、更改背景色等等 。
在 Linux 中自定义 bash 命令提示符
在 bash 中 , 我们可以通过更改 $PS1 环境变量的值来自定义 bash 命令提示符 。
一般情况下 , bash 命令提示符会是以下这样的形式:

文章插图
在上图这种默认显示形式当中 , “sk” 是我的用户名 , 而 “ubuntuserver” 是我的主机名 。
只要插入一些以反斜杠开头的特殊转义字符串 , 就可以按照你的喜好修改命令提示符了 。下面我来举几个例子 。
在开始之前 , 我强烈建议你预先备份 ~/.bashrc 文件 。
$ cp ~/.bashrc ~/.bashrc.bak更改 bash 命令提示符中的 username@hostname 部分
如上所示 , bash 命令提示符一般都带有 “username@hostname” 部分 , 这个部分是可以修改的 。
只需要编辑 ~/.bashrc 文件:
$ vi ~/.bashrc在文件的最后添加一行:
PS1="ostechnix> "将上面的 “ostechnix” 替换为任意一个你想使用的单词 , 然后按 ESC 并输入 :wq 保存、退出文件 。
执行以下命令使刚才的修改生效:
$ source ~/.bashrc你就可以看见 bash 命令提示符中出现刚才添加的 “ostechnix” 了 。

文章插图
再来看看另一个例子 , 比如将 “username@hostname” 替换为 “Hello@welcome>” 。
同样是像刚才那样修改 ~/.bashrc 文件 。
export PS1= ">Hello@welcome> 然后执行 source ~/.bashrc 让修改结果立即生效 。
以下是我在 Ubuntu 18.04 LTS 上修改后的效果 。

文章插图
仅显示用户名
如果需要仅显示用户名 , 只需要在 ~/.bashrc 文件中加入以下这一行 。
export PS1="\u "这里的 \u 就是一个转义字符串 。
下面提供了一些可以添加到 $PS1 环境变量中的用以改变 bash 命令提示符样式的转义字符串 。每次修改之后 , 都需要执行
source ~/.bashrc 命令才能立即生效 。显示用户名和主机名
export PS1="\u\h "命令提示符会这样显示:
skubuntuserver显示用户名和完全限定域名
export PS1="\u\H "在用户名和主机名之间显示其它字符
如果你还需要在用户名和主机名之间显示其它字符(例如 @ ) , 可以使用以下格式:
export PS1="\u@\h "命令提示符会这样显示:
sk@ubuntuserver显示用户名、主机名 , 并在末尾添加 $ 符号
export PS1="\u@\h\\$ "综合以上两种显示方式
export PS1="\u@\h> "命令提示符最终会这样显示:
sk@ubuntuserver>相似地 , 还可以添加其它特殊字符 , 例如冒号、分号、星号、下划线、空格等等 。
显示用户名、主机名、shell 名称
export PS1="\u@\h>\s "显示用户名、主机名、shell 名称以及 shell 版本
export PS1="\u@\h>\s\v "bash 命令提示符显示样式:

文章插图
显示用户名、主机名、当前目录
export PS1="\u@\h\w "如果当前目录是 $HOME , 会以一个波浪线( ~ )显示 。
在 bash 命令提示符中显示日期
除了用户名和主机名 , 如果还想在 bash 命令提示符中显示日期 , 可以在 ~/.bashrc 文件中添加以下内容:
export PS1="\u@\h>\d "

文章插图
在 bash 命令提示符中显示日期及 12 小时制时间
export PS1="\u@\h>\d\@ "显示日期及 hh:mm:ss 格式时间
export PS1="\u@\h>\d\T "显示日期及 24 小时制时间
export PS1="\u@\h>\d\A "显示日期及 24 小时制 hh:mm:ss 格式时间
export PS1="\u@\h>\d\t "以上是一些常见的可以改变 bash 命令提示符的转义字符串 。除此以外的其它转义字符串 , 可以在 bash 的 man 手册 PROMPTING 章节中查阅 。
你也可以随时执行以下命令查看当前的命令提示符样式 。
$ echo $PS1在 bash 命令提示符中去掉 username@hostname 部分
如果我不想做任何调整 , 直接把 username@hostname 部分整个去掉可以吗?答案是肯定的 。
如果你是一个技术方面的博主 , 你有可能会需要在网站或者博客中上传自己的 Linux 终端截图 。或许你的用户名和主机名太拉风、太另类 , 不想让别人看到 , 在这种情况下 , 你就需要隐藏命令提示符中的 “username@hostname” 部分 。
如果你不想暴露自己的用户名和主机名 , 只需要按照以下步骤操作 。
编辑 ~/.bashrc 文件:
$ vi ~/.bashrc在文件末尾添加这一行:
PS1="\W> "输入 :wq 保存并关闭文件 。
执行以下命令让修改立即生效 。
$ source ~/.bashrc现在看一下你的终端 , “username@hostname” 部分已经消失了 , 只保留了一个 ~> 标记 。

文章插图
如果你想要尽可能简单的操作 , 又不想弄乱你的 ~/.bashrc 文件 , 最好的办法就是在系统中创建另一个用户(例如 “user@example”、“admin@demo”) 。用带有这样的命令提示符的用户去截图或者录屏 , 就不需要顾虑自己的用户名或主机名被别人看见了 。
警告:在某些情况下 , 这种做法并不推荐 。例如像 zsh 这种 shell 会继承当前 shell 的设置 , 这个时候可能会出现一些意想不到的问题 。这个技巧只用于隐藏命令提示符中的 “username@hostname” 部分 , 仅此而已 , 如果把这个技巧挪作他用 , 也可能会出现异常 。
为 bash 命令提示符着色
目前我们也只是变更了 bash 命令提示符中的内容 , 下面介绍一下如何对命令提示符进行着色 。
通过向 ~/.bashrc 文件写入一些配置 , 可以修改 bash 命令提示符的前景色(也就是文本的颜色)和背景色 。
例如 , 下面这一行配置可以令某些文本的颜色变成红色:
export PS1="\u@\[\e[31m\]\h\[\e[m\] "添加配置后 , 执行 source ~/.bashrc 立即生效 。
你的 bash 命令提示符就会变成这样:

文章插图
类似地 , 可以用这样的配置来改变背景色:
export PS1="\u@\[\e[31;46m\]\h\[\e[m\] "

文章插图
添加 emoji
大家都喜欢 emoji 。还可以按照以下配置把 emoji 插入到命令提示符中 。
PS1="\W总结
【如何在Linux中自定义bash命令提示符】以上就是这篇文章的全部内容了 , 希望本文的内容对大家的学习或者工作具有一定的参考学习价值 , 如果有疑问大家可以留言交流 , 谢谢大家对考高分网的支持 。
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
