在Linux上自定义bash命令提示符

系统 Linux
众所周知,bash(the Bourne-Again Shell)是目前绝大多数 Linux 发行版使用的默认 shell。本文将会介绍如何通过添加颜色和样式来自定义 bash 命令提示符的显示。

 在Linux上自定义bash命令提示符

众所周知,bash(the Bourne-Again Shell)是目前绝大多数 Linux 发行版使用的默认 shell。本文将会介绍如何通过添加颜色和样式来自定义 bash 命令提示符的显示。尽管很多插件或工具都可以很轻易地满足这一需求,但我们也可以不使用插件和工具,自己手动自定义一些基本的显示方式,例如添加或者修改某些元素、更改前景色、更改背景色等等。

在 Linux 中自定义 bash 命令提示符

在 bash 中,我们可以通过更改 $PS1 环境变量的值来自定义 bash 命令提示符。

一般情况下,bash 命令提示符会是以下这样的形式:

在上图这种默认显示形式当中,“sk” 是我的用户名,而 “ubuntuserver” 是我的主机名。

只要插入一些以反斜杠开头的特殊转义字符串,就可以按照你的喜好修改命令提示符了。下面我来举几个例子。

在开始之前,我强烈建议你预先备份 ~/.bashrc 文件。

  1. $ cp ~/.bashrc ~/.bashrc.bak

更改 bash 命令提示符中的 username@hostname 部分

如上所示,bash 命令提示符一般都带有 “username@hostname” 部分,这个部分是可以修改的。

只需要编辑 ~/.bashrc 文件:

  1. $ vi ~/.bashrc

在文件的***添加一行:

  1. PS1="ostechnix> "

将上面的 “ostechnix” 替换为任意一个你想使用的单词,然后按 ESC 并输入 :wq 保存、退出文件。

执行以下命令使刚才的修改生效:

  1. $ source ~/.bashrc

你就可以看见 bash 命令提示符中出现刚才添加的 “ostechnix” 了。

再来看看另一个例子,比如将 “username@hostname” 替换为 “Hello@welcome>”。

同样是像刚才那样修改 ~/.bashrc 文件。

  1. export PS1="Hello@welcome> "

然后执行 source ~/.bashrc 让修改结果立即生效。

以下是我在 Ubuntu 18.04 LTS 上修改后的效果。

仅显示用户名

如果需要仅显示用户名,只需要在 ~/.bashrc 文件中加入以下这一行。

  1. export PS1="\u "

这里的 \u 就是一个转义字符串。

下面提供了一些可以添加到 $PS1 环境变量中的用以改变 bash 命令提示符样式的转义字符串。每次修改之后,都需要执行 source ~/.bashrc 命令才能立即生效。

显示用户名和主机名

  1. export PS1="\u\h "

命令提示符会这样显示:

  1. skubuntuserver

显示用户名和完全限定域名

  1. export PS1="\u\H "

在用户名和主机名之间显示其它字符

如果你还需要在用户名和主机名之间显示其它字符(例如 @),可以使用以下格式:

  1. export PS1="\u@\h "

命令提示符会这样显示:

  1. sk@ubuntuserver

显示用户名、主机名,并在末尾添加 $ 符号

  1. export PS1="\u@\h\\$ "

综合以上两种显示方式

  1. export PS1="\u@\h> "

命令提示符最终会这样显示:

  1. sk@ubuntuserver>

相似地,还可以添加其它特殊字符,例如冒号、分号、星号、下划线、空格等等。

显示用户名、主机名、shell 名称

  1. export PS1="\u@\h>\s "

显示用户名、主机名、shell 名称以及 shell 版本

  1. export PS1="\u@\h>\s\v "

bash 命令提示符显示样式:

显示用户名、主机名、当前目录

  1. export PS1="\u@\h\w "

如果当前目录是 $HOME ,会以一个波浪线(~)显示。

在 bash 命令提示符中显示日期

除了用户名和主机名,如果还想在 bash 命令提示符中显示日期,可以在 ~/.bashrc 文件中添加以下内容:

  1. export PS1="\u@\h>\d "

在 bash 命令提示符中显示日期及 12 小时制时间

  1. export PS1="\u@\h>\d\@ "

显示日期及 hh:mm:ss 格式时间

  1. export PS1="\u@\h>\d\T "

显示日期及 24 小时制时间

  1. export PS1="\u@\h>\d\A "

显示日期及 24 小时制 hh:mm:ss 格式时间

  1. export PS1="\u@\h>\d\t "

以上是一些常见的可以改变 bash 命令提示符的转义字符串。除此以外的其它转义字符串,可以在 bash 的 man 手册 PROMPTING 章节中查阅。

你也可以随时执行以下命令查看当前的命令提示符样式。

  1. $ echo $PS1

在 bash 命令提示符中去掉 username@hostname 部分

如果我不想做任何调整,直接把 username@hostname 部分整个去掉可以吗?答案是肯定的。

如果你是一个技术方面的博主,你有可能会需要在网站或者博客中上传自己的 Linux 终端截图。或许你的用户名和主机名太拉风、太另类,不想让别人看到,在这种情况下,你就需要隐藏命令提示符中的 “username@hostname” 部分。

如果你不想暴露自己的用户名和主机名,只需要按照以下步骤操作。

编辑 ~/.bashrc 文件:

  1. $ vi ~/.bashrc

在文件末尾添加这一行:

  1. PS1="\W> "

输入 :wq 保存并关闭文件。

执行以下命令让修改立即生效。

  1. $ source ~/.bashrc

现在看一下你的终端,“username@hostname” 部分已经消失了,只保留了一个 ~> 标记。

如果你想要尽可能简单的操作,又不想弄乱你的 ~/.bashrc 文件,***的办法就是在系统中创建另一个用户(例如 “user@example”、“admin@demo”)。用带有这样的命令提示符的用户去截图或者录屏,就不需要顾虑自己的用户名或主机名被别人看见了。

警告:在某些情况下,这种做法并不推荐。例如像 zsh 这种 shell 会继承当前 shell 的设置,这个时候可能会出现一些意想不到的问题。这个技巧只用于隐藏命令提示符中的 “username@hostname” 部分,仅此而已,如果把这个技巧挪作他用,也可能会出现异常。

为 bash 命令提示符着色

目前我们也只是变更了 bash 命令提示符中的内容,下面介绍一下如何对命令提示符进行着色。

通过向 ~/.bashrc 文件写入一些配置,可以修改 bash 命令提示符的前景色(也就是文本的颜色)和背景色。

例如,下面这一行配置可以令某些文本的颜色变成红色:

  1. export PS1="\u@\[\e[31m\]\h\[\e[m\] "

添加配置后,执行 source ~/.bashrc 立即生效。

你的 bash 命令提示符就会变成这样:

类似地,可以用这样的配置来改变背景色:

  1. export PS1="\u@\[\e[31;46m\]\h\[\e[m\] "

添加 emoji

大家都喜欢 emoji。还可以按照以下配置把 emoji 插入到命令提示符中。

  1. PS1="\W
     
  2.  
  3. LCTT 译者
  4.  
  5.  
  6.  
  7.  
  8.  
  9. [[250678]] Hank Chow 🌟🌟🌟🌟
  10. 共计翻译: 32.0
  11. | 共计贡献: 363
  12. 贡献时间:2017-11-29 -> 2018-11-27
    访问我的 LCTT 主页 | 在 GitHub 上关注我
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  
责任编辑:庞桂玉 来源: Linux中国
相关推荐

2018-09-26 10:25:27

Window 10自定义命令

2017-01-11 10:27:36

Linux终端自定义Bash

2009-09-08 08:18:09

Windows 7命令提示符

2016-11-23 15:30:58

Windows 10PowerShell提示符

2022-04-02 10:45:17

PythonShell命令

2010-06-01 09:09:15

MySQL命令提示符程

2021-12-25 23:22:32

Windows 10Windows微软

2010-06-23 16:19:48

Linux Bash

2019-02-26 14:10:09

Windows 10命令提示符文件

2021-02-14 00:34:49

Windows 10Windows微软

2011-09-19 15:16:28

vista命令提示符

2023-09-24 19:28:29

微软Windows 11

2022-05-23 15:38:28

Windows 11Windows 10微软

2022-01-14 23:41:28

Windows 10Windows微软

2009-04-09 09:51:09

ASP.NETSQL Server 自定义分页

2018-07-12 16:22:45

Linux命令行文本颜色

2023-10-30 17:31:40

Linux提示符颜色

2019-06-25 14:05:41

Linux提示符命令

2017-07-19 08:45:45

2021-08-19 17:21:48

Windows微软工具
点赞
收藏

51CTO技术栈公众号