首页 Shell
--
 
提示符


每次当您打开一个控制台(console)或 xterm 时,最先看到的就是提示符(prompt),类似于:

account@hostname ~ $

在默认设置下,提示符将显示您的用户名、主机名(默认是‘localhost’)、当前所在目录(在 Unix 中,‘~’表示您的 home 目录)
按照传统,最后一个字符可以标识您是普通用户($),还是‘root’(#)

您可以通过 $PS1 变量来设置提示符。命令

echo $PS1

将显示当前的设定。其中可用字符的含义在 man bash 的‘PROMPTING’部分有说明。

如何才能完成理想的设置呢?对于健忘的初学者来讲,默认设定有些不友好,因为提示符只显示当前目录的最后一部分。如果您看到象这样的提示符

tom@localhost bin $

您的当前目录可能是‘/bin’、‘/usr/bin’、‘/usr/local/bin’及‘/usr/X11R6/bin’。当然,您可以用

pwd (输出当前目录,print working directory)

能不能叫 shell 自动告诉您当前目录呢?
当然可以。这里我将提到的设定,包括提示符,大都包含在文件‘/etc/bashrc’中。您可以通过编辑各自 home 目录下的‘.bash_profile’和‘.bashrc’来改变设置。

man bash 中的‘PROMPTING’部分,对这些参数(parameter)有详细说明。您可以加入一些小玩意,如不同格式的当前时间,命令的历史记录号,甚至不同的颜色。

在‘~/.bashrc’中,我喜欢的设定是:

PS1="\[{content}33[1m\][\w]\[{content}33[0m\] "

‘root’在‘~/.bashrc’中的设定 是:

PS1="\[{content}33[0;31m\][\w]\[{content}33[0m\] "

这样我得到的提示符就是:

[/usr/bin]

当用‘root’时,变成:

[/usr/bin]

我已经除掉了主机名和用户名,因为我用不着这些。但我首先想一眼就能看出我的身份是普通用户还是‘root’。注意到,普通用户的提示符可以是黑底白字,或白底黑字。
要在终端上获得恰当的颜色调配, 您可以下载 这个脚本 ,赋予执行权限chmod +x color,然后再运行。

一种更适当的设定:

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

这样,提示符就变成:

user_name: /usr/bin$

您可以通过命令 export 来测试不同的设置(比如,export PS1="\u: \w\\$ "。如果找到了适合的提示符,就将设置放到您的‘.bashrc'’中。这样,每次打开控制台或终端窗口时,都会生效。

您甚至可以给提示符设定主题(theme),也就是搭配不同的颜色,使其看起来象很棒的 ol 的 C64 提示符。如果您对此感兴趣,可以看一下 Bashish