你能设置Linux中每个进程执行一次的环境变量吗?

你能设置Linux中每个进程执行一次的环境变量吗?

在Windows中,您可以使用以下窗口来设置每个进程执行一次的环境变量:

在此输入图像描述

你能在 Linux 中做同样的事情吗?

答案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或其他机制。

相关内容