2017-08-04 177 views
-1

设置环境变量在Linux下我如何在Linux下如何永久

我以前export设置ENV变量永久设置新的环境变量和它们的值。但问题在于会话特定。如果我打开新的会话,设置的值将会消失。 预先感谢您

+0

将它们放入/ etc/environ并重新引导。但是,有些服务可能会在* clean *环境中运行。这取决于服务 – hek2mgl

+0

将它设置在bash的'〜/ .bashrc'或zsh的'〜/ .zshrc'中。 – dlmeetei

+0

@dlmeetei这将是特定于shell的。/etc/environ是正确的地方 – hek2mgl

回答

0

将其设置在/etc/environment。在我的Ubuntu安装中,这是您可以永久设置环境变量的地方。该文件可能会因不同的分布而有所不同。以下是我的/etc/environment文件的内容。

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

了解如何环境变量PATH正在上面设置。

出口命令的说明

export varname使变量varname可从当前shell子shell任何运行,即在其上运行的export命令外壳。任何其他shell,与您当前的shell无关或是父项都不会有此变量。知道这一点,假设你使用的是bash shell,你可以在.bashrc文件中写出export命令。 .bashrc是每次启动bash shell时运行的文件,因此您在其中编写的任何命令都会在任何打开的bash shell中执行。因此,将输出命令写入.bashrc文件是另一种选择。类似的是你正在使用的任何其他shell的过程。例如。对于Z shell,文件是.zshrc。

+0

它的bash。唯一的问题是我没有访问任何文件〜/ .bash_profile,.bashrc,/ etc/environment。是否仍然可以使用不依赖于会话的命令设置路径? –

+0

你如何访问会话?通过ssh? 此外,更新你的问题与你的这个要求。它将高度影响答案。 –

+0

嗨Sahil,我的要求是我有一个负载生成机最小访问该文件夹。我想设置环境变量,以便可以参数化测试数据路径。 –

0

通常的地方是~/.bashrc,假设您使用的是bash,这是大多数发行版中的默认值。用echo $SHELL检查一下自己。 如果您只想在登录shell中设置变量(但不在脚本中),则可以使用~/.bash_profile

+0

它的bash。唯一的问题是我没有访问任何文件〜/ .bash_profile,.bashrc,/ etc/environment。是否仍然可以使用不依赖于会话的命令设置路径? –

+0

如果你甚至没有访问''HOME''中的文件,你将需要重新设置它们或者包含任何脚本。如果你有''/ myapp /'''可写的路径,你可以使用''/ myapp/vars''并在你的脚本中包含'source/myapp/vars''。 (注意变量中的语法错误,这些错误将包含在脚本中!) – allo

0

由于上面的回答, 设置环境变量取决于您是否要设置为用户会话或超级用户会话。

1)输入此命令在您选择的environement:

$ ls -a 

2)你会看到所有的缓存文件以及它们之间: 。在.bashrc

3)在你喜欢的编辑器打开这个文件,例如:

$ nano .bashrc 

4),然后在该文件的personnalized变量的末尾添加如下:

export YOURVARIABLE="/home/"$USER"/YOURPATHFOREXAMPLE" 

5)然后保存并关闭并打开终端,检查您的变量是否已设置:

$ echo $YOURVARIABLE 
[output ->] /home/the-user-name/YOURPATHFOREXAMPLE