无需重新登录即可更改 Linux 桌面的环境变量

无需重新登录即可更改 Linux 桌面的环境变量

我在我的 中设置了一个特定的环境变量.bashrc,一旦我获取它,它就可以在 shell 本身和我从 shell 启动的 gVim 实例中使用。但是,如果我通过系统 GUI 菜单启动 gVim 实例,该实例就看不到该变量。

根据这个答案,gVim 继承了桌面环境的变量。在这种情况下,有没有办法动态更改该环境中的值或向其中添加新的环境变量?我理解设置变量.profile将使其在重新启动时可用于桌面环境,但有没有办法在不重新启动或重新登录的情况下进行更改?

答案1

每个进程继承一个复制环境变量。所以,一般来说,不需要——你应该从头开始重新启动整个桌面会话。

如果它是一个单独的程序,那么只需重新启动“系统菜单”就足够了 - 例如在 Xfce4 中,您可以xfce4-panel从“固定”shell 中终止并重新启动它,它将从您的 shell 中继承更新的环境。

请注意,大多数环境变量应从~/.profile相反,因为并非所有桌面会话都是通过 bash 启动的,而且即使如此,也很少被告知要读取~/.bashrc


作为例外,一些程序具有从外部更新其环境的功能,因为重新启动它们会影响太多东西——例如tmuxdbus-daemonsystemd --user。但即使是它们也无法将新环境推送到已经运行的服务中。

相关内容