无需重新登录桌面即可重新加载环境变量

无需重新登录桌面即可重新加载环境变量

我找到了多种方法来更新具有桌面环境的 Ubuntu 系统的环境变量,一些常见的答案是:

  • /etc/environment
  • /etc/profile/etc/profile.d/*.sh
  • $HOME/.profile
  • $HOME/.pam_environment

而且很多人还说$HOME/.bashrc这只适用于 bash,所以这实际上是不正确的。

在运行的系统中,似乎无法通过任何这些方式更新环境。如果我打开一个新的终端选项卡、一个新的终端窗口、关闭终端并重新打开整个应用程序,或者启动一个完全不同的应用程序,它们似乎都不会重新评估这些文件中的任何一个

由于我需要定期更新开发工具等的环境,并且有多个我不想终止的长期运行的任务(需要几天或几周才能完成的任务),所以这不是特别方便。

我如何获得运行桌面环境重新加载并应用环境变量的更新,这样我就不必关闭我正在做的一切来让新启动的软件(例如IDE,Git GUI客户端等)看到更新的环境?

如果重要的话,我会使用 XFCE4 作为桌面环境。

答案1

您可以使用该source命令重新读取相关文件,例如

source $HOME/.profile

它可以缩写为一个点,例如

. $HOME/.profile

但是如果你想设置一些环境变量以在应用程序中使用,那么在 shell 会话中设置它们并从那里启动应用程序可能更可行,正如 muru 在评论中提到的那样。这将是类似

export LANG=fr_FR
/some/path/to/an/executable

您还可以为某个特定命令设置环境变量

LANG=fr_FR /some/path/to/an/executable

如果你经常使用上述内容,你可以编写一个简短的脚本来完成这项任务,例如

#!/bin/bash
export LANG=fr_FR
/some/path/to/an/executable

将脚本放在您的 $PATH 中的某个位置,比如说/usr/local/bin使用类似这样的名称start_important_application,然后您就可以使用此命令来启动您的应用程序。

可能可以在自定义启动文件(以 结尾的文件)的键LANG=fr_FR some_command中使用类似的内容,但我还没有测试过。Exec.desktop

相关内容