如何自定义 Linux 终端提示以获得更好的工作流程
要点
- 自定义 Bash 提示符不仅有趣,而且还很有用。
- 显示简单的系统信息很容易,但更高级的提示可能很快就会变得复杂。
- 第三方插件和脚本让您可以更轻松地自定义提示。
您是否厌倦了其他人的终端提示看起来比您的更漂亮?它们不仅美观,而且精心定制的提示也可以提高您的工作效率,而且很容易上手。
为什么要自定义您的终端提示符?
如果您经常在本地或远程的一堆不同计算机之间切换,这一点就更为重要,但自定义提示可以帮助您快速识别当前登录的计算机。如果您将 ~/.bashrc 或其他配置文件复制到您使用的每台计算机上,情况就不会如此,但自定义提示可以使快速识别您的计算机变得更加容易。
自定义提示可以告诉您更多信息,而不仅仅是您的用户名或主机名。例如,您的提示可以轻松地告诉您当前的工作目录,您所在的目录是否受版本控制,以及该存储库中的文件是否是最新的。微妙的颜色变化甚至可以让您知道您运行的最后一个命令是否成功。
说到颜色,不同的人或多或少都会关注不同的颜色。如果找到正确的组合,您可能会发现突然间您能够立即从提示中解析更多信息,而无需研究它。有些颜色可能会产生相反的效果,因此您可能需要进行一些尝试才能找到适合您的颜色。
当然,您不应该忽视自定义终端提示的简单有趣因素。虽然有很多实际原因,但多花点时间看看你的终端还是可以的。毕竟,如果您使用 Linux,您很可能会在终端上花费大量时间,因此它看起来也很漂亮。
如何自定义您的 Bash 提示符
在本文中,我们将重点关注自定义 Bourne-Again Shell(更广为人知的名称为 Bash)。虽然此处的某些方法与您对其他 shell 执行的操作类似,但它们通常使用稍有不同的语法,因此您的结果会有所不同。如果您使用其他 shell,请务必查阅相应的手册页或文档。
自定义终端涉及设置 PS1 环境变量。您可以在终端内临时进行设置,只需输入类似以下内容:
PS1="Your wish is my command: "
当然,这并不完全有用,因此您可能希望终端为您提供一些正确的信息。您需要在此处考虑要显示哪些信息以及如何设置其格式。
我们列出了 Bash 中需要了解的基本特殊字符,这应该可以帮助您入门。要了解更深入的信息,您需要查阅 Bash 手册的提示部分。
例如,尝试如下操作:
PS1="\u@\H \W: "
在上面的示例中,\u
打印您的用户名,而 \H
打印您计算机的主机名,\W
显示工作目录。这不是您在典型的 Bash 提示符中找到的更多信息,但它显示了在提示符中设置信息格式是多么容易。
颜色和特殊字符
不幸的是,向 Bash 提示符添加颜色并不像想象的那么简单。您需要采用一些已经很笨重的 ANSI 颜色代码,并稍微转置它们以在提示中正确格式化。为了让事情变得更容易,这里列出了常用的颜色:
- 黑色: \033[30m
- 红色: \033[31m
- 绿色: \033[32m
- 黄色: \033[33m
- 蓝色: \033[34m
- 紫色: \033[35m
- 青色: \033[36m
- 白色: \033[37m
要对上面的输出进行着色,您可以使用如下内容:
PS1="\033[31m\u@\033[34m\H \033[36m\W: "
输出比较花哨,并且根据您的背景可能很难阅读,但它可以作为如何自定义颜色的示例。您可以使用类似的 ANSI 转义字符将特殊字符打印到终端。
使您的提示永久化
测试您的提示后,一旦您确定了自己喜欢的内容,就可以轻松保留更改。只需将提示符添加到主目录中的 .bashrc 文件中即可。例如,要将上述彩色提示添加到 Bash 提示中,请将以下内容添加到 ~/.bashrc
中:
export PS1="\033[31m\u@\033[34m\H \033[36m\W: "
当然,还有更简单的方法来自定义提示。
更闪亮的提示的捷径
好的,现在您已经可以开始进行一些基本的自定义了,但是您在互联网上看到的顶级配置又如何呢?这些本质上与我们迄今为止使用的技术相同,但使用称为 Nerd Fonts 的特殊字体,该字体使用 Unicode 字符来显示图标。
虽然您可以自己开始使用这些框架,但也可以使用现有的 shell 框架。比较流行的示例之一是 Oh-My-Zsh,顾名思义,它仅适用于 Z shell,也称为 zsh。由于本指南的重点是 Bash,因此这对我们不起作用。
幸运的是,还有其他选择。在撰写本文时,最好的选择之一是 Starship,它是适用于任何 shell(包括 Bash)的可自定义提示符。为了提高速度,它是用 Rust 编写的,并且入门说明很简单。它甚至包含在某些 Linux 发行版(例如 Arch、Void 和 openSUSE)的存储库中。
另一个流行的选择是 Oh My Posh。如果您希望用 Starship 做点什么,那么 Oh My Posh 也能做到。缺点是,在了解系统的细节方面,这是一个更深入的研究。也就是说,如果您确实想调整提示,这提供了最大的灵活性。
其他贝壳怎么样?
虽然本文主要关注 Bash 提示符,但它并不是 Linux 终端的唯一选择。例如,在 macOS 上,Zsh 目前已成为多个主要版本的默认 shell。它有一些比 Bash 更值得一看的功能,具体取决于您要寻找的内容。
首先,Zsh 提供制表符补全功能。这比 Bash 的自动完成功能更强大,如果您不太记得命令,它会特别方便。 Zsh 还有一些功能可以让您在不使用框架的情况下更简单地自定义提示。
另一种选择是Friendly Interactive Shell,也称为Fish。这使得 Bash 和 Zsh 看起来非常简洁,开箱即用,因为安装后它的功能绝对丰富。这个 shell 有很多很棒的功能,但它最出名的是它的自动建议。
与制表符补全不同,Fish 会自动开始使用常用选项填充您键入的命令。例如,如果您打开某个文件或经常移动到某个目录,那么当您开始输入 cd
时,您就会看到此建议。要忽略该建议,只需继续键入您要键入的命令即可。
随着您更多地使用 shell,此功能会变得更加有用。虽然您可以通过插件将其连接到 Zsh,但它直接内置于 Fish 中。
要尝试其他 shell,请查看我们的使用 chsh 更改 shell 的指南。