-
課程介紹:
本課程旨在介紹如何充分挖掘unix/linux程序和命令的功能。通過shell的內置功能可以編寫非常復雜的應用程序,可以說幾乎所有的應用程序都可 以用shell腳本來編寫,腳本是一種容易獲得的系統工具,無須額外的編譯器和開發環境,只要有unix/linux主機,就自然可以用到腳本。深入了 解shell的內置功能可以大大降低unix/linux管理員和程序員的勞動強度,提高主機資源管理的效率課程對象: 本課程適用于Linux、Unix管理人員學習,學員需具備unix/linux系統使用經驗。
-
課程大綱:
??????? 第一部分.shell 編程 簡介
???????????? 1. 為什么使用shell編程?
???????????? 2. 帶著一個Sha-Bang出發(Sha-Bang指的是#!)
???????????? 2.1. 調用一個腳本
???????????? 2.2. 初步的練習
??????? 第二部分. 基本
???????????? 3. 特殊字符
???????????? 4. 變量和參數的介紹
???????????? 4.1. 變量替換
???????????? 4.2. 變量賦值
???????????? 4.3. Bash變量是不區分類型的
???????????? 4.4. 特殊的變量類型
???????????? 5. 引用
???????????? 5.1. 引用變量
???????????? 5.2. 轉義
???????????? 6. 退出和退出狀態碼
???????????? 7. 條件判斷
???????????? 7.1. 條件測試結構
???????????? 7.2. 文件測試操作符
???????????? 7.3. 其他比較操作符
???????????? 7.4. 嵌套的if/then條件測試
???????????? 7.5. 檢測你對測試知識的掌握情況
???????????? 8. 操作符與相關主題
???????????? 8.1. 操作符
???????????? 8.2. 數字常量
??????? 第三部分. 進階
???????????? 9. 變量重游
???????????? 9.1. 內部變量
???????????? 9.2. 操作字符串
???????????? 9.3. 參數替換
???????????? 9.4. 指定變量的類型: 使用declare或者typeset
???????????? 9.5. 變量的間接引用
???????????? 9.6. $RANDOM: 產生隨機整數
???????????? 9.7. 雙圓括號結構
???????????? 10. 循環與分支
???????????? 10.1. 循環
???????????? 10.2. 嵌套循環
???????????? 10.3. 循環控制
???????????? 10.4. 測試與分支(case與select結構)
???????????? 11. 內部命令與內建命令
???????????? 11.1. 作業控制命令
???????????? 12. 外部過濾器, 程序和命令
???????????? 12.1. 基本命令
???????????? 12.2. 復雜命令
???????????? 12.3. 時間/日期 命令
???????????? 12.4. 文本處理命令
???????????? 12.5. 文件與歸檔命令
???????????? 12.6. 通訊命令
???????????? 12.7. 終端控制命令
???????????? 12.8. 數學計算命令
???????????? 12.9. 混雜命令
???????????? 13. 系統與管理命令
???????????? 13.1. 分析一個系統腳本
???????????? 14. 命令替換
???????????? 15. 算術擴展
???????????? 16. I/O重定向
???????????? 16.1. 使用exec
???????????? 16.2. 代碼塊重定向
???????????? 16.3. 重定向的應用
???????????? 17. Here Document
???????????? 17.1. Here String
???????????? 18. 休息片刻
??????? 第四部分. 高級主題
???????????? 19. 正則表達式
???????????? 19.1. 一份簡要的正則表達式介紹
???????????? 19.2. 通配(globbing)
???????????? 20. 子shell
???????????? 21. 受限shell
???????????? 22. 進程替換
???????????? 23. 函數
???????????? 23.1. 復雜函數和函數復雜性
???????????? 23.2. 局部變量
???????????? 23.3. 不使用局部變量的遞歸
???????????? 24. 別名
???????????? 25. 列表結構
???????????? 26. 數組
???????????? 27. /dev和/proc
???????????? 27.1. /dev
???????????? 27.2. /proc
???????????? 28. Zero與Null
???????????? 29. 調試
???????????? 30. 選項
???????????? 31. 陷阱
???????????? 32. 腳本編程風格
???????????? 32.1. 非官方的Shell腳本編寫風格
???????????? 33. 雜項
???????????? 33.1. 交互與非交互式的交互與非交互式的shell和腳本
???????????? 33.2. Shell包裝
???????????? 33.3. 測試和比較: 一種可選的方法
???????????? 33.4. 遞歸
???????????? 33.5. 將腳本"彩色化"
???????????? 33.6. 優化
???????????? 33.7. 各種小技巧
???????????? 33.8. 安全問題
???????????? 33.9. 可移植性問題
???????????? 33.10. Windows下的shell腳本