如何定制bash提示符

大多数Linux发行版将Bash提示符配置为用户名@主机名:目录$。但是您可以将Bash提示符配置为包含您喜欢的任何内容,甚至可以选择您喜欢的任何颜色。...

如何定制bash提示符

大多数Linux发行版将Bash提示符配置为用户名@主机名:目录$。但是您可以将Bash提示符配置为包含您喜欢的任何内容,甚至可以选择您喜欢的任何颜色。

这里的示例步骤是在ubuntu16.04 LTS上执行的。在其他Linux发行版上,这个过程应该是相同的,尽管.bashrc文件中的默认Bash提示符和设置可能有点不同。

prompt变量的存储位置

Bash提示符配置存储在用户帐户的.bashrc文件中,该文件位于~/.bashrc。因此,如果您的用户名是bob,则文件位于/home/bob/.bashrc。

可以打开该文件以查看当前Bash变量。我们将使用nano作为我们的示例文本编辑器,尽管您也可以使用vi、emacs或任何其他您熟悉的文本编辑器。打开终端并运行:

nano ~/.bashrc

如何定制bash提示符

向下滚动到PS1=部分。第一个变量看起来相当复杂,因为它包含颜色信息,我们稍后将对此进行解释。第二个变量没有颜色信息,如下所示:

${debian_chroot:+($debian_chroot)}\u@\h:\w\$

如何定制bash提示符

由于${debian_uchroot:+($debian\uchroot)}位,这仍然有点复杂。这些只是告诉Bash,如果您使用的是Debian chroot环境,通常不会显示,那么就告诉Bash。忽略这些,下面是Bash提示符变量的默认结构:

\u@\h:\w\$

\u表示您的用户名,@表示@符号,\h表示主机名(计算机名),:表示:字符,\w表示工作目录,\$表示$(如果您是普通用户帐户或#如果您是root用户)。所以,把这些放在一起用户名@主机名:工作目录$。

要更改Bash提示符,只需添加、删除或重新排列PS1变量中的特殊字符。但是可以使用的变量比默认变量多得多。

暂时将文本编辑器留在nano中,按Ctrl+X退出。我们将向您展示如何在将新变量写入.bashrc文件之前对变量进行实验。

如何创建自定义bash提示符

Bash提示符配置存储在PS1变量中。要将PS1变量的内容保存到新变量中,请运行以下命令:

DEFAULT=$PS1

现在可以将PS1变量设置为不同的值进行实验。例如,这里的第一行将您的提示设置为基本的“user$”提示,而第二行将您的提示设置为基本的用户:工作目录$”提示。

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

如果您想返回默认提示符,只需运行以下命令。

PS1=$DEFAULT

由于您先前保存了这些默认设置,Bash将恢复到其默认提示。请注意,您在这里所做的任何更改都只是当前Bash会话的临时更改,因此您可以始终注销并重新登录,或者关闭并重新打开终端窗口以返回默认提示。但是上面这一行可以很容易地返回到默认的Bash提示符,而无需注销或关闭窗口。

如何定制bash提示符

可以向变量中添加任何字符或文本。因此,要使用“Hello World”作为默认提示的前缀,可以使用:

PS1="Hello World \u@\h:\w\$ "

如何定制bash提示符

既然你已经掌握了基本知识,你只需要知道所有的特殊角色是什么。您可能不会关心其中的许多问题,但下面是Bash手册中显示的完整列表:

  • 钟形字符:\A
  • 日期,采用“工作日-月日期”格式(例如,“5月26日星期二”):\d
  • 格式被传递给strftime(3),结果***到提示字符串中;空格式将导致特定于语言环境的时间表示。大括号是必需的:\D{format}
  • 转义字符:\e
  • 主机名,直到第一个“.”:\h
  • 主机名:\H
  • shell当前管理的作业数:\j
  • shell的终端设备名称的基名称:\l
  • 换行符:\n
  • 回车符:\r
  • shell的名称,basename$0(最后斜杠后面的部分):\s
  • 时间,24小时HH:MM:SS格式:\t
  • 时间,12小时HH:MM:SS格式:\T
  • 时间,12小时am/pm格式:\@
  • 时间,24小时HH:MM格式:\A
  • 当前用户的用户名:\u
  • Bash的版本(例如2.00):\v
  • Bash的发行版,版本+补丁级别(例如2.00.0):\V
  • 当前工作目录,$HOME用波浪号缩写(使用$PROMPT\U DIRTRIM变量):\w
  • $PWD的basename,其中$HOME用波浪号缩写:\W
  • 此命令的历史编号:\!
  • 此命令的命令号:\#
  • 如果有效uid为0,#,否则$:\$
  • ASCII码为八进制值nnn:\nnn的字符
  • 反斜杠:\\
  • 开始一系列非打印字符。这可用于将终端控制序列嵌入到提示符中:\[
  • 结束非打印字符序列:\]

因此,如果您想将日期和时间添加到Bash提示符中,并将工作目录放在命令的第二行,则可以使用以下构造:

PS1="[\d \t] \u@\h\n\w\$ "

这里的方括号根本不需要,但有助于直观地将事情分解,使行更容易阅读。正如我们前面所介绍的,您可以向您喜欢的变量添加任何文本或普通字符,因此可以随意使用任何对您有用的内容。

如何定制bash提示符

还有一个更强大的技巧你应该知道:你可以添加任何命令的输出到提示符。每当出现提示时,Bash都会运行命令并填写当前信息。为此,只需在两个字符之间包含任何要运行的命令。那不是撇号,那是重音符,它出现在你键盘的Tab键上方。

例如,假设您想在提示符中查看Linux内核版本。您可以使用以下行:

PS1="\u@\h on `uname -s -r` \w\$ "

如何定制bash提示符

作为另一个示例,假设您希望查看系统的正常运行时间和平均负载,如uptime命令所示。您可以使用以下构造,将正常运行时间放在提示符的其余部分之前。

PS1="(`uptime`)\n\u@\h:\w$ "

如何定制bash提示符

您可以随意尝试使用不同的特殊字符和命令来组装理想的命令提示符。

如何向bash提示符添加颜色

一旦你找到了你喜欢的提示,你可以给它添加颜色。这实际上非常简单,但是如果你不明白你在看什么,它会让变量看起来非常混乱和复杂。

例如,前面的默认颜色提示变量是:

${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

或者,再次删除debian\u chroot位:

\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

如何定制bash提示符

这实际上只是前面的\u@\h:\w$变量,但包含颜色信息。实际上,我们可以把它分成几个部分:

\[\033[01;32m\]\u@\h \[\033[00m\]: \[\033[01;34m\]\w \[\033[00m\]\$

第一部分是\u@\h位,前面的颜色信息将其变为绿色。第二个是:字符,前面是颜色信息,可以删除任何颜色。第三个是\w位,前面是使其变为蓝色的颜色信息。第四个是\$位,前面是去除任何颜色的颜色信息。

如何定制bash提示符

一旦您了解了如何构造自己的颜色标记,就可以将您喜欢的任何颜色添加到Bash提示符的任何部分。

您需要知道的是:您必须在\[和\]字符之间包含完整的颜色代码信息。在标记内部,必须以\033[或\e]开头,以向Bash指示这是颜色信息。\033[和\e[都做相同的事情。\e[较短,因此使用起来可能更方便,但我们将在此处使用\033[因为它与默认使用的匹配。在标记的末尾,必须以m\结尾,以指示颜色标记的结尾。

分解一下,下面是每个颜色标签的样子。唯一的区别是您添加的信息代替了颜色来定义实际颜色:

\[\033[COLORm\]

Bash允许您更改前景文本的颜色,为文本添加“粗体”或“下划线”等属性,并设置背景色。

以下是前景文本的值:

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

例如,因为紫色文本的颜色代码是32,所以您应该使用\[\033[32m\]来表示紫色文本。

如何定制bash提示符

也可以为文本指定属性。此属性必须添加在颜色编号之前,并用分号(;)分隔。具有这些属性的文本在不同的终端仿真器中看起来会不同。

以下是文本属性的值:

  • 普通文本:0
  • 粗体或浅色文本:1(取决于终端仿真器。)
  • 尺寸文本:2
  • 下划线文本:4
  • 闪烁文本:5(这在大多数终端模拟器中不起作用。)
  • 反转文本:7(这将反转前景色和背景色,因此如果当前文本是黑色背景上的白色文本,您将看到白色背景上的黑色文本。)
  • 隐藏文本:8

实际上不需要包含normal text属性。不管怎样,这是默认值。

例如,由于红色文本是代码31,粗体文本是代码1,所以粗体红色文本使用\[\033[1;31m\]。

如何定制bash提示符

也可以指定背景色,但不能向背景色添加属性。

以下是背景色的值:

  • 黑色背景:40
  • 蓝色背景:44
  • 青色背景:46
  • 绿色背景:42
  • 紫色背景:45
  • 红色背景:41
  • 白色背景:47
  • 黄色背景:43

例如,由于蓝色背景是代码44,\[\033[44m\]将指定蓝色背景。

如何定制bash提示符

可以指定前景和背景色标记。例如,42表示绿色背景,31表示红色文本。因此,要使默认提示变为绿色背景上的红色文本,可以使用:

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

我们只需在这里指定一种背景颜色,然后指定一种前景文本颜色,该颜色从提示符的开头开始,并应用于提示符中的所有文本。但是,您可以在变量中指定任意数量的颜色标记,以使提示的不同部分按自己的喜好着色。

背景和前景文本颜色将一直超过提示,除非指定颜色代码00清除颜色信息。也可以在变量中使用此标记将格式重置为提示中的默认值。例如,下一行将在\$字符之前结束所有着色。

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

如何定制bash提示符

如何设置新的默认提示

一旦您完成了颜色的实验,您应该在当前会话中有一个您喜欢的Bash提示。但是您可能希望使这个新的提示永久化,以便在所有Bash会话中自动使用它。

要做到这一点,您只需要更改.bashrc文件中PS1变量的内容,我们前面已经看过了。

在首选文本编辑器中打开.bashrc文件,如下所示:

nano ~/.bashrc

向下滚动并找到PS1=部分。只需用自定义变量替换默认变量。您可能希望将${debian\u chroot:+($debian\u chroot)}位放在一边,但是它们不会出现,除非您在chroot环境中。

在if[“$color_prompt”=yes];then行下输入彩色PS1变量。在else行下输入不带颜色的变量。

如何定制bash提示符

保存文件并关闭文本编辑器。例如,要将文件保存在nano中,请按Ctrl+O,按Enter,然后按Ctrl+X退出。

下次启动新的bashshell时,例如,通过在终端登录或打开新的终端窗口,您将看到定制的提示。

如何定制bash提示符

  • 发表于 2021-04-07 20:19
  • 阅读 ( 142 )
  • 分类:互联网

你可能感兴趣的文章

Windows10中LinuxBashShell快速指南

...保持你的主文件夹完好无损。要完成此操作,请通过命令提示符或PowerShell运行以下命令: ...

  • 发布于 2021-03-17 01:06
  • 阅读 ( 194 )

如何在windows10上获得linux bash shell

... 但是这与仅仅使用Windows命令提示符或PowerShell有什么不同呢? ...

  • 发布于 2021-03-21 11:48
  • 阅读 ( 288 )

如何定制mac终端并使其更有用

... 第二行是实际的命令提示符;末尾的矩形框是光标。您将在此行键入命令: ...

  • 发布于 2021-03-21 20:13
  • 阅读 ( 272 )

如何使用shopt定制bashshell

...shshell的行为,您可以控制超过50个设置。我们将向您展示如何按照您喜欢的方式定制您的Linux系统。 shopt内置 shopt内置是bashshell所有版本的一部分,因此不需要安装任何东西。多年来,shopt提供的选项数量稳步增加。所以,Bash...

  • 发布于 2021-04-01 12:30
  • 阅读 ( 175 )

如何使用chsh在linux上更改默认shell

...们启动FishShell时,会收到一条友好的欢迎消息,并且命令提示符会发生变化。可能令人惊讶的是,$SHELL环境仍然持有bash可执行文件/bin/bash的路径。没关系,这很正常。 启动新shell(或任何其他程序)时,它将继承父shell的环境。...

  • 发布于 2021-04-02 06:04
  • 阅读 ( 338 )

如何在linux上的bash中设置环境变量

...保存的设置定义了在终端窗口中找到的环境,一直到命令提示符的外观。所以,自然地,它们被称为环境变量。 一些环境变量是系统范围的,或者是全局的。其他人是全会,只能由你看到。其他人无法引用您的会话环境变量。...

  • 发布于 2021-04-02 06:44
  • 阅读 ( 222 )

如何自定义新的windows终端应用程序

...改变字体颜色、背景色、光标形状等。您可以分别为命令提示符、Bash和PowerShell选择主题。 要切换默认主题,首先,通过向下滚动到“profiles”:“部分并查看每个子部分中的命令行条目,找到您想要的shell配置文件。 命令提示...

  • 发布于 2021-04-03 10:37
  • 阅读 ( 203 )

什么是zsh,为什么要用它来代替bash?

...个右对齐的信息框,与git和命令历史的集成,难以置信的定制,并将其封装在一个基于powerline插件的光滑界面中。 您可能希望在macOS上使用iTerm,或者任何具有24位颜色的终端,以充分利用powerlevel9k(或者任何ZSH主题)。 要设置p...

  • 发布于 2021-04-05 01:02
  • 阅读 ( 212 )

windows10的新bashshell所能做的一切

...inux命令。Linux环境只是运行命令,然后退出。如果从命令提示符或PowerShell窗口中运行此命令,则该命令会将其输出打印到命令提示符或PowerShell控制台。 使用bash-c或wsl可以做很多事情。您可以创建桌面快捷方式来启动Linux程序,...

  • 发布于 2021-04-06 14:44
  • 阅读 ( 265 )

如何在windows10的ubuntubashshell中更改用户帐户

...帐户 要更改ubuntubashshell中的默认用户帐户,请打开命令提示符窗口或PowerShell窗口。 要打开命令提示窗口,请打开“开始”菜单,搜索“cmd”,然后按Enter键。要打开PowerShell窗口,请右键单击开始按钮(或按Windows+X),然后从超...

  • 发布于 2021-04-06 15:47
  • 阅读 ( 186 )
abjv500
abjv500

0 篇文章

相关推荐