Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 環境變數完整入門:本地/全域/進程級設定、查看與繼承機制

編輯:Linux 教學

環境變數是 Linux 進程配置的通用語言。本文系統講解變數分類、設定層級、查看指令、子進程繼承規則,並對比 Bash 與 tcsh 語法差異。

變數分類

類型定義者可修改繼承性
內部變數Shell 內建不可不繼承
環境變數系統/使用者可✅ 子進程繼承
本地變數使用者可❌ 僅當前 Shell

設定語法

Bash(主流預設 Shell)

# 本地變數
VAR=value

# 環境變數(匯出給子進程)
export VAR=value
# 或分兩步
VAR=value
export VAR

# 單一指令生效的環境變數
VAR=value command

tcsh(較少見)

set VAR=value        # 本地
setenv VAR=value     # 環境
env VAR=value command

查看指令

echo $VAR          # 顯示單一變數
set                # 所有本地+環境變數(Bash)
printenv           # 僅環境變數
env                # 同 printenv

進程層級實戰

# 父 Shell 設定本地變數
STR="Hello World"

# 子腳本嘗試讀取
./child.sh   # 輸出空行(本地變數不繼承)

# 父 Shell 匯出
export STR
./child.sh   # 輸出 Hello World

# 子 Shell 修改匯出變數
# child.sh 內容:STR="Modified"; echo $STR
./child.sh   # 輸出 Modified
echo $STR    # 父 Shell 仍為 Hello World(子進程修改不回傳)

鐵律:子進程獲得父進程環境變數的**副本**,修改隔離不互通。

跨進程傳值技巧

  • 父→子:export 環境變數
  • 子→父:寫入暫存檔,父進程讀取(source 或命令置換)

常用環境變數速查

變數用途
PATH指令搜尋路徑
HOME使用者家目錄
SHELL當前 Shell 路徑
LANG語系(如 zh_TW.UTF-8)
TERM終端機類型
PWD目前工作目錄
RANDOM0-32767 隨機數
UID使用者 ID

永久生效配置檔

# 系統級(所有使用者)
/etc/profile
/etc/profile.d/*.sh

# 使用者級(登入 Shell)
~/.bash_profile
~/.profile

# 使用者級(互動式非登入 Shell)
~/.bashrc

建議將 export 寫入 ~/.bashrc 並在 ~/.bash_profile 中 source ~/.bashrc,涵蓋所有場景。

環境變數是進程間無聲的契約。掌握「本地不繼承、環境可繼承、子進程隔離」三大鐵律,除錯配置問題將事半功倍。

Copyright © Windows教程網 All Rights Reserved