一:名詞理解
編譯型:源程序(文本文件) 預處理 編譯 彙編 鏈接
靜態語言
解釋型:源程序(文本文件) 解析器讀取並執行
動態語言
編譯器:
解釋器:
解釋:
詞法分析
語法分析
語義分析
條件判斷:選擇分支
循環:
對象式編程:
過程式編程:
順序執行
選擇執行
循環執行
解釋器:提供了編程環境
腳本:使用bash提供控制機智,將期望執行的命令羅列於文本文件中
bash沒有庫,整個程序幾乎都要依賴於命令
二、變量
1、bash變量類別:
本地變量:只對當前shell進程有效,對其它shell進程無效,包括當前shell的子進程
變量賦值:向變量的存儲空間保存數據 VAR_NAME=VALUE
變量引用:${VAR_NAME}
“”:弱引用,裏面的變量會被替換
'':強引用,裏面的所有字符都是字面量,直接輸出
環境變量:對當前shell進程有效及其子shell有效,對其他shell無效
定義:export VAR_NAME=VALUE
導出:export VAR_NAME
撤銷變量: unset VAR_NAME
只讀變量: readonly VAR_NAME
用戶可自定義,bash有許多內置的環境變量
局部變量:對shell腳本中某代碼片段有效,通常用於函數本地:
定義: local VAR_NAME=VALUE
位置參數變量:$1,$2,$3、、、${10}
特殊變量:$?,
查看當前shell進程中的所有變量:set
查看當前shell進程中的所有環境變量:export,printenv,env
變量命令:
1、不能使用程序中的關鍵字(保留字)如,if,case,for
2、只能使用數字,字母和下劃線,且不能以數字開頭
3、要見名知義
2、變量類型
a.存儲機制
b.存儲空間
c.參與的運算方式
(二進制)數字的存儲, 18:00010010
文本的存儲, ASCII:128常用字符 18:1,8
1:8bits 8:8bits 18:16bits
變量類型:
數值型:
精確數值:整數
近似數值:浮點型
單精度浮點
雙精度浮點
字符型:
char
string
布爾型:true,false
bash是弱字符型語言,一切皆字符
類型轉換:顯示轉換,隱式轉換
三、bash的配置文件
profile類:爲交互式登錄的用戶提供配置
全局:
/etc/profile
/etc/profile.d/*.sh
用戶:~/.bash_profile
用途:
1、設定環境變量
2、運行命令或腳本
bashrc類:爲非交互式用戶提供配置
全局:/etc/bashrc
用戶:~/.bashrc
用途:
1、設定本地變量
2、定義命令別名
登錄類型:
交互式:直接通過終端輸入帳號和密碼登錄,使用su - USERNAME
非交互式:su USERNAME
圖形界面下打開的終端
執行腳本
如何使通過編輯配置文件修改的配置生效?
1、退出並重新登錄
2、讓bash重讀此配置文件
. FILENAME 注意,多次重讀配置文件可能會產生重複賦值
source FILENAME
系統開機讀取bash配置文件順序
交互登錄的用戶:
/etc/profile /etc/profile.d/*.sh ~/.bash_profile ~/.bashrc /etc/bashrc
非交互式登錄的用戶:
~/.bashrc /etc/bashrc /etc/proile.d/*.sh