您好,登錄后才能下訂單哦!
小編給大家分享一下linux中環(huán)境變量是什么意思,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在linux中,環(huán)境變量指的是系統(tǒng)預(yù)定義的參數(shù);它相當(dāng)于全局變量,存在于所有的Shell中,具有繼承性,可存儲(chǔ)有關(guān)shell會(huì)話和工作環(huán)境的信息。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
1.1 環(huán)境變量的含義
環(huán)境變量一般是指操作系統(tǒng)中指定運(yùn)行環(huán)境的一些參數(shù),即系統(tǒng)預(yù)定義的參數(shù)。它相當(dāng)于一個(gè)指針,想要查看變量的值,需要加上“$”。
環(huán)境變量是bash shell的特性,用來(lái)存儲(chǔ)有關(guān)shell會(huì)話和工作環(huán)境的信息。允許在內(nèi)存中存儲(chǔ)數(shù)據(jù),以便運(yùn)行在shell上的程序和腳本訪問(wèn)。這些數(shù)據(jù)可以是用來(lái)識(shí)別用戶、系統(tǒng)、Shell的特性以及任何其它需要存儲(chǔ)的數(shù)據(jù)。
1.2 環(huán)境變量的分類(lèi)
1.2.1 按作用的范圍分
在Linux中的變量,可以分為環(huán)境變量和本地變量:
1)環(huán)境變量:相當(dāng)于全局變量,存在于所有的Shell中,具有繼承性;
2)本地變量:相當(dāng)于局部變量,只存在當(dāng)前Shell中,本地變量包含環(huán)境變量,非環(huán)境變量不具有繼承性。
1.2.2 按生存周期分
1)永久:需要修改配置文件,變量永久生效;
2)暫時(shí):使用export定義,關(guān)閉Shell后失效。
每個(gè)程序都有一張環(huán)境表,環(huán)境表是一個(gè)字符指針數(shù)組,每個(gè)指針指向一個(gè)以‘\0’結(jié)尾的環(huán)境字符串。Main函數(shù)的第三個(gè)參數(shù)就是環(huán)境表地址。
3.1 PATH
該變量指定命令的搜索路徑。
【例】
釋:從中可以看出,在當(dāng)前目錄下,PATH的值。它表示在當(dāng)前目錄下執(zhí)行的每一條指令的搜索路徑,每個(gè)目錄以冒號(hào)隔開(kāi)。當(dāng)執(zhí)行一條指令時(shí),系統(tǒng)就會(huì)從系統(tǒng)文件中去尋找,找到了就執(zhí)行;否則不執(zhí)行。
3.2 HOME
該變量指定用戶的主工作目錄,即用戶登錄到Linux系統(tǒng)時(shí),默認(rèn)的目錄。
3.2.1 普通用戶下的主工作目錄
【例】
3.2.2 超級(jí)用戶下的主工作目錄
【例】
釋:環(huán)境變量是一個(gè)變量,它的值隨著用戶的不同而不同。
3.3 HISTSIZE
該變量指定保存歷史命令的數(shù)目。
【例】
釋:在Linux系統(tǒng)中最多保存1000條命令記錄。
3.4 LOGNAME
該變量指定顯示用戶的登錄名。
【例】
3.5 HOSTNAME
該變量指定主機(jī)名
【例】
3.6 SHELL
該變量指定用戶當(dāng)前使用的解析器。
【例】
4.1 echo
該命令用于顯示某個(gè)環(huán)境變量的值。
4.2 env
該命令指定顯示所有的環(huán)境變量和值。
【例】
4.3 set
該命令指定本地變量。
【例】
4.4 export
該命令指定設(shè)置一個(gè)新的環(huán)境變量。
【例】
注意:環(huán)境變量一般用英文字母大寫(xiě)加下劃線表示。
4.5 unset
該命令指定清除環(huán)境變量。
【例】
4.6 readonly
該命令用于設(shè)置只讀環(huán)境變量。
【例】
釋:將環(huán)境變量MY_ENV設(shè)置為只讀模式后,就不能在對(duì)它進(jìn)行修改了,直到用戶退出登錄后才失效。
5.1 /etc/profile
該文件的作用是當(dāng)用戶登錄時(shí)獲取系統(tǒng)的環(huán)境變量,只獲取一次。
5.2 /etc/bashrc
當(dāng)執(zhí)行完/etc/profile文件后,用戶想打開(kāi)bash Shell就會(huì)讀取該文件。如果想每次打開(kāi)bash Shell后都執(zhí)行某些操作,可以在該文件中設(shè)置。
5.3 ~/.bash_profile
每個(gè)用戶都可使用該文件輸入專用于自己使用的shell信息。當(dāng)用戶登錄時(shí),該文件僅僅執(zhí)行一次,默認(rèn)情況下,它設(shè)置一些環(huán)境變量,執(zhí)行用戶的.bashrc文件。
單個(gè)用戶此文件的修改只會(huì)影響到他以后的每一次登陸系統(tǒng)。因此,可以在這里設(shè)置單個(gè)用戶的特殊的環(huán)境變量或者特殊的操作,那么它在每次登陸的時(shí)候都會(huì)去獲取這些新的環(huán)境變量或者做某些特殊的操作,但是僅僅在登陸時(shí)
5.4 ~/.bashrc
該文件包含專用于單個(gè)人的bash shell的bash信息,當(dāng)?shù)卿洉r(shí)以及每次打開(kāi)一個(gè)新的shell時(shí),該該文件被讀取。
單個(gè)用戶此文件的修改會(huì)影響到他以后的每一次登陸系統(tǒng)和每一次新開(kāi)一個(gè)bash。因此,可以在這里設(shè)置單個(gè)用戶的特殊的環(huán)境變量或者特殊的操作,那么每次它新登陸系統(tǒng)或者新開(kāi)一個(gè)bash,都會(huì)去獲取相應(yīng)的特殊的環(huán)境變量和特殊操作。
5.5 ~/.bash_logout
當(dāng)每次退出系統(tǒng)(退出bash shell)時(shí),執(zhí)行該文件。
【例1】
注:命令行第3個(gè)參數(shù)是環(huán)境表地址,是一個(gè)字符型數(shù)組指針。
運(yùn)行結(jié)果:
【例2】通過(guò)第三方變量environ獲取
運(yùn)行結(jié)果:
注意:libc中定義的全局變量environ指向環(huán)境變量表,因?yàn)閑nviron沒(méi)有包含在任何頭文件中,所以在使用時(shí)要用extern聲明。
通常用getenv和putenv函數(shù)來(lái)訪問(wèn)特定的環(huán)境變量,而不是用environ變量。但是,如果要查看整個(gè)環(huán)境,則必須使用environ指針。
【例1】
運(yùn)行結(jié)果:
【例2】
運(yùn)行結(jié)果:
釋:“export MY_ENV=Love”導(dǎo)出環(huán)境變量,可以被子程序繼承下去;而“MY_ENV=Love”導(dǎo)出的是普通變量,不具有繼承性(與getenv函數(shù)一樣)。
看完了這篇文章,相信你對(duì)“l(fā)inux中環(huán)境變量是什么意思”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。