-
环境变量PATH的设置(都是经过实验验证过的,)
操作环境:ubuntu 10.04 kernel:2.6.32.44
设置变量主要有以下这几个文件:/etc/environment,/etc/profile,/etc/bash.bashrc,/root/.bashrc,/root/.profile,/home/limuscle/.bashrc,/home/limuscle/.profile,/etc/login.defs这些文件。
/etc/profile,/etc/bash.bashrc这两个是应用于整个系统范围内的,其中都是默认没有定义PATH这个环境变量的。
其他的~/.bashrc,~/.profile是针对用户的。
shell分为两种,loginshell和non-loginshell。Loginshell就是在tty1-tty7下需要输入密码才能进入终端输入界面的。Non-loginshell就是我们获取一个终端界面,不需要输入密码的,例如我们在xwindows下获取一个终端一样。
Login shell读取:/etc/profile,~/.profile这两个文件。
Non-login shell 只读取~/.bashrc
在执行/etc/profile会在这个文件中执行/etc/bash.bachrc
在执行~/.profile会在这个文件中执行~/.bashrc。
以上说明:non-loginshell读取的指示loginshell读取资料所包含的一部分而已,所以我们source时指定的文件不同,就会导致我们的PATH就不同了。
(注:~指的是用户目录,当为root时,为/root/*,当为普通用户时,为/home/limuscle/*,使用不同的用户对应不同的文件。)
一般用户默认的PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games,root用户的默认PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.设置默认的值在/etc/login.defs这个文件里进行定义。
我们从xwindows下新建一个终端(non-login),就只会读取~/.bashrc这个文件.而每次进行切换用户后,就会重新对切换后的用户的.bashrc进行重新读取。
我们无论是那个用户,只要执行sourcefilename就可以把当前的PATH变为在这些文件中所设置的PATH。所以我们的/etc/environment就是这样的类型,当我们要使用里面的设置时,就source/etc/environment就可以设置PATH了。这样设置的PATH就可以针对不同的变量进行设置
(注:以上的limuscle是本人的家目录名,只要换成自己家目录就是了)