共計 2180 個字符,預計需要花費 6 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 linux 中環境變量是什么意思,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在 linux 中,環境變量指的是系統預定義的參數;它相當于全局變量,存在于所有的 Shell 中,具有繼承性,可存儲有關 shell 會話和工作環境的信息。
本教程操作環境: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、環境變量的組織方式
每個程序都有一張環境表,環境表是一個字符指針數組,每個指針指向一個以‘\0’結尾的環境字符串。Main 函數的第三個參數就是環境表地址。
3、常見的環境變量
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.1 echo
該命令用于顯示某個環境變量的值。
4.2 env
該命令指定顯示所有的環境變量和值。
【例】
4.3 set
該命令指定本地變量。
【例】
4.4 export
該命令指定設置一個新的環境變量。
【例】
注意:環境變量一般用英文字母大寫加下劃線表示。
4.5 unset
該命令指定清除環境變量。
【例】
4.6 readonly
該命令用于設置只讀環境變量。
【例】
釋:將環境變量 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】
注:命令行第 3 個參數是環境表地址,是一個字符型數組指針。
運行結果:
【例 2】通過第三方變量 environ 獲取
運行結果:
注意:libc 中定義的全局變量 environ 指向環境變量表,因為 environ 沒有包含在任何頭文件中,所以在使用時要用 extern 聲明。
7、通過系統調用獲取或設置環境變量
通常用 getenv 和 putenv 函數來訪問特定的環境變量,而不是用 environ 變量。但是,如果要查看整個環境,則必須使用 environ 指針。
【例 1】
運行結果:
【例 2】
運行結果:
釋:“export MY_ENV=Love”導出環境變量,可以被子程序繼承下去;而“MY_ENV=Love”導出的是普通變量,不具有繼承性(與 getenv 函數一樣)。
看完了這篇文章,相信你對“linux 中環境變量是什么意思”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!