【linux】一文总结linux的环境变量
一文總結(jié)linux的環(huán)境變量
文章目錄
- 一文總結(jié)linux的環(huán)境變量
- 一、開篇
- 二、全局環(huán)境變量
- (2-1)查看全局變量
- (2-2)設(shè)置全局變量變量
- (2-3)刪除全局環(huán)境變量
- 三、局部環(huán)境變量
- 四、關(guān)于linux環(huán)境變量的重要知識
- 五、持久化環(huán)境變量
一、開篇
? 在Linux操作系統(tǒng)中,環(huán)境變量用于存儲關(guān)于shell會話和工作環(huán)境的信息。使用環(huán)境變量我們可以獲取系統(tǒng)信息、存儲臨時數(shù)據(jù)和配置信息。
在linux 的bash shell中,環(huán)境變量分為:全局環(huán)境變量和局部環(huán)境變量。
二、全局環(huán)境變量
? 全局環(huán)境變量對shell會話以及生成的子shell都是可見的。
(2-1)查看全局變量
? 使用env、printenv或echo查看全局環(huán)境變量:
- env:查看系統(tǒng)中的所有全局環(huán)境變量。不能用于查看單個環(huán)境變量。
- printenv:查看系統(tǒng)中的所有全局環(huán)境變量。可以用來查看單個的環(huán)境變量。
- echo:輸入對應(yīng)的全局環(huán)境變量名稱,可以查看全局環(huán)境變量值。
當(dāng)查看單個全局環(huán)境變量值時,printenv不需要加符號;而‘‘‘echo‘‘‘需要加符號;而```echo```需要加符號;而‘‘‘echo‘‘‘需要加符號:
(2-2)設(shè)置全局變量變量
? 在設(shè)定全局環(huán)境變量的進(jìn)程所創(chuàng)建的子進(jìn)程中,所設(shè)置的全局環(huán)境變量都是可見的。
MY_NAME = "iriczhao" #雙引號是必需的 export MY_NAME #使用export導(dǎo)出MY_NAME,使其為全局環(huán)境變量。? 【注意】設(shè)置環(huán)境變量值的等號兩端不能有空格!!!
(2-3)刪除全局環(huán)境變量
? 在我們創(chuàng)建全局環(huán)境變量后,可能在某一天不再需要該環(huán)境變量啦,這時候就需要使用unset命令刪除它。例如:
unset MY_NAME? 注:MY_NAME前面不能加$符號。
關(guān)于什么時候使用符號,什么時候不使用,只需要記住一個規(guī)則即可:??如果要用到變量,使用符號,什么時候不使用,只需要記住一個規(guī)則即可:**如果要用到變量,使用符號,什么時候不使用,只需要記住一個規(guī)則即可:??如果要用到變量,使用;如果需要操作變量,不使用$符號。**
對于該規(guī)則,printenv這一個命令除外,其他均適用。
三、局部環(huán)境變量
? 設(shè)置局部環(huán)境變量,就是不使用export命令導(dǎo)出環(huán)境變量。其他操作:查看、刪除環(huán)境的操作方法與全局環(huán)境變量一樣。唯一需要注意的是:
- 設(shè)置局部環(huán)境變量后,只能在當(dāng)前的shell環(huán)境下使用,如果生成另一個shell,那么在子shell中不能使用。
- 當(dāng)在子進(jìn)程中設(shè)置了局部環(huán)境變量,一旦退出子進(jìn)程后,這個局部環(huán)境變量將不可使用。
四、關(guān)于linux環(huán)境變量的重要知識
? 1、默認(rèn)情況下,bash shell中會定義一些默認(rèn)的環(huán)境變量。即提前定義了一些環(huán)境變量,有的環(huán)境變量有值;有的沒有值。具體定義了哪些環(huán)境變量,以及對應(yīng)的含義和變量值。可以網(wǎng)上搜索查閱。
? 2、在linux平臺下進(jìn)行軟件開發(fā),對于PATH環(huán)境一定不陌生。PATH環(huán)境變量定義了用于進(jìn)行命令和程序查找的目錄。如果在shell環(huán)境中直接運(yùn)行程序,就需要將程序所在的目錄路徑添加到PATH環(huán)境變量中。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/iriczhao/embedderTools/gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf/bin? 每個路徑之間使用冒號(:)分割。
? 注:如果要讓子shell也能找到我們程序的位置,需要將修改后的$PATH環(huán)境變量使用export命令導(dǎo)出。
? 注:也可以將單點(diǎn)符(.)加入到$PATH環(huán)境變量中。指示在當(dāng)前目錄路徑下搜索運(yùn)行程序。
五、持久化環(huán)境變量
? 使用export命令導(dǎo)出的全局環(huán)境變量,當(dāng)我們退出或者系統(tǒng)重新啟動后,修改的環(huán)境變量將會不存在。這時候,在開發(fā)或者使用系統(tǒng)過程中,不可能每一次都去設(shè)置一遍,這太麻煩了。所以說這時候讓環(huán)境變量持久化就顯得很重要了。
? 環(huán)境變量持久化,本質(zhì)就是在啟動文件中使用本文形式來設(shè)置環(huán)境變量。即將環(huán)境變量寫到啟動文件中。
? 啟動文件就是當(dāng)我們登入linux時啟動bash shell,這時bash會在一個默認(rèn)的文件中去查找命令運(yùn)行,就把該文件稱為啟動文件。即bash在linux登入系統(tǒng)時,會去檢查啟動文件。當(dāng)然啟動文件有幾個,對于bash如何檢查啟動文件取決于啟動bash shell的方式,如下三種方式:
- (1)在登錄時將bash作為默認(rèn)登錄shell
- (2)作為非登錄shell的交互式shell
- (3)作為運(yùn)行腳本的非交互式shell
? 在啟動linux系統(tǒng)時,bash shell會作為默認(rèn)的登錄shell啟動。這時候,bash shell將從以下幾個文件中讀取命令:
- /etc/profile
- $HOME/.bash_profile
- $HOME/.bashrc
- $HOME/.bash_login
- $HOME/.profile
在以上文件中,/etc/profile文件是系統(tǒng)上默認(rèn)的bash shell主啟動文件。可以將我們自己設(shè)置的命令寫入該文件中。
對于其余四個文件,有的linux發(fā)行版本用到了一個或者兩個文件。
當(dāng)bash shell對$HOME目錄下的啟動文件進(jìn)行查找、讀取命令時,遵循一定順序:
1、$HOME/.bash_profile
2、$HOME/.bash_login
3、$HOME/.profile
當(dāng)以上順序中的文件一個被找到則作為啟動文件,將忽略剩下的文件。
注意:$HOME目錄下的啟動文件有些linux系統(tǒng)下沒有,這些文件是隱藏文件,使用ls -al命令可以查看對應(yīng)目錄下的隱藏文件。
注:$HOME/.bashrc文件通常通過其他的文件運(yùn)行。例如當(dāng)啟動linux系統(tǒng)后,再運(yùn)行bash終端,這時候?qū)虞d$HOME/.bashrc文件。
搜索關(guān)注【嵌入式小生】wx公眾號獲取更多精彩內(nèi)容>>>>
總結(jié)
以上是生活随笔為你收集整理的【linux】一文总结linux的环境变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apk脱壳圣战之---如何脱掉 梆梆加固
- 下一篇: html中的src路径怎么写,HTML