這一系列的Linux入門都是本人在《鳥哥的Linux私房菜》的基礎上總結的基本內容,主要是記錄下自己的學習過程,也方便大家簡要的了解
Linux Distribution是Ubuntu而不是書本上推薦的CentOS,建議裝雙系統,不要使用虛擬機。
代碼在github上:Linuxpractice
其他內容:
Linux入門篇(一)——基本命令
Linux入門篇(二)——文件
Linux入門篇(三)——文件與目錄
Linux入門篇(四)——Vim的使用與Bash
Shell
一、shell的變量功能
- 變量的顯示 $ echo
- 變量的修改 $ 變量名=變量值
- 環境變量功能: $ env 可以列舉出當前shell環境下所有的環境變量。
環境變量的舉例:
- HOME:代表主文件夾
- SHELL:目前環境代表的shell程序
- HISTSIZE:可紀錄的歷史命令的條數
- MAIL:讀取的郵件文件
- PATH:執行文件查詢路徑
- LANG:語系數據
- RANDOM:隨機數變量
變量的有效范圍:一般情況下,父進程的自定義變量無法在子進程內使用,除非通過export將其變為環境變量,否則就是自定義變量。(與內存分配的記憶塊有關)
- read 讀取來自鍵盤輸入的變量: $ read [-pt] variable
- declare和typeset是一樣的功能用來聲明:$ declare [-aixr] variable
-a: variable為數組類型
-i: variable為integer類型
-x:用法與export一致
-r:變量設置為readonly,只讀類型,不可以修改
數組變量類型:array
- 設置方法: $ var [index]=context bash的數組下標是從0開始的。
數組名 下標 變量值
- 讀取方式: $ echo ${var[1]}
變量內容的刪除、替換:
- 變量設置方法 說明
${變量#關鍵字} 若變量內容從頭開始數據符合”關鍵字“,則將符合的最短數據刪除。
${變量##關鍵字} 若變量內容從頭開始數據符合”關鍵字“,則將符合的最長數據刪除。
${變量%關鍵字} 若變量內容從尾開始數據符合”關鍵字“,則將符合的最短數據刪除。
${變量%%關鍵字} 若變量內容從尾開始數據符合”關鍵字“,則將符合的最長數據刪除。
${變量/舊字符串/新字符串} 替換第一個符合的字符串。
${變量//舊字符串/新字符串} 替換全部符合的字符串。
- 變量的測試與內容的替換
new_var=${old_var-content}
新變量 關鍵字 舊變量 變量內容
三、Bash Shell操作環境
一個命令被執行時,命令執行的順序是:
- 以相對/絕對路徑執行命令。
- 由alias找到該命令並執行。
- 由bash內置的(builtin)命令執行。
- 通過$PATH變量的順序找到第一個來執行。