常見linux命令釋義(第六天)——shell環境變量


太懶了,這幾天好像得了懶癌,一點都不想寫博客。后來想想,知識嘛,還是分享出來的好。第一治自己的懶癌;第二順便鞏固下自己的知識。

 


Linux的變量分為兩種,一種是系統變量,是系統一經啟動,就寫進內存中的變量。在各個進程、以及子進程中都可以調用得到。

一種是自己設置的變量,關機后再開機就掛了,或者切去下個進程,就找不到變量了。這個是局部變量。

以上兩種變量,第五天的時候有詳細的講述過,這里就不贅述了。

查看環境變量有個命令:env   env是environment【環境】 的意思。

這個里面有一些我們常用的常量,比如HOME 、SHELL、HISTSIZE 、MAIL、PATH、LANG 、RANDOM等。這些單詞都很好認識,顧明就思意了。因此不再繼續解釋。

查看當前系統常量與自己設置的所有變量。可以用set這個命令查看。

下來我們來繼續談一談env的環境變量和set的自定義變量之間差異有那些:(引用鳥哥linux私房菜第11章)兩者的差異就在於該變量是否會被子進程所繼續引用,那么什么事父進程、什么是子進程。當登陸linux后,並取得了一個bash,你的bash就是一個獨立的進程,被成為pid的就是。接下來你在這個bash下面所執行的任何命令都是由這個bash所衍生出來的,那些被執行的命令就成為子進程。(大贊鳥哥,寫的真好。)

第五天的筆記中,我提了一個問題,如何將自己設置的變量設置為環境變量呢。現在我們可以用export命令。export的英文意思是輸出;出口;帶走,運走;

意思就是將自己設置的變量變成環境變量。

如圖所示:

global variable (全局變量)= 環境變量

local variable   (局部變量)   =  局部變量

為什么環境變量的數據可以被子進程引用呢?這是因為內存配置的關系。理論上是這樣的:

1、當啟動一個shell,操作系統會分配一個專屬的區域給shell使用。此內存里的變量可以讓子進程調用,

2、若在父進程利用export功能,可以讓自定義的變量加載給上述的記憶塊中。

3、當加載另一個shell時,即啟動子進程。離開原來的父進程。子shell,可以講父shell的環境變量所在的記憶塊導入到自己的環境變量塊中.

 

前面的變量還是有點意思的。下來我們繼續看下更有意思的東西。竟然有點if 和else判斷。

我記得在前面安裝一鍵lamp安裝包的時候,會讓我選擇使用那個版本的mysql以及那個版本的php,以及制定安裝路徑、默認密碼等等。當時就好奇,這樣一步步的引導是怎么寫出來了。就是用我們接下來要看到read命令。

命令的語法是這樣的。read [-pt] variable    

這個-p的命令指的是print。可以通過man read命令詳細的查看。

這個-t指的是后面接允許用戶等待的最大秒數。 來吧。我們來看下具體怎么用。

我后面跟的那個select 變量,就可以獲取用於在鍵盤上輸入的事yes還是no。

下面來說道說道一個聲明變量的方法。declare 是聲明宣布的意思。

declare   -a   是 聲明數組的意思。 a代表的事數組(array)類型.

declare   -i   是聲明整型的意思,i代表是整型(integer)

declare  -x   可以將后面的變量變成環境變量。 x代表的事export ,可能讀音上有點是x開頭,所以就以x命名了.

declare  -r   是可以將變量(variable)設置為只讀類型。r代表的是readonly.

declare  如果不聲名類型,的默認類型為字符串。

bash環境中的數值預算,默認最多僅能達到整數類型。

下面我們通過一個小栗子來練習以上上面提到的知識點。

再下面看看declare -x 的用法。

再來看看declare -r的用法。

這幾個選項可以組合使用。


 

這篇博客實際上本周周一或者周二就寫好了。但是這周的身體狀態和精神狀態都不是很佳。因此,博客都沒有持續更新。

雖然知道博客園里面大牛雲集,對於我這點分享根本不屑一顧。但還是要繼續下去。

順便聊聊自己的感悟:時間真的會讓一個人發生桑海桑田般的巨大變化的。有一些朋友只適合回憶,有一些人只適合銘記。我們都隨着時間的滾滾浪潮,被沖刷的再也不像曾經。也許變得更加善良,也許變得更加的敏感、也許變得更加的樂觀。總之都不再是過去的人了,放在好友列表里面,夜深人靜失眠的時候看一看,有哪些朋友是曾經的驢友。這也就僅僅夠了,如果還能長久的保持聯系,那一定要珍惜,這真是上天賜予的緣分。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM