如何在Linux中永久导出变量?
我正在运行RHEL6,并导出了如下环境变量:如何在Linux中永久导出变量?,linux,environment-variables,redhat,Linux,Environment Variables,Redhat,我正在运行RHEL6,并导出了如下环境变量: export DISPLAY=:0 当终端关闭时,该变量丢失。如何永久添加此变量,以便此变量值始终存在于特定用户中?将该行添加到.bashrc或.profile中。$HOME/.profile中设置的变量对于当前用户是活动的,/etc/profile中的变量是全局变量。.bashrc在每次bash会话启动时都会被拉入。您可以将其添加到shell配置文件中,例如,$HOME/.bashrc或在/etc/environment中的更多全局配置文件中。
export DISPLAY=:0
当终端关闭时,该变量丢失。如何永久添加此变量,以便此变量值始终存在于特定用户中?将该行添加到
.bashrc
或.profile
中。$HOME/.profile
中设置的变量对于当前用户是活动的,/etc/profile
中的变量是全局变量。.bashrc
在每次bash会话启动时都会被拉入。您可以将其添加到shell配置文件中,例如,$HOME/.bashrc
或在/etc/environment
中的更多全局配置文件中。
添加这些行后,更改不会立即反映在基于GUI的系统中。您必须退出终端或创建新的终端,然后在服务器中注销会话并登录以反映这些更改。在Ubuntu系统上,使用以下位置:
JAVA\u PATH=/usr/local/JAVA
的系统范围持久变量存储在
/etc/environment
/etc/.bashrc
~/.pam_environment
export PATH=“$JAVA\u PATH:$PATH”
storein
/etc/environment
/etc/.bashrc
~/.pam_environment
PATH DEFAULT=/usr/bin:usr/local/bin
存储在
/etc/environment
/etc/.bashrc
~/.pam_environment
JAVA\u HOME
,以便maven为每个构建获取我想要的内容。我做了以下工作:
- 创建了
脚本,该脚本只导出j6.sh
j6安装路径JAVA\u HOME=…
- 然后,正如上面的一条评论所建议的,每当我需要J6进行构建时,我都会在相应的命令终端中运行source
。默认情况下,myJ6.sh
设置为J7JAVA\u HOME
希望这有帮助。您必须编辑三个文件,以设置永久性环境变量,如下所示:
- ~/.bashrc
打开任何终端窗口时,将运行此文件。因此,如果希望在所有终端窗口中都有一个永久性环境变量,则必须在此文件末尾添加以下行:
export DISPLAY=0
DISPLAY=0
- ~/.剖面图 与bashrc相同,您必须将所提到的命令行放在该文件的末尾,以便在操作系统的每次登录中使用环境变量
- /etc/环境
如果您希望在每个窗口或应用程序(不仅仅是终端窗口)中使用环境变量,则必须编辑此文件。在此文件末尾添加以下命令:
export DISPLAY=0
请注意,在此文件中,您不必编写export命令DISPLAY=0
$ source ~/.bashrc
$ source ~/.profile
但对于/etc/environment,您别无选择,只能重新启动(据我所知)
简单的解决办法
我已经为这些过程编写了一个简单的脚本来完成所有这些工作。您只需设置环境变量的名称和值
#!/bin/bash
echo "Enter variable name: "
read variable_name
echo "Enter variable value: "
read variable_value
echo "adding " $variable_name " to environment variables: " $variable_value
echo "export "$variable_name"="$variable_value>>~/.bashrc
echo $variable_name"="$variable_value>>~/.profile
echo $variable_name"="$variable_value>>/etc/environment
source ~/.bashrc
source ~/.profile
echo "do you want to restart your computer to apply changes in /etc/environment file? yes(y)no(n)"
read restart
case $restart in
y) sudo shutdown -r 0;;
n) echo "don't forget to restart your computer manually";;
esac
exit
将这些行保存在一个SHF文件中,然后运行它 如果它适合任何人,下面是一些永久添加环境变量的简要指南
vi ~/.bash_profile
将变量添加到文件中:
export DISPLAY=:0
export JAVA_HOME=~/opt/openjdk11
立即应用所有更改:
source ~/.bash_profile
来源:谢谢,这很有帮助。如何在不重新启动的情况下使更改生效?(我是Linux新手)@mini me-~/bashrc在每次打开shell时都会被拉入。要显式加载它,请对所有新shell使用
source
例如->source~/.bashrc
@kostja?如果我在更改这些环境变量之前运行了eclipse,并且我希望eclipse更改了变量,那么我必须重新启动eclipse吗?@mini-me:进程的环境通常由调用方设置,并从进程内部更改。从正在运行的流程外部更改env是不寻常的,并且在导出时不可行,但是@Mr.Hyde:这通常并不重要。文件是从上到下解析的,因此,如果一个var定义依赖于另一个var定义,则应该对它们进行相应的排序。是的,文件的结尾很好,脚本运行得很好。我已经安装了Ubuntu 14.04。我只是将上面的内容粘贴到一个空白文件中,名为insert_var.sh,然后chmod-x insert_var.sh
,然后bash insert_var.sh
。谢谢。我在Ubuntu中打开了一个终端窗口,输入export MY_VAR=1。此变量MY_VAR将存储在哪里?您的变量MY_VAR
将仅是您正在处理的当前shell的一部分。如果关闭shell,则变量将不可访问。