我找到了多种方法来更新具有桌面环境的 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