环境变量

通过设置环境变量能使一些任务做起来更加容易。环境变量是一些用户希望存储或者以后会用到的信息的间断的名称。举个例子来说,环境变量 PS1 告诉 bash 如何显示提示符的格式。其他变量可能告诉应用程序如何运行。举个例子,LESSOPEN 变量告诉 less 运行简便的 lesspipe.sh 预处理器,LS_OPTIONSls 开启颜色显示。

设置你自己的环境变量是容易的。bash 包含两个内建的函数用来设置变量:setexport 。除此以外,环境变量也可以被 unset 移除。(如果你不小心用 unset 移除了一个你不知道干什么的环境变量,不要紧张。你可以通过登出终端后再重新登录的方式重置所有默认的变量)。你可以通过在变量名前加 $ 符号来获取变量的值。

darkstar:~$ set FOO=bar
darkstar:~$ echo $FOO
bar

setexport 最主要的区别是 export 会将变量应用到子 shell 中(子 shell 就是运行在一个父 shell 中的另一个 shell)。你可以通过控制提示符显示的 PS1 变量来查看这一区别。

darkstar:~$ set PS1='FOO '
darkstar:~$ export PS1='FOO '
FOO

还有其他重要的环境变量,不过其中最重要的一个环境变量是 PATHPATH 一个用来搜索应用程序的目录列表。例如,top 位于 /usr/bin/top 。你可以输入完整路径来运行这个程序,但是如果 /usr/bin 位于 PATH 变量中,则直接输入 top 就可以运行,bash 会搜索到这里你无需手动输入完整路径。当你作为普通用户来尝试运行一个程序是,你首先需要看看它所在的目录在不在 PATH 变量中,例如 ifconfig

darkstar:~$ ifconfig
bash: ifconfig: command not found
darkstar:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin:.

上面是一个典型的普通用户的 PATH 。你可以像改变其他环境变量一样改变它。如果你以 root 身份登录,你会看到不一样的 PATH

darkstar:~$ su -
Password:
darkstar:~# echo $PATH
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin

最后更新于