【问题标题】:setting environment variables on Linux startup在 Linux 启动时设置环境变量
【发布时间】:2021-12-10 22:33:46
【问题描述】:

* 中有几个关于这个主题的条目。 例如here

为什么它不能在我的装有 Debian-10 (Buster) 的电脑上运行?我做了 3 次试验:

  1. /etc/environment.d下面放一个名为90java.conf的文件

    JAVA_HOME=/usr/lib/jvm/default-java

  2. /etc/profile.d下面放一个名为java-env.sh的文件

    导出 JAVA_HOME=/usr/lib/jvm/default-java

  3. /etc/profile的末尾添加相同的文本

    导出 JAVA_HOME=/usr/lib/jvm/default-java

并在每次试用时重新启动 Debian。

然后打开一个命令窗口并进入

echo $JAVA_HOME

响应总是一个空行。喜欢了解启动时环境变量我没有掌握的东西。

稍后添加:

输入 export 语句到 /etc/bash.bashrc 解决了我的问题。

但是,我想了解 /etc/environment/etc/profile 方法的不同之处。为什么在这种情况下环境变量不显示?

【问题讨论】:

    标签: linux environment-variables startup


    【解决方案1】:

    这样的设置只在特定的上下文中相关。例如您的外壳,您想在其中使用软件和工具。

    因此,解决方案实际上比您尝试过的所有方法都简单得多。您必须在您的私人/本地环境中执行此操作。但这取决于你的外壳。

    如果您有 bash(或类似的 shell bash、sh、dash、...),最好编辑文件 ~/.profile 并在此处添加 export JAVA_HOME=/usr/lib/jvm/default-java。如果您有其他 shell,请找到我们正确的等效文件。对于 csh,它将是 ~/.cshrc 等。

    【讨论】:

    • 所有用户的具体上下文是什么?据我了解上面给出的链接,将环境变量定义添加到 /etc/profile 应该与所有用户相关。但我做错了什么,想了解哪里出了问题。