首頁  >  文章  >  運維  >  linux中什麼是環境變數

linux中什麼是環境變數

青灯夜游
青灯夜游原創
2021-11-30 17:08:269000瀏覽

在linux中,環境變數指的是系統預先定義的參數;它相當於全域變量,存在於所有的Shell中,具有繼承性,可儲存有關shell會話和工作環境的資訊。

linux中什麼是環境變數

本教學操作環境:linux5.9.8系統、Dell G3電腦。

1、環境變數的概念 

#1.1 環境變數的意義 

環境變數一般是指作業系統中指定運行環境的一些參數,即係統預先定義的參數。它相當於一個指針,想要查看變數的值,需要加上「$」。 

環境變數是bash shell的特性,用來儲存有關shell會話和工作環境的資訊。允許在記憶體中儲存數據,以便運行在shell上的程式和腳本存取。這些資料可以是用來識別使用者、系統、Shell的特性以及任何其它需要儲存的資料。

1.2 環境變數的分類 

#1.2.1 依作用的範圍分 

#在Linux中的變量,可以分為環境變量和本地變量: 

1)環境變量:相當於全域變量,存在於所有的Shell中,具有繼承性; 

2)本地變數:相當於局部變量,只存在當前Shell中,本地變數包含環境變量,非環境變數不具有繼承性。

1.2.2 依生存週期分 

1)永久:需要修改設定文件,變數永久生效; 

2)暫時:使用export定義,關閉Shell後失效。

2、環境變數的組織方式

linux中什麼是環境變數

每個程式都有一個環境表,環境表是一個字元指標陣列,每個指標指向一個以'\0'結尾的環境字串。 Main函數的第三個參數就是環境表位址。

3、常見的環境變數 

#3.1 PATH 

此變數指定指令的搜索路徑。 

【範例】 

linux中什麼是環境變數

「釋出:從中可以看出,在目前目錄下,PATH的值。它表示在目前目錄下執行的每一條指令的搜尋路徑,每個目錄以冒號分隔。當執行一條指令時,系統就會從系統檔案中去尋找,找到了就執行;否則不執行。 

3.2 HOME 

#此變數指定使用者的主工作目錄,即使用者登入Linux系統時,預設的目錄。

3.2.1 一般使用者下的主工作目錄 

#【範例】 

linux中什麼是環境變數

##3.2 .2 超級用戶下的主工作目錄 ##【範例】 

linux中什麼是環境變數釋:環境變數是一個變量,它的值隨著用戶的不同而不同。 

3.3 HISTSIZE #此變數指定保存歷史指令的數目。 

【範例】 

linux中什麼是環境變數 釋出:在Linux系統中最多保存1000個指令記錄。 

3.4 LOGNAME #此變數指定顯示使用者的登入名稱。

【範例】 

linux中什麼是環境變數

#3.5 HOSTNAME 此變數指定主機名稱 

【範例】 

linux中什麼是環境變數

#3.6 SHELL 該變數指定使用者目前使用的解析器。

【範例】 

linux中什麼是環境變數

4、修改、修改環境變數的指令 

# #4.1 echo 

此指令用來顯示某個環境變數的值。 

4.2 env 

#

此指令指定顯示所有的環境變數和值。 

【範例】 

linux中什麼是環境變數

#4.3 set 

##此指令指定本機變數。

【範例】 

linux中什麼是環境變數

#4.4 export 

此指令指定設定一個新的環境變數。 

【範例】 

linux中什麼是環境變數

注意:環境變數一般以英文字母大寫加上底線表示。 

4.5 unset 

#此指令指定清除環境變數。

【範例】 

linux中什麼是環境變數

#4.6 readonly 

此指令用於設定只讀取環境變數。

【範例】 

linux中什麼是環境變數 釋:將環境變數MY_ENV設定為唯讀模式後,就不能對它進行修改了,直到使用者登出登入後才失效。

5、存放環境變數的檔案 

#5.1 /etc/profile 

該檔案的功能是當使用者登入時取得系統的環境變量,只取得一次。 

5.2 /etc/bashrc 

當執行完/etc/profile檔案後,使用者想要開啟bash Shell就會讀取該檔案。如果想每次開啟bash Shell後都執行某些操作,可以在該檔案中設定。 

5.3 ~/.bash_profile 

每個使用者都可使用該檔案輸入專用於自己使用的shell資訊。當使用者登入時,該檔案僅執行一次,預設情況下,它會設定一些環境變量,執行使用者的.bashrc檔案。 

單一使用者此檔案的修改只會影響到他以後的每一次登陸系統。因此,可以在這裡設定單一使用者的特殊的環境變數或特殊的操作,那麼它在每次登陸的時候都會去獲取這些新的環境變數或做某些特殊的操作,但是僅僅在登陸時

5.4 ~/.bashrc 

該文件包含專用於單一人的bash shell的bash訊息,當登入時以及每次開啟一個新的shell時,該文件被讀取。 

單一使用者此檔案的修改會影響到他以後的每一次登陸系統和每一次新開一個bash。因此,可以在這裡設定單一使用者的特殊的環境變數或特殊的操作,那麼每次它新登陸系統或新開一個bash,都會去取得對應的特殊的環境變數和特殊操作。 

5.5 ~/.bash_logout 

當每次退出系統(退出bash shell)時,執行該檔案。

6、透過程式碼取得環境變數 

【範例1】 

linux中什麼是環境變數

註:命令列第3個參數是環境表位址,是字元型陣列指標。

運行結果: 

linux中什麼是環境變數

【範例2】透過第三方變數environ取得 

linux中什麼是環境變數##運行結果: 

linux中什麼是環境變數注意:libc中定義的全域變數environ指向環境變數表,因為environ沒有包含在任何頭檔中,所以在使用時要用extern宣告。 

7、透過系統呼叫取得或設定環境變數 

#通常用getenv和putenv函數存取特定的環境變量,而不是用environ變數。但是,如果要查看整個環境,則必須使用environ指標。 

【範例1】 

##運行結果: linux中什麼是環境變數

##【範例2】 

linux中什麼是環境變數

運行結果: 

linux中什麼是環境變數

#釋義:「export MY_ENV=Love」匯出環境變量,可以被子程式繼承下去;而「 MY_ENV=Love”導出的是普通變量,不具有繼承性(與getenv函數一樣)。

相關推薦:《Linux影片教學

以上是linux中什麼是環境變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn