Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux中的PATH环境变量_Linux_Environment Variables - Fatal编程技术网

Linux中的PATH环境变量

Linux中的PATH环境变量,linux,environment-variables,Linux,Environment Variables,我想知道Linux操作系统(如PATH、HOME)提供的标准环境变量是如何自动设置的。这些文件是从哪些文件读取的。当某个特定用户登录时,应该有一个文件来设置这些变量。这些变量没有什么神奇之处,shell在启动时设置它们 你应该开始阅读/etc/profile,然后从那里开始学习。或者,strace可能会显示shell在启动时试图读取的文件 例如,下面是我的/etc/profile的启动方式: PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/

我想知道Linux操作系统(如PATH、HOME)提供的标准环境变量是如何自动设置的。这些文件是从哪些文件读取的。当某个特定用户登录时,应该有一个文件来设置这些变量。

这些变量没有什么神奇之处,shell在启动时设置它们

你应该开始阅读
/etc/profile
,然后从那里开始学习。或者,
strace
可能会显示shell在启动时试图读取的文件

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

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

之后是其他文件的来源,这些文件依次修改
路径

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

  • 系统范围-环境变量的值持续到系统启动
  • 会话范围-持续到会话持续(直到用户注销)
/etc/profile
用于Bourne&Bourne兼容外壳的系统设置。
/etc/profile
的行为可能因发行版而异。
对于最新的Ubuntu发行版,建议使用
/etc/environment
进行系统范围的设置(不建议使用
/etc/profile
/etc/bash.bashrc
,如中所述)
在Ubuntu机器上,
/etc/profile
是一个shell脚本,它在
/etc/profile.d
/etc/bash.bashrc
中的系统范围
/bashrc
文件中获取脚本,而
/etc/environment
是一个文本文件,由设置到系统范围环境中的每行变量赋值组成

对于每个用户,还可以通过
~/.profile
~/.bash\u profile
~./bash\u login
~./bash\u login
~/.bashrc
~
=>用户的主目录)操作环境变量的值


有关Ubuntu系统上环境变量的更多详细信息,请参阅以下链接:

您甚至可以使用module environment软件自行设置和管理环境变量。 要安装“模块”,可以在Centos上使用此命令

sudo yum install environment-modules
对于Ubuntu用户,您可以从以下来源安装它:

编写模块文件以设置或前置环境变量。然后,您可以使用模块加载此文件。 例如,我的文件名为“mypath”

然后,用

module load mypath
然后,您可以使用列出已加载的模块

module list

这里给出的链接现在建议更改/etc/environment而不是/etc/profile。它表示不再建议更改/etc/profile。您必须重新启动或x重新启动才能使其工作。@VampileCoder:谢谢!我已经更新了回复。请随意编辑以更新/做出更好的响应在更改/etc/environment之后,如果我们做source/etc,那就太好了/environment@AmitPandya:当然
source
或等效程序可以工作,但恐怕它只适用于调用它的shell。
/etc/environment
AFAIK-in用于系统范围的设置,因此更好的选择可能是注销-登录。
module list