答案1
通过用户界面为用户应用程序设置环境变量的方法在 Windows 和 Linux 上有所不同。您使用的 Windows 界面会更改当前会话中的变量值以及未来会话中的变量值。
在 Linux 上,设置环境变量的传统方法在登录时起作用。有多种方法可以做到这一点,但它们涉及更改仅在登录时读取的文件。因此它们不适用于当前会话。为此,您可以使用的主要文件是.profile
和.pam_environment
,都位于您的主目录中;看设置环境变量的最佳发行版/与 shell 无关的方法是什么?进行更详细的讨论。
要为当前会话设置环境变量,您必须在启动应用程序的进程中设置它们:GUI shell。在 Windows 下这很容易,因为没有真正的 GUI shell 选择。 (从技术上讲,替换默认的 shell 是可行的,但很少有用户这样做。)在 Linux 下,有数百种可能的 GUI shell — GUI shell 通常是窗口管理器,有时是一个单独的组件桌面环境。在窗口管理器或桌面环境中没有设置环境变量的标准方法:每个 WM/DE 都有自己的方法(不幸的是,有些没有方法)。
与更改环境变量无关的 WM/DE 是编辑~/.profile
.基本语法(还有其他方法)是
export MYVAR='the value of the variable'
然后启动一个终端(运行一个 shell),并在该 shell 中输入
. ~/.profile
这将从 加载环境变量的新值.profile
。此后,如果您从该 shell 运行程序,新变量将应用于该程序。但是,如果您直接从 GUI 菜单运行程序,则该程序将继承提供 GUI 菜单的程序的环境,因此,如果您想更改此设置,则必须使用该程序提供的任何方式(或作为一部分的配套程序)桌面环境)。
答案2
/etc/environment
您可以在文件中设置变量。格式必须类似于:
VARIABLE=value
请注意,变量扩展不起作用/etc/environment
,您需要重新启动所有将使用/需要这个/那些变量的进程
答案3
就其本质而言,环境变量可用于由设置环境变量的进程/shell 启动的所有进程。
Unix 中的环境变量是使用 导出的 shell 变量export
,例如
MYVAR="my value"
export MYVAR
您通常在 shell 启动文件中设置环境变量。就情况而言bash
,这是在~/.bash_profile
以及许多其他外壳中使用的~/.profile
。
/etc
(例如)下有系统范围的 shell 初始化脚本/etc/profile
,可用于为所有用户定制环境。
环境变量也可以以与 shell 无关的方式为所有用户全局设置,但根据您的 Unix 风格,这样做的方式有所不同。大多数 BSD 可以通过修改来实现这一点,/etc/login.conf
而某些 Linux 使用/etc/environment
或其他机制。