如何在 Linux 中永久导出变量?
- 2024-10-11 08:36:00
- admin 原创
- 80
问题描述:
我正在运行RHEL 6,并且已经导出了如下环境变量:
export DISPLAY=:0
当终端关闭时,该变量会丢失。如何永久添加该变量,以便该变量值始终存在于特定用户中?
解决方案 1:
您可以将其添加到您的 shell 配置文件中,例如,$HOME/.bashrc
或者在 中进行更全局的添加/etc/environment
。
添加这些行后,更改不会立即反映在基于 GUI 的系统中。您必须退出终端或创建一个新终端,然后在服务器上注销会话并登录以反映这些更改。
但是,您也可以~/.bashrc
使用 bash 内置命令手动执行source
。
$ source ~/.bashrc
对于其他 shell,请查阅文档以了解类似的命令。
解决方案 2:
您必须编辑三个文件来设置永久环境变量,如下所示:
~/.bashrc
当您打开任何终端窗口时,此文件都会运行。因此,如果您希望在所有终端窗口中拥有永久环境变量,则必须在该文件末尾添加以下行:
export DISPLAY=0
〜/ .profile
与bashrc相同,您必须将提到的命令行放在此文件的末尾,以便在每次登录操作系统时都拥有环境变量。
/etc/环境
如果您希望环境变量出现在每个窗口或应用程序(而不仅仅是终端窗口)中,则必须编辑此文件。在此文件末尾添加以下命令:
DISPLAY=0
请注意,在此文件中您不必编写导出命令
通常情况下,您必须重新启动计算机才能应用这些更改。但您可以通过以下命令在bashrc和配置文件中应用更改:
$ 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
将这些行保存在 shfile 中,然后使其可执行并运行它!
解决方案 3:
在Ubuntu系统上,使用以下位置:
系统范围的持久变量,格式为
JAVA_PATH=/usr/local/java
store in
/etc/environment
引用
export PATH="$JAVA_PATH:$PATH"
存储在
/etc/.bashrc
用户特定的持久变量,格式为
PATH DEFAULT=/usr/bin:usr/local/bin
store in
~/.pam_environment
有关 #2 的更多详细信息,请查看此
Ask Ubuntu 答案。
注意:#3 是 Ubuntu 的建议,但在现实世界中可能会存在安全问题。
解决方案 4:
将该行添加到您的.bashrc文件或.profile
。
文件$HOME/.profile中设置的变量对当前用户有效,而 中的变量/etc/profile
是全局变量。每次启动 Bash 会话时都会提取.bashrc文件。
解决方案 5:
如果它适合任何人,这里有一些永久添加环境变量的简要指南。
vi ~/.bash_profile
将变量添加到文件:
export DISPLAY=:0
export JAVA_HOME=~/opt/openjdk11
立即应用所有更改:
source ~/.bash_profile
来源:如何在 Linux 中设置环境变量
解决方案 6:
一个具体的例子:
我安装了 Java 7 和 Java 6,我需要用 6 运行一些构建,用 7 运行其他构建。因此,我需要动态地进行更改,JAVA_HOME
以便Maven为每个构建选择我想要的内容。我做了以下操作:
创建的
j6.sh
脚本只是将JAVA_HOME=...
路径导出到 j6 安装...然后,正如上面的一条评论所建议的那样,每当我需要 J6 进行构建时,我都会
j6.sh
在相应的命令终端中运行源。默认情况下,我的JAVA_HOME
设置为 J7。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件