在linux中的PATH环境variables

我想知道如何自动设置由Linux操作系统如PATH,HOME给出的标准环境variables。 哪些文件是从这些读取的。 应该有一些文件,这些variables是在特定的用户login时设置的。

Solutions Collecting From Web of "在linux中的PATH环境variables"

我想了解@cnicutar已经提到的更多细节。
环境变量包括PATH可以

  • 系统范围 – 环境变量的值直到系统启动
  • 会话范围 – 持续到会话持续(直到用户注销)

/etc/profile是为系统设置Bourne和Bourne兼容的shell而设计的。 /etc/profile的行为可能因分布而异。
对于最新的Ubuntu发行版,建议将/etc/environment用于系统范围的设置( 不建议使用/etc/profile/etc/bash.bashrc如Ubuntu帮助链接中所述 )
在Ubuntu机器上, /etc/profile是一个shell脚本,它在/etc/profile.d系统范围的bashrc文件中的/etc/bash.bashrc脚本,而/etc/environment是一个文本文件,包含变量赋值在全系统环境中设置的线。

对于每个用户,包括PATH (用于shell)的环境变量的值也可以通过~/.profile~/.bash_profile~./bash_login~/.bashrc~ =>用户的主目录)

你可以参考下面的链接了解Ubuntu系统环境变量的更多细节: https : //help.ubuntu.com/community/EnvironmentVariables
希望这可以帮助!

他们没有什么神奇的东西,外壳在启动的时候就设置好了。

你应该开始阅读/etc/profile并从那里开始工作。 或者, strace可能会显示shell在启动时尝试读取哪些文件。

例如,这是我的/etc/profile启动方式:

 PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin" export PATH 

之后是源其他文件,轮到修改PATH

您甚至可以使用模块环境软件http://en.wikipedia.org/wiki/Environment_modulees_(software)自行设置和管理您的环境变量。 要安装“模块”,你可以使用Centos的这个命令

 sudo yum install environment-modules 

对于Ubuntu用户,您可以从源代码安装它: http : //modules.sourceforge.net/

编写一个模块文件来设置或预先加载环境变量。 然后你模块加载这个文件。 例如,我的文件名称“mypath”

 proc moduleesHelp { } { global version prefix puts stderr "\t Loads the environment for my installed home folder HOME/local" } module-whatis "Loads the environment for my installed home folder HOME/local" set HOME /home/svu/a0081742 prepend-path PATH $HOME/local/bin prepend-path LIBRARY_PATH $HOME/local/lib prepend-path LD_LIBRARY_PATH $HOME/local/lib prepend-path LD_INCLUDE_PATH $HOME/local/include prepend-path MANPATH $HOME/local/share/man 

然后,你加载文件

 module load mypath 

比你可以列出你的加载模块

 module list