一、什麼是環境變量?¶
想象一下,你在Windows裏打開一個軟件時,系統會自動記住你安裝的路徑、常用的工具位置。在Linux中,環境變量就像這樣的“系統記憶”——它是一類包含數據的變量,用來存儲系統或程序運行時需要的信息,比如軟件安裝路徑、用戶信息、語言設置等。
簡單說,環境變量是系統“記住”的一些配置,讓你不用重複輸入複雜信息,比如每次運行Python時,系統能自動找到Python的位置。
二、爲什麼要設置環境變量?¶
最常見的場景是:讓系統能找到你想運行的程序。比如你寫了一個自己的腳本(比如test.sh),想在任何目錄下都能直接運行,而不用每次都輸入完整路徑(比如./test.sh)。這時候把腳本所在的目錄加到環境變量PATH裏,就能直接輸入test.sh運行了。
其他例子:
- PATH:系統搜索可執行文件的路徑列表(比如ls、python等命令的位置)。
- LANG:控制系統的語言(比如中文顯示亂碼時,可能需要設置LANG=zh_CN.UTF-8)。
- HOME:指向你的家目錄(比如/home/yourname,用~代替)。
三、如何查看環境變量?¶
你可以用以下命令快速查看環境變量:
- 查看單個變量:
echo $變量名
比如想知道當前路徑(當前所在目錄):
echo $PWD
想知道用戶名:
echo $USER
- 查看所有環境變量:
- 用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\]\$(自定義提示符) |
八、注意事項¶
- 臨時 vs 永久:臨時用
export,永久用配置文件。 - 權限問題:修改系統級文件(如
/etc/profile)需加sudo,避免誤改系統配置。 - 變量值含空格:用引號包裹,比如
export MY_VAR="hello world"。 - 生效方式:修改配置文件後,需執行
source 文件名或重啓終端纔會生效。
總結¶
環境變量是Linux中讓系統“記住”配置的關鍵,學會設置和查看它們能極大提升效率。重點掌握PATH(讓程序可全局運行)和配置文件的使用,你就能靈活管理系統環境了!多嘗試echo $變量名和env命令,很快就能熟悉環境變量的作用~