您好,登錄后才能下訂單哦!
小編給大家分享一下linux中環境變量是什么意思,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在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.1 echo
該命令用于顯示某個環境變量的值。
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
當執行完/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)時,執行該文件。
【例1】
注:命令行第3個參數是環境表地址,是一個字符型數組指針。
運行結果:
【例2】通過第三方變量environ獲取
運行結果:
注意:libc中定義的全局變量environ指向環境變量表,因為environ沒有包含在任何頭文件中,所以在使用時要用extern聲明。
通常用getenv和putenv函數來訪問特定的環境變量,而不是用environ變量。但是,如果要查看整個環境,則必須使用environ指針。
【例1】
運行結果:
【例2】
運行結果:
釋:“export MY_ENV=Love”導出環境變量,可以被子程序繼承下去;而“MY_ENV=Love”導出的是普通變量,不具有繼承性(與getenv函數一樣)。
看完了這篇文章,相信你對“linux中環境變量是什么意思”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。