Environment-Variables

如何永久設置環境變數

  • January 4, 2022

我的變數是

LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64

如何永久保存這些變數?

您可以將其添加到文件.profile或登錄 shell 配置文件(位於您的主目錄中)。

要“永久”更改環境變數,您至少需要考慮以下情況:

  1. 登錄/非登錄外殼
  2. 互動式/非互動式外殼

重擊

  1. Bash 作為登錄 shell 將按順序載入/etc/profile, ~/.bash_profile, ~/.bash_login,~/.profile
  2. Bash 作為非登錄互動式 shell 將載入~/.bashrc
  3. Bash 作為非登錄非互動式 shell 將載入環境變數中指定的配置$BASH_ENV
$EDITOR ~/.profile
#add lines at the bottom of the file:  
    export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
    export ORACLE_HOME=/usr/lib/oracle/11.2/client64

zsh

$EDITOR ~/.zprofile
#add lines at the bottom of the file:  
    export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
    export ORACLE_HOME=/usr/lib/oracle/11.2/client64

set -Ux LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
set -Ux ORACLE_HOME /usr/lib/oracle/11.2/client64

克什

$EDITOR ~/.profile
#add lines at the bottom of the file:  
    export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
    export ORACLE_HOME=/usr/lib/oracle/11.2/client64

伯恩

$EDITOR ~/.profile
#add lines at the bottom of the file:  
    LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib     
    ORACLE_HOME=/usr/lib/oracle/11.2/client64
    export LD_LIBRARY_PATH ORACLE_HOME

csh 或 tcsh

$EDITOR ~/.login
#add lines at the bottom of the file:  
    setenv LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
    setenv ORACLE_HOME /usr/lib/oracle/11.2/client64

如果你想讓它對所有使用者永久有效,你可以在 下編輯相應的文件/etc//etc/profile例如 Bourne-like shells、/etc/csh.login(t)csh/etc/zsh/zprofile/etc/zsh/zshrczsh。

另一種選擇是使用/etc/environment,它在 Linux 系統上由 PAM 模組讀取,pam_env並且僅支持簡單的分配,而不支持 shell 樣式的擴展。(請參閱Debian 的指南。)

這些文件可能已經包含一些分配,因此請遵循您在文件中看到的語法。

確保重新啟動 shell 並重新登錄使用者,以應用更改。

如果您需要添加系統範圍的環境變數,現在有/etc/profile.d一個包含 sh 腳本的文件夾來初始化變數。

您可以將您的 sh 腳本與您導出的所有變數放在此處。

請注意,儘管這不應用作在 Debian 上向 env 添加變數的標準方式。

引用自:https://unix.stackexchange.com/questions/117467