溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux中環(huán)境變量是什么意思

發(fā)布時(shí)間:2021-11-30 17:32:01 來(lái)源:億速云 閱讀:398 作者:小新 欄目:建站服務(wù)器

小編給大家分享一下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、環(huán)境變量的概念

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后失效。

2、環(huán)境變量的組織方式

linux中環(huán)境變量是什么意思

每個(gè)程序都有一張環(huán)境表,環(huán)境表是一個(gè)字符指針數(shù)組,每個(gè)指針指向一個(gè)以‘\0’結(jié)尾的環(huán)境字符串。Main函數(shù)的第三個(gè)參數(shù)就是環(huán)境表地址。

3、常見(jiàn)的環(huán)境變量

3.1 PATH

該變量指定命令的搜索路徑。

【例】

linux中環(huán)境變量是什么意思

釋:從中可以看出,在當(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 普通用戶下的主工作目錄

【例】

linux中環(huán)境變量是什么意思

3.2.2 超級(jí)用戶下的主工作目錄

【例】

linux中環(huán)境變量是什么意思

釋:環(huán)境變量是一個(gè)變量,它的值隨著用戶的不同而不同。

3.3 HISTSIZE

該變量指定保存歷史命令的數(shù)目。

【例】

linux中環(huán)境變量是什么意思

釋:在Linux系統(tǒng)中最多保存1000條命令記錄。

3.4 LOGNAME

該變量指定顯示用戶的登錄名。

【例】

linux中環(huán)境變量是什么意思

3.5 HOSTNAME

該變量指定主機(jī)名

【例】

linux中環(huán)境變量是什么意思

3.6 SHELL

該變量指定用戶當(dāng)前使用的解析器。

【例】

linux中環(huán)境變量是什么意思

4、修改和顯示環(huán)境變量的命令

4.1 echo

該命令用于顯示某個(gè)環(huán)境變量的值。

4.2 env

該命令指定顯示所有的環(huán)境變量和值。

【例】

linux中環(huán)境變量是什么意思

4.3 set

該命令指定本地變量。

【例】

linux中環(huán)境變量是什么意思

4.4 export

該命令指定設(shè)置一個(gè)新的環(huán)境變量。

【例】

linux中環(huán)境變量是什么意思

注意:環(huán)境變量一般用英文字母大寫(xiě)加下劃線表示。

4.5 unset

該命令指定清除環(huán)境變量。

【例】

linux中環(huán)境變量是什么意思

4.6 readonly

該命令用于設(shè)置只讀環(huán)境變量。

【例】

linux中環(huán)境變量是什么意思
釋:將環(huán)境變量MY_ENV設(shè)置為只讀模式后,就不能在對(duì)它進(jìn)行修改了,直到用戶退出登錄后才失效。

5、存放環(huá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í)行該文件。

6、通過(guò)代碼獲取環(huán)境變量

【例1】

linux中環(huán)境變量是什么意思

注:命令行第3個(gè)參數(shù)是環(huán)境表地址,是一個(gè)字符型數(shù)組指針。

運(yùn)行結(jié)果:

linux中環(huán)境變量是什么意思

【例2】通過(guò)第三方變量environ獲取

linux中環(huán)境變量是什么意思

運(yùn)行結(jié)果:

linux中環(huán)境變量是什么意思

注意:libc中定義的全局變量environ指向環(huán)境變量表,因?yàn)閑nviron沒(méi)有包含在任何頭文件中,所以在使用時(shí)要用extern聲明。

7、通過(guò)系統(tǒng)調(diào)用獲取或設(shè)置環(huán)境變量

通常用getenv和putenv函數(shù)來(lái)訪問(wèn)特定的環(huán)境變量,而不是用environ變量。但是,如果要查看整個(gè)環(huán)境,則必須使用environ指針。

【例1】

linux中環(huán)境變量是什么意思

運(yùn)行結(jié)果:

linux中環(huán)境變量是什么意思

【例2】

linux中環(huán)境變量是什么意思

運(yùn)行結(jié)果:

linux中環(huán)境變量是什么意思

釋:“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è)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI