shell腳本編程書籍筆記-6章環(huán)境變量

前言

學(xué)習(xí)shell腳本ing……

本章關(guān)鍵詞

全局坐漏、局部環(huán)境變量;PATH變量职员;創(chuàng)建變量麻蹋;系統(tǒng)啟動文件和本地啟動文件;定制環(huán)境變量焊切;數(shù)組變量扮授。

目錄

1.環(huán)境變量及創(chuàng)建自己的局部環(huán)境變量
2.刪除環(huán)境變量及默認(rèn)shell環(huán)境變量
3.設(shè)置PATH環(huán)境變量及定位環(huán)境文件
4.數(shù)組變量(了解即可)

一、環(huán)境變量及創(chuàng)建

環(huán)境變量

1.定義:bash shell用環(huán)境變量(environment variable)來存儲有關(guān)shell會話和工作環(huán)境的信息(被稱作環(huán)境變量的原因)专肪。env
2.分為全局變量和局部變量刹勃,還可以根據(jù)創(chuàng)建者分為系統(tǒng)環(huán)境變量和用戶環(huán)境變量
3.特點(diǎn):全局變量對于shell會話和所有生成的子shell都是可見的。局部變量則只對創(chuàng)建它們的shell可見
4.查看全局變量:使用env或printenv命令嚎尤。
5.顯示個別環(huán)境變量的值荔仁,使用printenv命令,不用env命令芽死。也可以使用echo顯示變量的值必須加上美元符($),也就是打印引用的環(huán)境變量乏梁。
6.set命令會顯示為某個特定進(jìn)程設(shè)置的所有環(huán)境變量,包括局部變量收奔、全局變量以及用戶定義變量掌呜。
7.說明

image-20210114215832448

創(chuàng)建用戶變量

1.my_variable=Hello
2.要給變量賦一個含有空格的字符串值,必須用引號來界定字符串的首和尾坪哄。my_variable="Hello World"
3.定義局部環(huán)境變量用小寫字母质蕉,系統(tǒng)環(huán)境變量都是大寫字母势篡。避免打架
4.局部變量只能該shell進(jìn)程用,bash一個新進(jìn)程模暗,在子shell就用不了了
5.創(chuàng)建全局環(huán)境變量:先創(chuàng)建一個局部環(huán)境變量禁悠,然后再把它導(dǎo)出到全局環(huán)境中。通過export命令來完成兑宇,前面不需要加$碍侦。
6.my_variable="I am Global now"
export my_variable
7.子shell無法使用export命令改變父shell中全局環(huán)境變量的值。

二隶糕、刪除環(huán)境變量及默認(rèn)shell環(huán)境變量

刪除環(huán)境變量

1.用unset命令瓷产,不要使用$。unset my_variable
2.竅門

image-20210114220046945

默認(rèn)shell變量

常見

image-20210114220153742

三枚驻、設(shè)置PATH及定位環(huán)境文件

設(shè)置PATH

1.在shell命令行界面中輸入一個外部命令濒旦,shell必須搜索系統(tǒng)來找到對應(yīng)的程序。PATH環(huán)境變量定義了用于進(jìn)行命令和程序查找的目錄再登。
2.PATH中的目錄使用冒號分隔尔邓。
3.把新的搜索目錄添加到現(xiàn)有的PATH環(huán)境變量中,PATH=PATH:/home/christine/Scripts 目錄加到PATH環(huán)境變量之后锉矢,你就可以任何位置執(zhí)行程序梯嗽。 4.通常也將單點(diǎn)符也加入PATH環(huán)境變量。PATH=PATH:.
5.這樣并不能持續(xù)沽损,關(guān)機(jī)就沒了灯节,下面是持續(xù)性修改。

定位系統(tǒng)環(huán)境變量

1.登入Linux系統(tǒng)啟動一個bash shell時绵估,bash會在幾個文件中查找命令显晶。這些文件叫作啟動文件或環(huán)境文件。
2.bash檢查的啟動文件取決于你啟動bash shell的方式壹士。啟動bash shell有3種方式:

  • 登錄時作為默認(rèn)登錄shell(大部分情況)
    • shell會從5個不同的啟動文件里讀取命令:
      ? /etc/profile
      ? HOME/.bash_profile ?HOME/.bashrc
      ? HOME/.bash_login ?HOME/.profile
    • /etc/profile文件是系統(tǒng)上默認(rèn)的bash shell的主啟動文件。系統(tǒng)上的每個用戶登錄時都會執(zhí)行這個啟動文件偿警。
    • 另外4個啟動文件是針對用戶的躏救,可根據(jù)個人需求定制。
    • $HOME目錄下的啟動文件螟蒸,起同一個作用:提供一個用戶專屬的啟動文件來定義該用戶所用到的環(huán)境變量盒使。大多數(shù)只用這四個啟動文件中的一到兩個:我的是bashrc和profile。其中bashrc通過另外幾個文件運(yùn)行七嫌。我們可以修改它來配置持續(xù)性修改
  • 作為非登錄shell的交互式shell
    • bash shell不是登錄系統(tǒng)時啟動的(如是在命令行提示符下敲入bash時啟動)少办,這種shell叫作交互式shell。
    • 它依然提供了命令行提示符來輸入命令诵原。
    • 它不會訪問/etc/profile文件英妓,只會檢查用戶HOME目錄中的.bashrc文件挽放。
    • .bashrc文件有兩個作用:一是查看/etc目錄下通用的bashrc文件,二是為用戶提供一個定制自己的命令別名alias和私有腳本函數(shù)(17章中)
  • 作為運(yùn)行腳本的非交互shell
    • 系統(tǒng)執(zhí)行shell腳本時用的就是這種shell蔓纠。
    • 沒有命令行提示符辑畦。

環(huán)境變量持久化

1.更改全局環(huán)境變量(所有用戶都需要使用的變量),可將新的或修改過的變量設(shè)置放在/etc/profile文件中腿倚,但不這么做4砍觥!敷燎!暂筝。該文件會隨系統(tǒng)更新。
2.一般是在/etc/profile.d目錄中創(chuàng)建一個以.sh結(jié)尾的文件硬贯。把所有新的或修改過的全局環(huán)境變量設(shè)置放在這個文件中焕襟。
3.更改個人環(huán)境變量,存儲個人用戶永久性bash shell變量的地方是HOME/.bashrc文件澄成。改它k嗜鳌! 4.把自己的alias設(shè)置放在HOME/.bashrc啟動文件中墨状,使其效果永久化卫漫。

四瘩例、數(shù)組變量

1.要給某個環(huán)境變量設(shè)置多個值蜓斧,可以把值放在括號里,值與值之間用空格分隔骇窍。
2.mytest=(one two three four five)
3.要引用一個單獨(dú)的數(shù)組元素镐确,就必須用代表它在數(shù)組中位置的數(shù)值索引值包吝。索引值要用方括號括起來。echo ${mytest[2]}源葫,結(jié)果為three诗越,從0開始數(shù)
4.顯示整個數(shù)組變量,可用星號作為通配符放在索引值的位置
5.在shell腳本編程時并不常用息堂。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嚷狞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子荣堰,更是在濱河造成了極大的恐慌床未,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件振坚,死亡現(xiàn)場離奇詭異薇搁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)渡八,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門啃洋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來传货,“玉大人,你說我怎么就攤上這事裂允∷鹄耄” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵绝编,是天一觀的道長僻澎。 經(jīng)常有香客問我,道長十饥,這世上最難降的妖魔是什么窟勃? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮逗堵,結(jié)果婚禮上秉氧,老公的妹妹穿的比我還像新娘。我一直安慰自己蜒秤,他們只是感情好汁咏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著作媚,像睡著了一般攘滩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纸泡,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天漂问,我揣著相機(jī)與錄音,去河邊找鬼女揭。 笑死蚤假,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吧兔。 我是一名探鬼主播磷仰,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼境蔼!你這毒婦竟也來了芒划?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤欧穴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后泵殴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涮帘,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年笑诅,在試婚紗的時候發(fā)現(xiàn)自己被綠了调缨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疮鲫。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖弦叶,靈堂內(nèi)的尸體忽然破棺而出俊犯,到底是詐尸還是另有隱情,我是刑警寧澤伤哺,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布燕侠,位于F島的核電站,受9級特大地震影響立莉,放射性物質(zhì)發(fā)生泄漏绢彤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一蜓耻、第九天 我趴在偏房一處隱蔽的房頂上張望茫舶。 院中可真熱鬧,春花似錦刹淌、人聲如沸饶氏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疹启。三九已至,卻和暖如春柠衅,著一層夾襖步出監(jiān)牢的瞬間皮仁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工菲宴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贷祈,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓喝峦,卻偏偏與公主長得像势誊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谣蠢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容