如何在Linux中永久导出变量?

时间:2012-10-24 09:42:51

标签: linux environment-variables redhat

我正在运行RHEL6,我已经导出了这样的环境变量:

export DISPLAY=:0

终端关闭时该变量丢失。如何永久添加此值,以便特定用户始终存在此变量值?

6 个答案:

答案 0 :(得分:140)

您可以将其添加到您的shell配置文件中,例如$HOME/.bashrc全球/etc/environment或更多。

答案 1 :(得分:84)

您必须编辑三个文件以设置永久环境变量,如下所示:

  • 〜/ .bashrc

     当您打开任何终端窗口时,将运行此文件。因此,如果您希望在所有终端窗口中都有永久环境变量,则必须在此文件的末尾添加以下行:
    导出DISPLAY = 0

  • 〜/ .profile中

  • bashrc 相同,您必须将提到的命令行放在此文件的末尾,以便在您的操作系统的每次登录中都有您的环境变量。

  • / etc / environment

  • 如果您希望在每个窗口或应用程序(而不仅仅是终端窗口)中使用环境变量,则必须编辑此文件。在此文件的末尾添加以下命令:
    DISPLAY = 0
    请注意,在此文件中,您不必编写 export 命令

通常,您必须重新启动计算机才能应用此更改。但您可以通过以下命令在 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中,然后make it executable,然后运行它!

    答案 2 :(得分:28)

    将该行添加到.bashrc.profile$HOME/.profile中设置的变量对当前用户有效,/etc/profile中的变量是全局变量。每个bash会话开始都会提取.bashrc

    答案 3 :(得分:25)

    在Ubuntu系统上,使用以下位置:

    1. 系统范围的持久变量,格式为JAVA_PATH=/usr/local/java存储在

      /etc/environment
      
    2. 引用变量的系统范围持久变量,例如
      export PATH="$JAVA_PATH:$PATH"存储在

      /etc/.bashrc
      
    3. PATH DEFAULT=/usr/bin:usr/local/bin格式的用户特定持久变量存储在

      ~/.pam_environment
      
    4. 有关#2的更多详细信息,请选中此项 Ask Ubuntu answer。 注意:#3是Ubuntu的推荐,但在现实世界中可能存在安全问题。

    答案 4 :(得分:2)

    一个特例: 我安装了Java 7和Java 6,我需要用6运行一些构建,其他用7运行。因此我需要动态地改变JAVA_HOME,以便maven为每个构建选择我想要的东西。我做了以下事情:

    • 创建了j6.sh脚本,它只是将JAVA_HOME=...路径导出到j6 install ...
    • 然后,正如上面的一条评论所建议的,每当我需要J6进行构建时,我在相应的命令终端中运行源j6.sh。默认情况下,我的JAVA_HOME设置为J7。

    希望这有帮助。

    答案 5 :(得分:1)

    如果它适合任何人,这是一些永久添加环境变量的简要指南。

    vi ~/.bash_profile
    

    将变量添加到文件中:

    export DISPLAY=:0
    export JAVA_HOME=~/opt/openjdk11
    

    立即应用所有更改:

    source ~/.bash_profile
    

    来源:https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-set-environment-variables-in-linux/