在linux中,環境變數指的是系統預先定義的參數;它相當於全域變量,存在於所有的Shell中,具有繼承性,可儲存有關shell會話和工作環境的資訊。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
#1.1 環境變數的意義
環境變數一般是指作業系統中指定運行環境的一些參數,即係統預先定義的參數。它相當於一個指針,想要查看變數的值,需要加上「$」。
環境變數是bash shell的特性,用來儲存有關shell會話和工作環境的資訊。允許在記憶體中儲存數據,以便運行在shell上的程式和腳本存取。這些資料可以是用來識別使用者、系統、Shell的特性以及任何其它需要儲存的資料。
1.2 環境變數的分類
#1.2.1 依作用的範圍分
#在Linux中的變量,可以分為環境變量和本地變量:
1)環境變量:相當於全域變量,存在於所有的Shell中,具有繼承性;
2)本地變數:相當於局部變量,只存在當前Shell中,本地變數包含環境變量,非環境變數不具有繼承性。
1.2.2 依生存週期分
1)永久:需要修改設定文件,變數永久生效;
2)暫時:使用export定義,關閉Shell後失效。
每個程式都有一個環境表,環境表是一個字元指標陣列,每個指標指向一個以'\0'結尾的環境字串。 Main函數的第三個參數就是環境表位址。
#3.1 PATH
此變數指定指令的搜索路徑。
【範例】
「釋出:從中可以看出,在目前目錄下,PATH的值。它表示在目前目錄下執行的每一條指令的搜尋路徑,每個目錄以冒號分隔。當執行一條指令時,系統就會從系統檔案中去尋找,找到了就執行;否則不執行。
3.2 HOME
#此變數指定使用者的主工作目錄,即使用者登入Linux系統時,預設的目錄。
3.2.1 一般使用者下的主工作目錄
#【範例】
##3.2 .2 超級用戶下的主工作目錄 ##【範例】
釋:環境變數是一個變量,它的值隨著用戶的不同而不同。
3.3 HISTSIZE #此變數指定保存歷史指令的數目。
【範例】
釋出:在Linux系統中最多保存1000個指令記錄。
3.4 LOGNAME #此變數指定顯示使用者的登入名稱。
【範例】
#3.5 HOSTNAME 此變數指定主機名稱
【範例】
#3.6 SHELL 該變數指定使用者目前使用的解析器。
【範例】
4、修改、修改環境變數的指令此指令用來顯示某個環境變數的值。
4.2 env# 此指令指定顯示所有的環境變數和值。 【範例】 #4.3 set #4.4 export 4.5 unset #4.6 readonly 釋:將環境變數MY_ENV設定為唯讀模式後,就不能對它進行修改了,直到使用者登出登入後才失效。 #5.1 /etc/profile 5.2 /etc/bashrc 5.3 ~/.bash_profile 5.4 ~/.bashrc 5.5 ~/.bash_logout ##運行結果: 注意:libc中定義的全域變數environ指向環境變數表,因為environ沒有包含在任何頭檔中,所以在使用時要用extern宣告。 【範例1】 ##運行結果: 運行結果: #釋義:「export MY_ENV=Love」匯出環境變量,可以被子程式繼承下去;而「 MY_ENV=Love”導出的是普通變量,不具有繼承性(與getenv函數一樣)。 相關推薦:《Linux影片教學》5、存放環境變數的檔案
6、透過程式碼取得環境變數
【範例1】
註:命令列第3個參數是環境表位址,是字元型陣列指標。 運行結果:
【範例2】透過第三方變數environ取得
#通常用getenv和putenv函數存取特定的環境變量,而不是用environ變數。但是,如果要查看整個環境,則必須使用environ指標。
以上是linux中什麼是環境變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!