next up previous contents index
Next: 命令存放的地方 Up: Shell的使用 Previous: Shell的使用   目录   索引


环境变量

每个进程都有一个相关的 环境。 一个环境就是一个 环境变量的集合.一个变量是一个有着固定名字的可改变的值. 举个例子,名字EMAIL可以指joe@nowhere.com这个值.这个值可以变化;EMAIL 也可以指jane@somewhere.com。

由于您的shell是一个类似于其他进程的进程,它有一个环境。您可以打入 printenv 命令来看一下您的shell环境。

图 6.1: printenv 输出的一个例子
\begin{figure}
\par\par\begin{list}{}{
\setlength {\rightmargin}{\leftmargin}\ra...
...ables}\index{shells!environments}
\par\_=/usr/bin/printenv\end{list}\end{figure}

6.1[*] 页上有一些printenv输出的例子。在您的系统上,这些输出会有所不同,但总是类似的。

环境变量是配置系统的一种方法。举个例子, EDITOR 环境变量可让你选择喜爱的编辑器来邮递邮件、写e-mail等。

设置环境变量很简单。作为练习,试一下修改环境变量来定制你的shell提示符和和文本文件查看器。首先,让咱们学习 一点背景知识。

man less
这个命令使您能查看less的在线手册。为了能一页页地显示给您看,man激活一个 pager ,从而使您能每按一次空格键就看到新的一页。缺省情况下,使用的的pager是more

咱们再来浏览一下 less 的帮助页, less, 是一个性能加强的pager: 可以按空格键翻到新的一页;按 q 键退出。 而 more 在您到达man帮助页的末端时会自动退出。

export PAGER=less
如果您阅读后知道了 less 的优点,您也许想使用它来读帮助页。为了做到这一点,您要设置 PAGER 环境变量。

bash 下设置环境变量的命令一般总是以下格式:

export NAME=value
export 的意思是把变量从shell加到环境中。这意味着除了shell,别的程序(例如,文件浏览器) 都能访问它。

echo $PAGER
这是显示一个变量的值最方便的方法。$PAGER 告诉shell在调用这个命令之前,插入PAGER变量的值。echo回显它的参数:这一次 它显示出当前的PAGER变量的值,less

man more
再来显示 more 这个命令的帮助手册页。这次man将调用less这个pager。

less 具有许多 more 缺乏的特性。比如您可用b键回滚。您也可以用光标键向上和向下移动。 当到达帮助页的未尾时, less不会退出;它将等您按下 q 键。

您可以试一些 less 特有的命令,比如 b,而在您使用 more 时,它们将不起作用。

unset PAGER
如果您不想定制pager,您可以 (设回)unset 这个变量。在unset 之后,man 在缺省情况下就会使用 more ,就如在您设置此变量前一样。

echo $PAGER
因为 PAGER 已经被 unset, echo 将不显示任何东西。

PS1=hello:

图 6.2: 改变提示符
\begin{figure}
\par\par\begin{list}{}{
\setlength {\rightmargin}{\leftmargin}\ra...
...o~My~prompt~is~\$PS1}
\par My~prompt~is~hello:
\par hello:\end{list}\end{figure}

只是为了有趣,改变一下你的shell提示符。 之后$ 将会改变。; 请看图 6.2 的详细情况。

export 不是必需的,因为您会改变shell原始的行为。不存在把这个变量export到环境给其它程序利用的理由。 从技术上讲,与其说 PS1 是一个环境变量,还不如说是一个shell变量。

如果您愿意,您也可以 export 这个shell变量,把它转变成一个环境变量。如果你这样做了,您从shell上运行的程序就可以感知到它。


next up previous contents index
Next: 命令存放的地方 向上: Shell的使用 Previous: Shell的使用   目录   索引
John Goerzen / Ossama Othman