本書從實際的應用場景出發,深入淺出地介紹了編寫 Shell腳本所包含的各項常用技術,使讀者在不知不覺中就能掌握 Shell腳本的編寫和使用技巧,是 Shell腳本編程開發初學者的絕佳。
本書分為 18章,分別介紹了 Linux系統基本知識,Shell編程基礎,Shell編程的常用語法知識,如變量、特殊符號、文件處理、分支結構和循環結構、正則表達式、grep命令、sed編輯器、gawk編輯器等,如何對 Shell腳本的執行進行控制和優化,通過兩個應用實例,加深讀者對 Linux系統下 Shell編程的認識,提高讀者的編程能力。
本書適用于 Shell編程初學者和 Linux系統管理的初學者,可以作為日常學習的教材,還可以作為日常管理的參考書。
第1章 學習 Shell的背景知識——Linux系統
1.1 Linux系統基礎
1.1.1 Linux系統的發展
1.1.2 Linux系統和Windows系統的區別
1.1.3 Linux的啟動過程
1.2 Linux文件系統基礎介紹
1.2.1 必須了解的節點inode
1.2.2 Linux系統文件結構
1.3 學會Linux系統的基本使用
1.3.1 系統的登錄與退出
1.3.2 系統基本選項配置
1.3.3 文本編輯器的使用
1.4 走進 Shell
1.4.1 什么是Shell
1.4.2 Shell在Linux系統中的作用
1.4.3 Shell的種類
1.5 小結
第2章 邁出Shell腳本編程及時步
2.1 Shell腳本語言概述
2.1.1 Shell腳本語言的定義
2.1.2 Shell終端的基本使用
2.1.3 Shell終端菜單的使用
2.2 Shell命令格式介紹
2.2.1 Shell命令格式
2.2.2 命令行界面介紹
2.2.3 如何獲取幫助
2.3 及時個Shell程序:Hello,Bash Shell!
2.3.1 創建Shell腳本
2.3.2 Shell腳本中的格式介紹
2.3.3 如何執行Shell程序
2.4 小結
第3章 Shell常用命令大演練
3.1 Shell命令使用基礎
3.1.1 文件類型
3.1.2 路徑和相對路徑
3.1.3 文件屬性和文件權限
3.1.4 用戶和用戶組
3.1.5 特殊目錄介紹
3.2 用戶和用戶組管理
3.2.1 用戶管理常用命令
3.2.2 用戶組管理常用命令
3.2.3 其他常用命令
3.3 文件和目錄操作
3.3.1 文件操作常用命令
3.3.2 目錄操作常用命令
3.3.3 文件權限管理常用命令
3.3.4 查找文件常用命令
3.4 系統管理相關
3.4.1 網絡操作常用命令
3.4.2 系統資源管理常用命令
3.4.3 磁盤信息查看常用命令
3.5 小結
第4章 Shell腳本中的變量
4.1 變量的簡單使用
4.1.1 變量的使用
4.1.2 變量的輸入和輸出
4.1.3 變量的輸出命令echo
4.2 Shell中特殊變量的使用
4.2.1 位置參數介紹
4.2.2 $@和$的區別
4.3 環境變量的使用
4.3.1 Shell中的環境變量
4.3.2 環境變量的配置文件
4.3.3 全局環境變量和本地環境變量
4.3.4 環境變量的設定
4.3.5 環境變量的取消
4.4 小結
第5章 Shell腳本中的特殊符號
5.1 引號的使用
5.1.1 單引號的使用
5.1.2 雙引號的使用
5.1.3 倒引號的使用
5.2 通配符和元字符
5.2.1 使用通配符
5.2.2 使用元字符
5.3 管道
5.4 其他特殊字符介紹
5.4.1 后臺運行符
5.4.2 括號
5.4.3 分號
5.5 小結
第6章 Linux中的文件處理
6.1 Linux中的文件類型
6.1.1 設備文件
6.1.2 設備文件的掛載和卸載
6.1.3 鏈接文件
6.1.4 文件描述符
6.2 標準輸入、輸出與錯誤
6.2.1 標準輸入
6.2.2 標準輸出和標準錯誤
6.3 重定向
6.3.1 重定向的定義
6.3.2 輸入重定向
6.3.3 輸出重定向
6.4 合并標準輸出和標準錯誤
6.5 小結
第7章 Shell腳本中的分支結構
7.1 測試命令的使用
7.1.1 測試命令的基礎結構
7.1.2 測試文件類型
7.1.3 測試字符串
7.1.4 測試數值
7.1.5 復合測試條件
7.2 if分支結構
7.2.1 if -then結構
7.2.2 if -then-else結構
7.2.3 嵌套結構
7.3 case多條件分支結構
7.3.1 case結構基礎
7.3.2 在Shell腳本中使用case結構
7.3.3 select命令的使用
7.4 小結
第8章 Shell中的循環結構
8.1 for循環
8.1.1 使用for-in結構
8.1.2 C式for結構
8.2 while命令的使用
8.2.1 使用while結構
8.2.2 多條件的while結構
8.2.3 使用until命令
8.3 命令的嵌套
8.3.1 for命令的嵌套
8.3.2 while命令的嵌套
8.3.3 until命令的嵌套
8.4 循環控制符
8.4.1 使用break中斷
8.4.2 使用continue繼續
8.5 小結
第9章 Shell中的函數
9.1 函數的基本用法
9.1.1 函數的創建與使用
9.1.2 函數的參數
9.2 函數的返回值
9.2.1 返回值基礎
9.2.2 函數的默認返回值
9.2.3 return命令的使用
9.2.4 使用函數的返回值
9.3 函數中的全局變量和局部變量
9.3.1 全局變量
9.3.2 局部變量
9.4 數組與函數
9.4.1 數組作為函數參數
9.4.2 數組作為函數返回值
9.5 腳本函數遞歸
9.6 函數的嵌套調用
9.7 小結
第10章 Shell腳本編寫技巧
10.1 腳本編寫規范
10.1.1 命名規范
10.1.2 注釋風格
10.1.3 其他需要注意的規范
10.2 腳本優化
10.2.1 Shell腳本優化原則
10.2.2 提供足夠的提示信息
10.3 腳本使用技巧
10.3.1 命令選項說明
10.3.2 算術運算
10.3.3 高級算術運算
10.4 小結
第11章 正則表達式
11.1 正則表達式基礎
11.1.1 正則表達式的定義
11.1.2 正則表達式的分類
11.2 基本正則表達式的常用符號
11.2.1 使用點字符匹配單字符
11.2.2 使用定位符
11.2.3 使用""匹配字符串中的單字符或其重復序列
11.2.4 使用"\"屏蔽一個特殊字符的含義
11.3 擴展正則表達式的常用符號
11.3.1 使用"[]"匹配一個范圍或集合
11.3.2 使用"\{\}"匹配模式結果出現的次數
11.3.3 問號的使用
11.4 小結
第12章 Shell中的文本搜索工具——grep家族
12.1 grep的基礎使用
12.1.1 grep命令的基本使用方式
12.1.2 grep選項
12.1.3 行數
12.1.4 大小寫敏感
12.1.5 顯示非匹配行
12.1.6 查詢多個文件或多個關鍵字
12.2 grep和正則表達式
12.2.1 模式范圍以及范圍組合
12.2.2 定位符的使用
12.2.3 字符匹配
12.2.4 模式出現幾率
12.2.5 匹配特殊字符
12.3 grep命令的擴展使用
12.3.1 類名的使用
12.3.2 egrep命令的使用
12.3.3 fgrep命令的使用
12.4 grep命令使用實例
12.4.1 目錄搜索——查找特定目錄或文字
12.4.2 使用ps命令檢索特定的進程
12.5 小結
第13章 sed編程
13.1 認識sed
13.1.1 sed工作模式
13.1.2 sed常用指令
13.1.3 sed常用選項
13.1.4 sed地址范圍
13.2 sed編輯器常用命令
13.2.1 替換命令的使用
13.2.2 刪除命令的使用
13.2.3 文本的添加和替換
13.3 高級sed編程
13.3.1 同時處理多行數據
13.3.2 sed編輯器的空間
13.3.3 sed編輯器的反向
13.3.4 重定向sed的輸出
13.4 小結
第14章 gawk編程
14.1 gawk概述
14.1.1 gawk基本介紹
14.1.2 gawk基本使用
14.2 變量的使用
14.2.1 內置變量的使用
14.2.2 自定義變量的使用
14.2.3 數組的使用
14.3 結構的使用
14.3.1 條件結構的使用
14.3.2 循環結構的使用
14.3.3 循環結構控制語句
14.4 函數的使用
14.4.1 算術函數的使用
14.4.2 字符串處理函數的使用
14.4.3 時間函數的使用
14.5 小結
第15章 腳本控制
15.1 Linux信號控制
15.1.1 Linux信號機制簡介
15.1.2 使用Shell腳本操作信號
15.2 進程的控制
15.2.1 后臺運行符介紹
15.2.2 運行進程的控制
15.2.3 nohup命令的使用
15.3 腳本運行的優先級
15.3.1 優先級介紹
15.3.2 使用nice指定優先級
15.3.3 使用renice重置優先級
15.4 小結
第16章 腳本運行的優化
16.1 添加窗口
16.1.1 dialog軟件的安裝
16.1.2 dialog命令的幫助選項
16.1.3 dialog命令的使用
16.2 dialog常用窗口的使用
16.2.1 消息窗口
16.2.2 yesno窗口
16.2.3 文本框的使用
16.2.4 菜單的使用
16.3 顏色的使用
16.4 創建菜單
16.4.1 在Shell腳本中創建菜單
16.4.2 創建子菜單函數
16.4.3 腳本的整合
16.5 小結
第17章 Shell實戰之系統管理
17.1 系統監測
17.1.1 系統監控基礎
17.1.2 Ubuntu自帶的系統監控工具
17.1.3 監控腳本的編寫
17.2 計劃任務的實現
17.2.1 at命令的使用
17.2.2 atq命令的使用
17.2.3 cron的使用
17.3 網絡管理
17.3.1 網絡配置
17.3.2 服務器的安裝
17.4 日志管理
17.4.1 日志簡介
17.4.2 守護進程syslogd
17.4.3 日志的備份操作
17.4.4 日志的定時操作
17.5 小結
第18章 Shell實戰之數據庫操作
18.1 Linux系統中的數據庫
18.1.1 SQLite簡介
18.1.2 SQLite的圖形化操作
18.1.3 MySQL簡介
18.2 SQL語句
18.2.1 SQL語言基本介紹
18.2.2 基本的SQL操作
18.2.3 在Shell腳本中執行SQL語句
18.3 圖書管理系統中數據庫操作實例
18.3.1 數據庫操作基本流程
18.3.2 創建表
18.3.3 增加圖書信息
18.3.4 修改圖書信息
18.3.5 刪除圖書信息
18.4 小結