前言
學(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.說明
創(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.竅門
默認(rèn)shell變量
常見
三枚驻、設(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:.
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/.bashrc
?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會從5個不同的啟動文件里讀取命令:
- 作為非登錄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啟動文件中墨状,使其效果永久化卫漫。
四瘩例、數(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腳本編程時并不常用息堂。