当前位置: 首页>>技术教程>>正文


如何自定义您的Ubuntu终端提示

, ,

您的Ubuntu系统使用默认的终端应用程序bash或破折号。您在默认提示符下键入命令,该提示符通常以一些预定义的颜色主题列出您的用户名,主机名和当前目录。 bash为提示提供了许多自定义选项,您不仅可以使用它们在提示中合并各种功能,还可以通过不同的颜色来区分它们。

在本文中,我们将使用各种示例来自定义终端应用程序的提示并为其重新着色,使您可以根据需要执行相同的操作。我们正在Ubuntu 18.04 LTS系统上运行本文中描述的命令和过程。

查看当前的Bash提示配置

通过Dash或Ctrl + Alt + T快捷方式打开终端时,将看到如下提示:

username@hostname:directory$

Bash prompt

此默认格式列出了用户名,主机名,然后是用户的当前目录。 bash从为其主目录中的每个用户分别设置的bashrc文件中选取此配置。这是打开此文件的方法:

$ nano ~/.bashrc

位置:/home /用户名/.bashrc

您也可以使用任何其他文本编辑器打开此文件。

这是此配置文件的外观。我们在这里向您显示文件的相关部分。

The .bashrc file opened in nano

您在上图中看到的PS1变量具有bash提示符的所有必需配置。让我们首先解释该变量中的字符表示什么。您可以在else语句之后列出的PS1变量中清楚地查看此变量。

  • \ u-This表示当前用户的用户名
  • \ h:这表示从标准域名中提取的当前用户的主机名。
  • \ w:表示当前工作目录。您的主目录以波浪号〜符号表示。
  • \ $:这表示您是普通用户($)还是根用户(#)。

您还可以通过回显PS1变量的值来查看其配置,如下所示:

PS1 variable

自定义 shell 提示

在看到提示信息的存储位置以及PS1变量的描述之后,让我们看看如何对其进行编辑以自定义bash提示。

在编辑PS1变量之前,重要的是将其默认内容存储在新变量中。如果出现问题,这将有助于我们将提示恢复为原始配置。在终端中输入以下命令:

$ DEFAULT=$PS1

现在,变量“DEFAULT”具有恢复默认提示设置所需的所有信息。

现在让我们用PS1变量进行一些实验。输入以下命令:

$ PS1="\u\$ "

PS1的新值对您的提示有以下影响:

New Bash prompt

现在您只能看到您的用户名和root用户信息,而没有任何颜色,因为尚未设置颜色信息。

让我们输入以下命令,以便在提示符下列出我们的工作目录

$ PS1="\u:\w\$ "

PS1的新值对您的提示有以下影响:

New bash prompt in action

由于我的工作目录位于主目录中,因此只能看到〜符号。在其他目录中,例如bin,我的提示将显示以下信息:

Result

将提示设置回默认值

由于我们已经将PS1变量的原始配置存储在DEFAULT变量中,因此我们可以通过将PS1变量的值提供给我们的DEFAULT变量来将其设置回默认值。

Reset shell prompt

您还能自定义什么?

如果您希望您的提示包含特定的自定义文本,您可以使用以下sytanx:

$ PS1="[custom text] \u@\h:\w\$ "

例:

我已将提示设置为包括以下自定义消息:

Set custom text in bash prompt

您可以在提示中加入以下基本字符:

字符 目的
\ d 日期以日月日期格式表示。
\ e 铃铛字符。
\一种 转义字符。
\H 当前用户的主机名,直到“。”
\H 当前用户的主机名。
\ l 终端设备的基本名称。
\ j Shell正在运行的作业数。
\ r 回车。
\ n 新行。
\ u 当前用户的用户名。
\ v Bash版本。
\! 正在运行的命令的打印历史记录号。

您可以包括当前系统时间通过以下命令在提示符下输入:

$ PS1=”\A\u: \w\$ “

PS1的新值对您的提示有以下影响:

Show system time in command prompt

您还可以自定义提示以包括命令的输出。这使您可以无限选择合并到提示中。

句法:

$ PS1="\u@\h on `[command]` \w\$ "

例:

在此示例中,我将设置提示以包括当前用户所属的主要组的名称。

$ PS1="\u@\h on `id -gn` \w\$ "

Include nam of primary group

为提示着色

自定义提示后,您将意识到事情可能看起来有些混乱。显而易见的原因是,如果所有功能都以相同的颜色列出,则很难将一个功能与另一个功能区分开。现在让我们学习如何使提示变色以使其更悦目。

为了向一个或多个功能添加颜色,PS1变量包括颜色标签。下图中突出显示的文本是一个颜色标签。

Set colors in bash prompt

这是颜色标签的格式:

\[\033[COLOR]m\]

例如,由于以下颜色标记,我们在默认终端提示中看到的默认用户名和主机名是绿色:

\[\033[01;32m\]\u@\h

您可以根据bash提示功能更改此颜色值,以为其赋予新颜色或向不具有任何颜色的功能添加新的颜色标签。

以下是一些常见的颜色及其值:

颜色
绿色 32
红色 31
黑色 30
蓝色 34
青色 36
紫色 35
黄色 33
白色 37

例:

当我们在color标签中指定31(红色)时,以下命令会将提示变为红色:

$ PS1="\[\033[31m\]\u@\h:\w$ "

Colorize command prompt

在提示中使用文字样式

您可以通过将属性值分配给颜色标签来将样式添加到提示文本中。这是带有属性的颜色标签的格式:

\[\033[ATTRIBUTE; COLORm\]

您可以在提示文本中使用以下属性值:

属性值 目的
0 普通文本(即使未设置属性,这也是默认值)
1个 在Ubuntu终端中,此值指定粗体文本
2 文字昏暗
4 文字下划线
5 对于闪烁的文字
7 反转文本和背景色
8 对于隐藏的文字

例:

您可以使用以下命令来突出显示bash提示符:

$ PS1="\[\033[4;31m\]\u@\h:\w$ "

值4表示我们要“underline”文本。

Use text styles in command prompt

永久更改提示

到目前为止,您已执行的命令只会更改当前bash会话的提示。在尝试对文本进行自定义和提示颜色化并达到了要为所有bash会话永久设置的最终值之后,您需要编辑bashrc文件。

打开.bashrc文件,然后将if1下的已完成的PS1值复制到PS1行中。然后行。在下图中,我刚刚将bash提示的颜色更改为红色:

Edit .bashrc file

通过按保存文件Ctrl + X然后按ÿ。现在,对bash提示的更改将是永久性的。退出终端和re-open以查看您的bash提示仍然与您设置的相同。

Save file

在完成本教程的练习之后,您可以擅长自定义bash提示。然后,您可以设置颜色以区分已包含在提示中的不同功能。这样,每次使用bash提示时,您都可以查看和利用这些有用的信息。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8837.html,未经允许,请勿转载。