一、什麼是環境變量?

想象一下,你在Windows裏打開一個軟件時,系統會自動記住你安裝的路徑、常用的工具位置。在Linux中,環境變量就像這樣的“系統記憶”——它是一類包含數據的變量,用來存儲系統或程序運行時需要的信息,比如軟件安裝路徑、用戶信息、語言設置等。

簡單說,環境變量是系統“記住”的一些配置,讓你不用重複輸入複雜信息,比如每次運行Python時,系統能自動找到Python的位置。

二、爲什麼要設置環境變量?

最常見的場景是:讓系統能找到你想運行的程序。比如你寫了一個自己的腳本(比如test.sh),想在任何目錄下都能直接運行,而不用每次都輸入完整路徑(比如./test.sh)。這時候把腳本所在的目錄加到環境變量PATH裏,就能直接輸入test.sh運行了。

其他例子:
- PATH:系統搜索可執行文件的路徑列表(比如lspython等命令的位置)。
- LANG:控制系統的語言(比如中文顯示亂碼時,可能需要設置LANG=zh_CN.UTF-8)。
- HOME:指向你的家目錄(比如/home/yourname,用~代替)。

三、如何查看環境變量?

你可以用以下命令快速查看環境變量:

  1. 查看單個變量
   echo $變量名

比如想知道當前路徑(當前所在目錄):

   echo $PWD

想知道用戶名:

   echo $USER
  1. 查看所有環境變量
    - 用env命令:列出所有環境變量(不帶參數)。
    - 用printenv命令:和env類似,也能列出所有變量,還可以指定變量名(比如printenv PATH)。

四、臨時設置環境變量(僅當前終端有效)

臨時設置是指只在當前打開的終端窗口生效,關閉終端後失效。用export命令即可:

# 設置變量,格式:export 變量名=值
export MY_VAR="hello"
export PATH=$PATH:/new/path  # 追加路徑到PATH(後面會詳細講PATH)

設置後,用echo $MY_VAR就能看到結果。比如:

echo $MY_VAR  # 輸出:hello

五、永久設置環境變量(重啓後仍生效)

臨時設置只在當前終端有用,若想讓變量一直生效(比如每次打開終端都有這個變量),需要修改配置文件。Linux下有兩種級別的配置文件:

1. 用戶級配置文件(僅對當前用戶生效)
  • ~/.bashrc:每次打開新終端(bash)時自動執行,適合添加用戶專屬配置。
  • ~/.profile:部分shell啓動時執行(比如bash),也可放用戶配置。

修改方法:

# 打開配置文件(用nano或vim編輯器)
nano ~/.bashrc  # 或 vim ~/.bashrc

# 在文件末尾添加一行(注意:等號兩邊不能有空格)
export MY_VAR="hello"

# 保存後生效(source是關鍵!)
source ~/.bashrc  # 或 source ~/.profile
2. 系統級配置文件(對所有用戶生效,需sudo權限)
  • /etc/profile:所有用戶登錄時執行(系統級全局配置)。
  • /etc/environment:系統環境變量(通常不直接修改,可通過/etc/profile.d/*.sh添加腳本)。

修改系統級文件需管理員權限(sudo):

sudo nano /etc/profile  # 或其他系統級文件

六、最重要的環境變量:PATH

PATH是系統搜索可執行文件的“路徑列表”,格式類似:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

系統運行命令時,會按順序在PATH的每個目錄裏找對應的程序。如果你的程序(比如自己寫的腳本)放在~/scripts目錄下,想在任何位置運行它,只需把~/scripts加到PATH裏:

# 臨時添加到PATH
export PATH=$PATH:~/scripts

# 永久添加到~/.bashrc
echo 'export PATH=$PATH:~/scripts' >> ~/.bashrc
source ~/.bashrc  # 生效

現在你在任何目錄執行your_script.sh就能直接運行了!

七、常見環境變量速查

變量名 作用 例子
PATH 系統搜索可執行文件的路徑列表 包含/usr/bin(系統命令)、/home/user/bin(用戶腳本)等
HOME 當前用戶的家目錄 /home/yourname
USER 當前用戶名 yourname
LANG 系統語言/字符編碼 LANG=zh_CN.UTF-8(中文顯示)
PS1 終端提示符 \[\e]0;\u@\h:\w\a\]\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$(自定義提示符)

八、注意事項

  1. 臨時 vs 永久:臨時用export,永久用配置文件。
  2. 權限問題:修改系統級文件(如/etc/profile)需加sudo,避免誤改系統配置。
  3. 變量值含空格:用引號包裹,比如export MY_VAR="hello world"
  4. 生效方式:修改配置文件後,需執行source 文件名或重啓終端纔會生效。

總結

環境變量是Linux中讓系統“記住”配置的關鍵,學會設置和查看它們能極大提升效率。重點掌握PATH(讓程序可全局運行)和配置文件的使用,你就能靈活管理系統環境了!多嘗試echo $變量名env命令,很快就能熟悉環境變量的作用~

小夜