[導(dǎo)讀]大家好,我是情報(bào)小哥!01環(huán)境變量環(huán)境變量在進(jìn)行l(wèi)inux開發(fā)過程中經(jīng)常碰到,那什么是環(huán)境變量呢?很多朋友在剛學(xué)習(xí)Linux的時(shí)候?qū)Νh(huán)境變量不是特別理解,變量不應(yīng)該是在編程語言中類似于全局變量和局部變量嗎?怎么又來了個(gè)環(huán)境變量?在我們主流的OS中幾乎都存在環(huán)境變量的概念,同樣在w...
大家好,我是情報(bào)小哥!
01
環(huán)境變量
環(huán)境變量在進(jìn)行l(wèi)inux開發(fā)過程中經(jīng)常碰到,那什么是環(huán)境變量呢?很多朋友在剛學(xué)習(xí)Linux的時(shí)候?qū)Νh(huán)境變量不是特別理解,變量不應(yīng)該是在編程語言中類似于全局變量和局部變量嗎?怎么又來了個(gè)環(huán)境變量?在我們主流的OS中幾乎都存在環(huán)境變量的概念,同樣在windows下也是存在環(huán)境變量的,如下圖所示:
其實(shí)這些所謂的環(huán)境變量就相當(dāng)于一些信息的簡稱,比如搜索、查詢的路徑等等,以后應(yīng)用程序可以獲取這些環(huán)境變量中包含的信息來完成相應(yīng)的工作,很多小伙伴有這樣的體會(huì),經(jīng)常在windows中運(yùn)行剛安裝的軟件會(huì)需要在環(huán)境變量中添加一些路徑等信息,否則軟件無法運(yùn)行。在Linux中也是類似的作用,當(dāng)執(zhí)行一個(gè)命令,系統(tǒng)會(huì)根據(jù)環(huán)境變量中的路徑信息依次搜索直到找到對(duì)應(yīng)的程序運(yùn)行。02
Linux環(huán)境變量
Linux環(huán)境變量主要分為系統(tǒng)級(jí)別和用戶級(jí)級(jí)別,這點(diǎn)與windows也是非常類似的,如下圖所示:
不同級(jí)別的環(huán)境變量在linux系統(tǒng)存在于不同的配置文件,且他們的作用域也是不一樣的,所以這里結(jié)合C語言的各種變量的作用域就可以更加方便理解所謂的環(huán)境變量了吧,同樣它也是一段常駐的內(nèi)存標(biāo)識(shí)。
我們在linux中斷中輸入printenv命令即可查看所有的環(huán)境變量:
其中比較常用的是環(huán)境變量PATH,可以使用printenv PATH或者echo $PATH來單獨(dú)查看,如下圖所示,兩者完全一致:
PATH環(huán)境變量以冒號(hào) : 進(jìn)行分割,形成了多個(gè)路徑,當(dāng)用戶輸入相應(yīng)的命令便會(huì)依次從上面的路徑中查詢程序來執(zhí)行。比如:在終端中輸入ls命令行,Shell會(huì)從PATH變量中存儲(chǔ)的路徑來查找ls執(zhí)行程序來運(yùn)行。03
修改環(huán)境變量
還是把上面的圖拿過來:修改環(huán)境變量大體分為兩種辦法 : 1 ) 使用export命令行直接導(dǎo)入;2 ) 將export命令行保存到如上圖所示的對(duì)應(yīng)的文件中適時(shí)進(jìn)行加載導(dǎo)入。對(duì)于命令導(dǎo)入的辦法是臨時(shí)的,而保存到對(duì)應(yīng)的文件中可以覆蓋其作用域生效。方法1示例:1、使用命令行"export 環(huán)境變量=新加入值:$環(huán)境變量",如下圖所示,這樣就加入了新的路徑。2、當(dāng)退出該終端重新進(jìn)入,那么之前使用export臨時(shí)加入的環(huán)境變量就會(huì)消失。
3、這種直接使用命令行的方式,可以立即生效,并且僅對(duì)當(dāng)前用戶起作用,當(dāng)重新打開終端會(huì)失效。
方法2示例:1、相對(duì)命令行方式,其實(shí)僅僅只是把export命令行放到了相應(yīng)的文件中進(jìn)行加載使用,我們進(jìn)入到家目錄,然后編輯隱藏文件.bashrc,然后把命令行追加到最后,如下圖所示:
2、加入到文件并保存以后,其環(huán)境變量不會(huì)立即生效,需要使用source命令執(zhí)行一下,才能夠生效。
3、重新啟動(dòng)終端,如下圖所示,其環(huán)境變量依然存在,因?yàn)?span>~/.bashrc包含shell的bash信息,當(dāng)?shù)卿浺约懊看未蜷_新的shell時(shí),該文件被讀取,相應(yīng)的命令也就會(huì)重新執(zhí)行。
4、上面修改.bashrc僅僅只是在shell啟動(dòng)時(shí)被加載,在其被加載前執(zhí)行的程序均無效,所以就有不同作用域,比如環(huán)境變量保存在~/.profile中,那么圖形界面啟動(dòng)程序就可以訪問到設(shè)置的環(huán)境變量,而設(shè)置到~/.bashrc中的便無法被圖形界面啟動(dòng)程序訪問。
5、對(duì)于普通用戶其實(shí)將環(huán)境變量在.bashrc文件中操作即可,如果修改了其他作用域更廣的配置,會(huì)影響到其他用戶,同時(shí)這些配置文件也是逐級(jí)覆蓋的,啟動(dòng)過程中后面加載的文件會(huì)覆蓋前面相同的配置信息。
最 后
好了,這里小哥就介紹了一下Linux中環(huán)境變量的理解與使用,以后在安裝編譯器,或者make命令等等很多地方都會(huì)涉及到環(huán)境變量的操作,希望本文能夠?qū)δ阌袔椭?/span>
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。