现今,大多数(如果不是全部的话)现代 Linux 发行版的默认 shell 都是 Bash。然而,你可能已经注意到这样一个现象,在各个发行版中,其终端配色和提示内容都各不相同。
如果你一直都在考虑,或者只是一时好奇,如何定制可以使 Bash 更好用。不管怎样,请继续读下去 —— 本文将告诉你怎么做。
PS1 Bash 环境变量
命令提示符和终端外观是通过一个叫 PS1
的变量来进行管理的。根据 Bash 手册页说明,PS1 代表了 shell 准备好读取命令时显示的主体的提示字符串。
PS1 所允许的内容包括一些反斜杠转义的特殊字符,可以查看手册页中 PRMPTING 部分的内容来了解它们的含义。
为了演示,让我们先来显示下我们系统中 PS1
的当前内容吧(这或许看上去和你们的有那么点不同):
$ echo $PS1
[u@h W]$
现在,让我们来了解一下怎样自定义 PS1 吧,以满足我们各自的需求。
自定义 PS1 格式
根据手册页 PROMPTING 章节的描述,下面对各个特殊字符的含义作如下说明:
u:
显示当前用户的 用户名。h:
完全限定域名 (FQDN)中第一个点(.
)之前的主机名。W:
当前工作目录的基本名,如果是位于$HOME
(家目录)通常使用波浪符号简化表示(~
)。$:
如果当前用户是 root,显示为#
,否则为$
。
例如,如果我们想要显示当前命令的历史数量,可以考虑添加 !
;如果我们想要显示 FQDN 全称而不是短服务器名,那么可以考虑添加 H
。
在下面的例子中,我们同时将这两个特殊字符引入我们当前的环境中,命令如下:
PS1="[u@H W !]$"
当按下回车键后,你将会看到提示内容会变成下面这样。可以对比执行命令修改前和修改后的提示内容:
自定义 Linux 终端提示符 PS1
现在,让我们再深入一点,修改命令提示符中的用户名和主机名 —— 同时修改文本和环境背景。
实际上,我们可以对提示符进行 3 个方面的自定义:
文本格式 | 前景色(文本) | 背景色 |
---|
作者简介:
Aaron Kili 是一位 Linux 及 F.O.S.S 的狂热爱好者,一位未来的 Linux 系统管理员,web 开发者,而当前是 TechMint 的原创作者,他热爱计算机工作,并且信奉知识分享。
via: http://www.tecmint.com/customize-bash-colors-terminal-prompt-linux/
作者:Aaron Kili 译者:GOLinux 校对:jasminepeng
发表回复