> Linux教程 > Linux学习 >

linux环境变量设置区别

1、设置

"/etc/profile"此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从"/etc/profile.d"目录的配置文件中搜集shell的设置。所以如果你有对/etc/profile有修改的话必须得重启你的修改才会生效,此修改对每个用户都生效。

"/etc/bashrc"为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。如果你想对所有的使用bash的用户修改某个配置并在以后打开的bash都生效的话可以修改这个文件,修改这个文件不用重启,重新打开一个bash即可生效。

"~/.bash_profile"每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,它设置一些环境变量,执行用户的.bashrc文件。此文件类似于/etc/profile,也是需要重启才会生效,/etc/profile对所有用户生效,~/.bash_profile只对当前用户生效。

"~/.bashrc"该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。(每个用户都有一个.bashrc文件,在用户目录下)。此文件类似于/etc/bashrc,不需要重启生效,重新打开一个bash即可生效, /etc/bashrc对所有用户新打开的bash都生效,但~/.bashrc只对当前用户新打开的bash生效。

"~/.bash_logout"当每次退出系统(退出bash shell)时,执行该文件。

2、总结

"/etc/profile","/etc/bashrc"是系统全局环境变量设定。

"~/.profile","~/.bashrc"用户家目录下的私有环境变量设定。

当登入系统时候获得一个shell进程时,其读取环境设定档有三步:

  • 首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如/etc/profile.d和/etc/inputrc
  • 接着根据不同使用者帐号,去其家目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取~/.profile,这三个文档设定基本上是一样的,读取有优先关系
  • 最后在根据用户帐号读取~/.bashrc

至于"~/.profile"与"~/.bashrc"的不区别都具有个性化定制功能:"~/.profile"可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次;"~/.bashrc"也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次。

(责任编辑:IT)