小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Linux環(huán)境變量詳解

 看見就非常 2022-03-15

環(huán)境變量的本質(zhì)就是變量,它的服務(wù)對(duì)象是shell程序,它分為局部環(huán)境變量和全局環(huán)境變量,分別有不同的作用域和自然生命周期

1.不同角色的shell

不同的情況下,會(huì)產(chǎn)生不同的shell。既然環(huán)境變量是服務(wù)于shell程序的,那么就來分析一下不同角色的shell

  • 交互式shell:我們打開一個(gè)tty控制臺(tái),實(shí)際就打開了一個(gè)交互式shell。我們輸入的bash命令就由交互式shell解析
  • 非交互式shell:就是各種腳本程序
  • 登錄shell:登錄系統(tǒng)后,首個(gè)執(zhí)行的應(yīng)用程序bash,該應(yīng)用程序就稱之為登錄shell。登錄shell執(zhí)行后,才會(huì)由它陸續(xù)去執(zhí)行其他的交互式shell,非交互式shell,可以認(rèn)為它是所有shell的祖宗

2.全局環(huán)境變量

使用export導(dǎo)出的環(huán)境變量,就是全局環(huán)境變量

  • 全局環(huán)境變量的作用域?yàn)椋簞?chuàng)建該全局環(huán)境變量的shell及其子孫shell/進(jìn)程。即子shell復(fù)制父shell的全套環(huán)境變量,子shell對(duì)得到的環(huán)境變量做修改并不會(huì)影響到父shell
  • 全局環(huán)境變量的自然生命周期為:創(chuàng)建該全局環(huán)境變量的shell死亡,并且其子孫shell/進(jìn)程也全部死亡(通俗的來說,創(chuàng)建者的整個(gè)家族滅門了)

始祖環(huán)境變量

  • 登錄系統(tǒng)后,首個(gè)執(zhí)行的應(yīng)用程序bash(登錄shell)所創(chuàng)建的一堆全局環(huán)境變量,它們稱為始祖環(huán)境變量。這一堆環(huán)境變量的生命周期是永久的

  • 啟動(dòng)shell會(huì)執(zhí)行/etc/profile,導(dǎo)出一些通用全局環(huán)境變量,export PATH USER LOGNAME MAIL HOSTNAME等,所有用戶的shell進(jìn)程都可以訪問到這些變量,我們可以在里面添加系統(tǒng)級(jí)別的環(huán)境變量。然后再依次執(zhí)行~/.bash_profile、~/.bash_login、~/.profile或者~./bashrc,或者/etc/bashrc ,來初始化一些用戶特有的環(huán)境變量,需要注意的是后面幾個(gè)文件不一定都存在

常見需求:增加PATH

/etc/profile最后加上export PATH="/xxxx/xxx$PATH"

全局環(huán)境變量的一般使用方法

  • 例一,比如在控制臺(tái)(交互式shell)中輸入export AAA="123",那么今后在該控制臺(tái)中,直接或間接執(zhí)行的shell,都將繼承該控制臺(tái)(交互式shell)留下來的全局環(huán)境變量,包括加入的VAR="123"
  • 例二,有兩個(gè)“非交互式shell”a.sh、b.sh,a.sh中執(zhí)行了b.sh,b.sh中執(zhí)行了export BBB="123"?,F(xiàn)在執(zhí)行a.sh,則b.sh是其子shell,所以 BBB這個(gè)環(huán)境變量對(duì)a.sh起不了作用。再一次印證了全局環(huán)境變量只能由創(chuàng)建者shell傳給子孫shell

3.局部環(huán)境變量

不使用export導(dǎo)出的環(huán)境變量,就是局部環(huán)境變量。它通常作為某個(gè)腳本(非交互式shell)自己的私有變量

  • 局部環(huán)境變量的作用域?yàn)椋簝H僅創(chuàng)建者shell自己。其父shell、其子shell均無法訪問

4.操作環(huán)境變量

  • 腳本和控制臺(tái)中皆可設(shè)置環(huán)境變量,方法如下,尤其要注意bash的語法中“=”兩邊不能有空格,變量值中間也不能有空格,有的話要用單引號(hào)圍起來
test=123    #局部環(huán)境變量一般用小寫
export TEST=123 #全局環(huán)境變量一般用大寫
export MYNAME='XIAO BA WU' #變量值有空格,要用單引號(hào)圍起來

export test #也可以這樣把前面的局部變量導(dǎo)出到全局
  • 我們可以輸入下列命令來查看當(dāng)前控制臺(tái)(交互式shell)的環(huán)境變量
printenv    #查看所有環(huán)境變量
echo $HOME #查看指定環(huán)境變量
  • 我們可以這樣取消當(dāng)前控制臺(tái)(交互式shell)環(huán)境變量
unset MYNAME

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多