搜尋路徑PATH(系統預設變數)
執行命令時,系統透過PATH得路徑順序搜尋指令,如果再搜尋完後還找不到該指令,就會列印錯誤訊息【command not fount】。
 
環境變數
進入shell之前,需要一些變數來設定該shell得環境,例如是否要彩色顯示等等。
為了區分與自定義變數得不同,環境變數通常大寫,例如PATH、HOME、MAIL等。
 
變數得取用與設定:echo,變數設定規則,unset
1.echo取用變數
1)echo $variable
2)echo ${variable}
 
2.設定或修改變數
myname=VBird
echo $myname
說明:
0)等號兩邊不能直接接空格符;
1)若有空格符可以使用雙引號『 " 』或單引號『 ' 』來將變數內容結合起來,但須要特別留意, 雙引號內的特殊字元可以保有變數特性,但是單引號內的特殊字元則僅為一般字元
2)必要時需要以跳脫字元『 \ 』來將特殊符號 ( 如 Enter, $, \, 空格符, ' 等 ) 變成一般符號
3)在一串指令中,還需要藉由其它的指令提供的資訊,可以使用 quote 『` command` 』;(特別 特別注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號!)——內含指令
4)若該變數為擴增變數內容時,則需以雙引號及 $變數名稱 如:『"$PATH":/home』繼續累加內容;
5)若該變數需要在其它子程式執行,則需要以 export 來使變數變成環境變數, 如『 export PATH』;
6)取消變數的方法為:『 unset 變數名稱』
單引號、雙引號、跳脫字元、錢字號、quote符號等等。
 
環境變數的功能
家目錄的變換啊、提示字元的顯示啊、執行檔案搜尋得路徑啊。
1.env指令
env——列出當前shell下所有環境變數與其內容
這些變數中,比較重要,但樓主也不是很瞭解得變數有下面這些
1)RANDOM : 這個玩意兒就是『隨機隨機數』的變數啦!目前大多數的 distributions 都會有隨機 數產生器,那就是 /dev/random 這個檔案。 我們可以透過這個隨機數檔案相關的變數 ($RANDOM) 來隨機取得隨機數值喔。在 BASH 的環境下,這個 RANDOM 變數的內容,介於 0~32767 之間,所以,你只要 echo $RANDOM 時,系統就會主動的隨機取出一個介於 0~32767 的數值。
 
2.set指令
set——列出環境變數、自訂變數,與其他所有變數。
這些變數中,比較重要,但樓主也不是很瞭解得變數有下面這些
1)PS1(提示字元得設定)
當我們每次 按下 [Enter] 按鍵去執行某個指令後,最後要再次出現提示字元時, 就會主動去讀取這個變數值了。
我嘗試了使用PS1=XXX賦值來修改
 
2)$(關於本shell的PID)
echo $$
 
3)?(關於上個執行指令的回傳碼)
一般來說,如果成功的執行該指令, 則會回傳一個 0 值,如果執行過程發生錯誤,就會回傳『錯誤程式碼』才對!一般就是以非為 0 的數值來取代。 
 
3.自訂變數轉成環境變數: export
自訂變數與環境變數的區別在於可否被子程式所引用
1)# export ——秀出所有得【環境變數】
2)# export 變數 ——講自訂變數轉換為環境變數
 
變數鍵盤讀取、陣列與宣告:read,array,declare
1.read
讀取來自鍵盤輸入得變數
1)# read atest  ——使用者往atest變數中輸入內容
2)# read -p "Please keyin your name: " -t 30 named 
提示資訊Please keyin your name: ,等待時間30s,使用者往named變數輸入內容。
 
2.declare/typeset
申明變數得屬性。
1)# declare
同set,輸出所有變數
2)# declare -i sum=100+300+50
宣告sum為整數,所有後面的是加法,echo $sum為450
3)# declare -x sum
將sum變成環境變數,同export
4)declare -r sum
將sum變為只讀變數,不能賦值,不能unset
整數、陣列、字串
 
3.陣列說明
shell只支援一維陣列、讀取時建議直接以${陣列}的方式
# var[1]="small min"
# var[2]="big min"
# var[3]="nice min"
#echo "${var[1]}, ${var[2]}, ${var[3]}"
 
4.ulimit限制使用者的某些系統資源
包括可以開啟得檔案、可以使用的CPU時間、可以使用的記憶體總量等
1)# ulimit -a
列出所有得限制資料
2)# ulimit -f 1024
限制使用者僅能建立1MBytes以下容量的檔案。