你能設定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或其他機制。

相關內容