linux中的PATH环境变量

时间:2011-09-22 06:07:04

标签: linux environment-variables

我想知道如何自动设置linux OS提供的标准环境变量,如PATH,HOME。这些文件是从哪个文件中读取的。当特定用户登录时,应该有一些文件可以从中设置这些变量。

3 个答案:

答案 0 :(得分:6)

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

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

/etc/profile适用于Bourne&amp ;;的系统设置。 Bourne兼容的shell。 /etc/profile 的行为可能因分布而异 对于最新的Ubuntu发行版,建议使用/etc/environment进行系统范围的设置(不推荐使用/etc/profile/etc/bash.bashrc,如{{1}中所述3}})
在Ubuntu机器上,/etc/profile是一个shell脚本,它在/etc/profile.d& bashrc中的系统范围/etc/bash.bashrc文件,而/etc/environment是一个文本文件,由每行的变量赋值组成,设置在系统范围的环境中。

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

有关Ubuntu系统上环境变量的更多详细信息,请参阅以下链接:Ubuntu help link
希望这有帮助!

答案 1 :(得分:4)

关于它们并没有什么神奇之处,它会在启动时设置它们。

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

例如,以下是/etc/profile开始的方式:

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

之后是其他文件的来源,而这些文件又会修改PATH

答案 2 :(得分:0)

您甚至可以使用模块环境软件http://en.wikipedia.org/wiki/Environment_Modules_(software)自行设置和管理环境变量。 要安装"模块" ,您可以将此命令用于Centos

sudo yum install environment-modules

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

编写模块文件以设置或预置环境变量。然后你模块加载这个文件。 例如,我的文件名为" mypath"

proc ModulesHelp { } {
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