天天看點

Linux系統環境變量配置指引

作者:JasonTang

摘要:環境變量是在作業系統中定義的一些變量,負責儲存系統的一些基本資訊。這些資訊可以是路徑、指令别名、使用者配置等。環境變量被用于告訴系統在運作程式或指令時需要查找的路徑、庫和其他系統資源的位置。了解Linux環境變量的作用可以更好地配置和管理Linux系統,提高系統的可用性和安全性。

在Linux系統中,環境變量都是以字元串的形式存儲在作業系統記憶體中的。Linux系統将這些字元串稱為環境變量字元串。環境變量字元串是由變量名和值組成的鍵值對,用“=”連接配接,多個環境變量的變量之間用“:”隔開。可以使用export指令來設定環境變量,使用env指令和echo指令檢視和調試環境變量。

本文主要介紹Linux系統中環境變量的檢視及設定方法,詳細内容請參考下文。

一、Linux系統

1、登入Linux系統

Linux系統環境變量配置指引

2、檢視目前系統變量

指向指令# export

Linux系統環境變量配置指引

二、什麼是環境變量

1、環境變量簡介

用來存儲關于shell會話和工作環境的資訊,就叫做環境變量。一般情況下,按照生命周期來分,Linux環境變量可以分為永久變量和臨時變量兩類。

(1)、永久變量:需要使用者修改相關的配置檔案,變量永久生效。

(2)、臨時變量:使用者利用export指令,在目前終端下聲明環境變量,關閉Shell終端失效。

2、檢視環境變量

(1)、使用env檢視所有環境變量

執行指令# env或者printenv

Linux系統環境變量配置指引

(2)、使用echo指令檢視單個環境變量

執行指令# echo $PATH

Linux系統環境變量配置指引

備注:常用環境變量

序号 變量名 變量作用
1 PATH 指定指令的搜尋路徑
2 HOME 指定使用者的主工作目錄(即使用者登陸到Linux系統中時,預設的目錄)
3 HISTSIZE 儲存曆史指令記錄的條數
4 LOGNAME 目前使用者的登入名
5 HOSTNAME 主機的名稱,許多應用程式如果要用到主機名的話,通常是從這個環境變量中來取得的。
6 SHELL 目前使用者用的是哪種Shell
7 LANG/LANGUGE 和語言相關的環境變量,使用多種語言的使用者可以修改此環境變量。
8 MAIL 目前使用者的郵件存放目錄
9 PS1 指令基本提示符,對于root使用者是#,對于普通使用者是$。
10 PS2 附屬提示符,預設是“>”。

(3)、使用set檢視所有本地定義的環境變量

Linux系統環境變量配置指引

(4)、使用unset删除指定的環境變量

說明:set指令可以設定某個環境變量的值。清除環境變量的值用unset指令。如果未指定值,則該變量值将被設為NULL。

示例如下:

export ABC="Hello World" #增加一個環境變量ABC

env | grep ABC #此指令有輸入,證明環境變量ABC已經存在了

Linux系統環境變量配置指引

unset ABC #删除環境變量ABC

$ env|grep ABC #此指令沒有輸出,證明環境變量ABC已經删除

Linux系統環境變量配置指引

3、設定環境變量

(1)、在/etc/profile檔案中添加變量

說明:使用vim工具在檔案/etc/profile檔案中增加變量,該變量将會對Linux下所有使用者有效,并且是“永久的”。

比例,編輯/etc/profile檔案,添加CLASSPATH變量

執行指令# vim /etc/profile

在該檔案的末尾添加以下語句

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

Linux系統環境變量配置指引

備注:注:修改檔案儲存後要想馬上生效還要運作# source /etc/profile不然隻能在下次重新登入此使用者時生效。

(2)、在使用者目錄下的.bash_profile檔案中添加變量

說明:使用vim工具在使用者目錄下的.bash_profile檔案中增加變量,改變量僅會對目前使用者有效,并且是“永久的”。

比如編輯user使用者目錄(/home/user)下的.bash_profile

執行指令# vim /home/user/.bash_profile

在該檔案的末尾添加以下語句

export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

Linux系統環境變量配置指引

備注:修改檔案後要想馬上生效還要運作$ source /home/user/.bash_profile不然隻能在下次重新登入此使用者時生效。

(3)、直接運作export指令定義變量

說明:在shell的指令行下直接使用[export 變量名=變量值] 定義變量,比如export ABC="Hello World" #增加一個環境變量ABC。

該變量隻在目前的shell或其子shell下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,需要使用的話還需要重新定義。

三、怎麼加載環境變量

1、環境變量的分類

說明:本節介紹環境變量的加載順序,涉及環境變量的另一個分類标準,按系統加載的先後順序,可以将環境變量簡單的劃分為系統級别環境變量和使用者自定義環境變量兩類。

(1)、系統級别環境變量定義檔案:/etc/bashrc和/etc/profile

(2)、使用者級别環境變量定義檔案:~/.bashrc和~/.bash_profile

備注:在使用者環境變量中,系統會首先讀取~/.bash_profile檔案,如果沒有該檔案則讀取~/.bashrc。

2、環境變量加載順序測試

(1)、為了測試各個不同檔案的環境變量加載順序,在每個環境變量定義檔案中的第一行都定義相同的環境變量VAR_ORDER,該變量的值為本身的值連接配接上目前檔案名稱。

在每個檔案中的第一行都加上下面這句代碼,并相應的把冒号後的内容修改為目前檔案的絕對檔案名。

export VAR_ORDER="$VAR_ORDER:~/.bash_profile"

需要修改的檔案如下:

/etc/environment

/etc/profile

/etc/bashrc

~/.bash_profile

~/.bashrc

(2)、修改完之後儲存,新開一個視窗,然後echo $VAR_ORDER觀察變量的值。

Linux系統環境變量配置指引

可以推測出Linux加載環境變量的順序如下:

/etc/environment

/etc/profile

/etc/bashrc

~/.bash_profile

~/.bashrc

3、環境變量加載順序

說明:由上面的測試可容易得出Linux加載環境變量的順序如下:

系統環境變量 -> 使用者自定義環境變量

/etc/environment -> /etc/profile -> ~/.bash_profile

4、環境變量加載技巧

(1)、可以根據項目需要自定義一個環境變量檔案,比如在某個項目下定義gzprg.profile,并在這個檔案中使用export定義一系列變量,然後在~/.bash_profile檔案後面加上:source gzprg.profile變量,這樣每次登陸都可以在Shell腳本中使用自己定義的一系列變量。

(2)、可以使用alias别名指令定義一些指令的别名,比如alias rm="rm -i"(雙引号必須),并把這個代碼加入到~/.bash_profile中,這樣每次使用rm指令的時候,都相當于使用rm -i指令了。

Linux系統環境變量配置指引