Linux的环境配置文件分两大类,一类是针对所有用户,一类是针对当前用户。(以下均以Ubuntu为例,其他发行版大同小异)
针对所有用户的:
/etc/profile——用户登录时会被执行,需要重新加载才能生效。
/etc/bash.bashrc——用户打开bash shell时执行,重新开一个shell即可生效。
同理,针对单个用户的:
~/.profile——用户登录时执行,需要重新加载才能生效。
~/.bashrc——用户打开bash shell时执行,重新开一个shell即可生效。
在配置文件中最常写的就是加入新的环境变量及自启动程序。
和环境变量相关的几个命令包括:
export ——设置某个环境变量(仅在当前shell窗口生效)
echo ——显示某个变量
env ——显示当前用户所有有效的环境变量
unset ——删除某个变量
source xxxx ——应用某个配置文件,以使变量生效(仅对当前shell)
一个常见的疏忽是,在配置文件中忘写 export 命令,而仅仅写成 XXX=abc,这样只是一个本地变量而不是环境变量(即只在当前脚本里使用的变量)。此时如果是写在.profile中,那么登录完就失效了,所以在shell中是echo不到这个变量的。当然如果在这个shell中 source .profile一下,又有了。如果是写在.bashrc中的,那么在shell中还是可以echo到的(因为开shell的时候就会被执行),但仍然不会显示在env命令中。所以要确保加到环境变量里,别忘了export 。其实从export的字面意思理解更准确——输出这个变量到环境中。