Daniel Robbins
Gentoo Technologies 公司总载兼首席执行官
2000 年 9 月
内容:
提示行基础
彩色化
Xterm 中的乐趣
参考资源
作者简介
如果您很容易使 shell 提示行变得色彩绚烂斓且带有更多信息, 为什么还要坚持用单调
的标准 shell 提示行呢?在这篇技巧中,Daniel Robbins 将说明如何获得符合您的意愿的
shell 提示行,并会说明如何动态更新 X 终端的标题栏。
作为 linux/UNIX 人,我们有很长的时间是在 shell 中工作,并且在许多情况下, 下面
这一行就是始终盯着我们的那个提示行:
bash-2.04$
如果您恰巧是超级用户 (root),您就有权使用下面这个美丽的标示“身份”的提示行版本:
bash-2.04#
这些提示行并不是十分漂亮。这也就难怪几种 linux 版本对默认提示行进行了升级, 在
其中增加了颜色和更多的信息。但是,即便您恰好有一个本身带有很好的彩色提示行的新式版
本,它也不可能是完美无缺的。您或许希望在提示行中增加或更改几种颜色,或者增加(或删
除)一些信息。从头开始设计属于您自己的彩色的、经过装饰的提示行并不难。
提示行基础
在 bash 下,可以通过更改 PS1 环境变量的值来设置提示行,如下所示:
$ export PS1="> "
>
更改会立即生效,通过将 "export" 定义放在您的 ~/.bashrc 文件中可将这种更改固定
下来。只要您愿意,PS1 可以包含任意数量的纯文本:
$ export PS1="This is my super prompt > "
This is my super prompt >
尽管这很有趣,但在提示行中包含大量静态文本并不是特别有用。大多数定制的提示行包
含诸如用户名、工作目录或主机名之类的信息。 这些花絮信息可以帮助您在 shell 世界中遨
游。例如,下面的提示行将显示您的用户名和主机名:
$ export PS1="u@H > "
drobbins@freebox >
这个提示行对于那些以多个不同名称的帐户登录多台机器的人尤为有用,因为它可以提醒
您:您目前在哪台机器上操作,拥有什么权限。
在上面的示例中,我们使用了专用的用反斜杠转义的字符序列,藉此通知 bash 将用户名
和主机名插入提示行中,当这些转义字符序列出现在 PS1 变量中时,bash 就会用特定的值替
换它们。我们使用了序列 "u"(表示用户名)和 "H"(表示主机名的第一部分)。下面是
bash 可识别的全部专用序列的完整列表(您可以在 bash man page 的 "PROMPTING" 部分找
到这个列表):
序列 说明
a ASCII 响铃字符(也可以键入