本書共10章,包括Shell變量、條件測試及流程控制、Shell循環(huán)、Shell數(shù)組、Shell函數(shù)、正則表達式、流編輯器Sed、文本處理工具Awk以及性能項目操作案例和項目Nginx日志分析案例等。
1.全書以實用、就業(yè)為導(dǎo)向。
2.涵蓋從前期設(shè)計到最終實施的整個過程的所有知識點。
3.避免一味講解理論,以實戰(zhàn)帶動講解。
4.豐富的配套資源,使得學(xué)習(xí)不再難。
千鋒教育 1.千鋒教育采用全程面授高品質(zhì)、高成本培養(yǎng)模式,教學(xué)大綱緊跟企業(yè)需求,擁有全國一體化就業(yè)保障服務(wù),成為學(xué)員信賴的IT職業(yè)教育品牌。 2.獲得榮譽包括:中關(guān)村移動互聯(lián)網(wǎng)產(chǎn)業(yè)聯(lián)盟副理事長單位、中國軟件協(xié)會教育培訓(xùn)委員會認(rèn)證一級培訓(xùn)機構(gòu)、中關(guān)村國際孵化軟件協(xié)會授權(quán)中關(guān)村移動互聯(lián)網(wǎng)學(xué)院、教育部教育管理信息中心指定移動互聯(lián)網(wǎng)實訓(xùn)基地等。
第1章 初識Shell 1
1.1 Shell如何連接用戶和內(nèi)核 1
1.2 Shell連接其他程序 2
1.3 Shell同樣支持編程 2
1.4 Shell是一種腳本語言 3
1.5 Shell的各種版本 3
1.5.1 Bourne Shell 4
1.5.2 C Shell 4
1.5.3 Bash Shell 4
1.5.4 查看Shell版本 4
1.6 Shell是運維工程師必備技能 5
1.7 Shell變量的定義 7
1.8 Shell變量的類型 7
1.8.1 自定義變量 7
1.8.2 環(huán)境變量 8
1.8.3 位置變量 9
1.8.4 預(yù)定義變量 9
1.9 Shell變量的賦值 10
1.9.1 直接賦值 10
1.9.2 從鍵盤讀入賦值 10
1.9.3 使用命令行參數(shù)賦值 11
1.9.4 利用命令的輸出結(jié)果賦值 11
1.9.5 從文件中讀入數(shù)據(jù)賦值 12
1.10 Shell變量的運算 13
1.10.1 expr數(shù)值運算命令 13
1.10.2 “(())“或“[ ]”數(shù)值運算命令 13
1.10.3 let數(shù)值運算命令 14
1.10.4 Shell小數(shù)運算 14
1.11 Shell變量的刪除、替換和替代 14
1.11.1 Shell變量的刪除 14
1.11.2 Shell變量的替換 15
1.11.3 Shell變量的替代 16
1.12 Shell變量的自增 16
1.13 Shell變量中的特殊符號 17
1.14 本章小結(jié) 21
1.15 習(xí)題 21
第2章 Shell條件測試 23
2.1 Shell中的條件測試語句 23
2.1.1 文件測試 23
2.1.2 整數(shù)測試 24
2.1.3 字符串測試 25
2.1.4 邏輯運算符 26
2.2 if條件語句 27
2.2.1 if單分支 27
2.2.2 if雙分支 27
2.2.3 if多分支 28
2.2.4 if語句配置yum源實戰(zhàn)腳本 29
2.3 case條件語句 30
2.4 case條件語句案例實戰(zhàn) 31
2.4.1 case刪除用戶判斷 31
2.4.2 case實現(xiàn)系統(tǒng)工具箱的使用 32
2.4.3 case實現(xiàn)jumpserver 33
2.4.4 case實現(xiàn)多版本PHP安裝 35
2.5 本章小結(jié) 37
2.6 習(xí)題 37
第3章 Shell循環(huán) 39
3.1 for循環(huán)語法結(jié)構(gòu) 39
3.2 for循環(huán)語句案例實戰(zhàn) 40
3.2.1 for循環(huán)語句實現(xiàn)批量主機ping探測 40
3.2.2 for循環(huán)語句實現(xiàn)批量用戶創(chuàng)建 41
3.2.3 for循環(huán)語句實現(xiàn)文件中批量用戶創(chuàng)建 42
3.3 expect交互式公鑰推送 43
3.3.1 expect實現(xiàn)非交互登錄 43
3.3.2 expect實現(xiàn)非交互傳輸文件 44
3.3.3 expect實現(xiàn)批量主機公鑰推送 45
3.3.4 for循環(huán)語句實現(xiàn)批量主機密碼修改 48
3.3.5 for循環(huán)語句實現(xiàn)批量遠程主機SSH配置 49
3.4 while循環(huán)和until循環(huán) 50
3.4.1 while循環(huán)語句語法結(jié)構(gòu) 51
3.4.2 until循環(huán)語句語法結(jié)構(gòu) 51
3.5 循環(huán)語句案例實戰(zhàn) 51
3.5.1 while循環(huán)語句實現(xiàn)批量用戶創(chuàng)建 51
3.5.2 while循環(huán)語句和until循環(huán)語句測試遠程主機連接 52
3.5.3 for、while、until終極對決 53
3.6 Shell的并發(fā)控制 55
3.6.1 for循環(huán)實現(xiàn)Shell的并發(fā)控制 55
3.6.2 for后臺循環(huán)實現(xiàn)Shell的并發(fā)控制 56
3.7 Shell的并發(fā)控制案例實戰(zhàn) 56
3.7.1 for循環(huán)實現(xiàn)Shell的并發(fā)控制案例實戰(zhàn) 56
3.7.2 for后臺循環(huán)實現(xiàn)Shell的并發(fā)控制案例實戰(zhàn) 57
3.7.3 Linux管道實現(xiàn)Shell的并發(fā)控制案例實戰(zhàn) 58
3.8 本章小結(jié) 59
3.9 習(xí)題 60
第4章 Shell數(shù)組 61
4.1 Shell數(shù)組的基本概念 61
4.2 Shell數(shù)組的類型 61
4.2.1 普通數(shù)組 62
4.2.2 關(guān)聯(lián)數(shù)組 62
4.2.3 定義數(shù)組的類型 62
4.3 Shell數(shù)組的定義 62
4.3.1 直接定義數(shù)組 63
4.3.2 下標(biāo)定義數(shù)組 63
4.3.3 間接定義數(shù)組 63
4.3.4 從文件中讀入定義數(shù)組 64
4.4 Shell數(shù)組的遍歷及賦值 64
4.4.1 常見的訪問Shell數(shù)組表達式 64
4.4.2 while循環(huán)實現(xiàn)Shell數(shù)組的遍歷 65
4.4.3 for循環(huán)實現(xiàn)Shell數(shù)組的遍歷 66
4.4.4 Shell數(shù)組的賦值 66
4.4.5 Shell數(shù)組的刪除 67
4.4.6 Shell數(shù)組的截取和替換 67
4.5 Shell數(shù)組腳本實戰(zhàn) 68
4.5.1 array數(shù)組實現(xiàn)性別統(tǒng)計 68
4.5.2 array數(shù)組統(tǒng)計不同類型Shell的數(shù)量 69
4.5.3 array數(shù)組統(tǒng)計TCP連接狀態(tài)數(shù)量 70
4.6 本章小結(jié) 71
4.7 習(xí)題 71
第5章 Shell編程中函數(shù)的用法 73
5.1 Shell函數(shù)的概念 73
5.2 Shell函數(shù)的語法 74
5.3 Shell函數(shù)的調(diào)用 74
5.3.1 Shell函數(shù)的傳參介紹 74
5.3.2 Shell函數(shù)的返回值介紹 75
5.4 Shell函數(shù)的應(yīng)用實戰(zhàn) 75
5.4.1 腳本中調(diào)用Shell函數(shù) 75
5.4.2 Shell函數(shù)的返回值 77
5.4.3 Shell函數(shù)的位置參數(shù) 78
5.4.4 Shell函數(shù)數(shù)組變量的傳參 78
5.4.5 Shell函數(shù)的返回輸出數(shù)組變量 79
5.5 Shell內(nèi)置命令和外部命令的區(qū)別 80
5.6 Shell內(nèi)置命令 80
5.6.1 循環(huán)結(jié)構(gòu)中break、continue、return和exit的區(qū)別 80
5.6.2 break、continue、exit命令執(zhí)行流程圖 81
5.6.3 break命令和continue命令案例實戰(zhàn) 82
5.6.4 shift命令 84
5.7 本章小結(jié) 84
5.8 習(xí)題 85
第6章 正則表達式 86
6.1 正則表達式概念 86
6.2 正則表達式元字符 87
6.3 正則表達式語法 88
6.4 正則表達式運算符優(yōu)先級 89
6.5 正則表達式匹配規(guī)則 90
6.5.1 基本模式匹配 90
6.5.2 字符簇 90
6.6 grep命令 92
6.6.1 grep命令簡介 92
6.6.2 grep命令語法格式 93
6.6.3 grep命令使用方式 93
6.6.4 grep命令結(jié)合正則表達式使用 95
6.6.5 grep命令結(jié)合正則表達式案例實戰(zhàn) 97
6.7 本章小結(jié) 100
6.8 習(xí)題 101
第7章 流編輯器sed 102
7.1 sed工作原理 102
7.2 sed語法格式及特點 103
7.2.1 sed語法格式 103
7.2.2 sed特點 104
7.3 sed用法 104
7.4 sed支持正則表達式 105
7.5 sed案例實戰(zhàn) 108
7.6 本章小結(jié) 114
7.7 習(xí)題 114
第8章 awk文本處理工具 116
8.1 awk簡介 116
8.2 awk工作流程 117
8.3 awk工作原理 117
8.4 awk語法格式 118
8.4.1 awk基本語法格式 118
8.4.2 awk語法選項實例 118
8.5 awk內(nèi)置變量 123
8.6 awk模式 128
8.7 awk流程控制 131
8.7.1 if條件語句 132
8.7.2 while循環(huán) 133
8.7.3 for循環(huán) 135
8.7.4 break命令、continue命令、exit命令 136
8.7.5 數(shù)組 137
8.8 awk中的函數(shù) 141
8.8.1 awk內(nèi)建函數(shù) 141
8.8.2 awk自定義函數(shù) 142
8.9 本章小結(jié) 144
8.10 習(xí)題 145
第9章 系統(tǒng)性能分析 146
9.1 常見的性能分析工具 146
9.1.1 vmstat命令 146
9.1.2 sar系統(tǒng)活動取樣命令 149
9.1.3 iostat性能分析命令 150
9.1.4 top性能監(jiān)控命令 152
9.1.5 ps實時監(jiān)控系統(tǒng)命令 155
9.1.6 netstat監(jiān)控網(wǎng)絡(luò)狀態(tài)命令 160
9.1.7 ifconfig查看地址命令 166
9.1.8 ss顯示連接狀態(tài)命令 170
9.1.9 free顯示內(nèi)存命令 176
9.1.10 df查看磁盤占用命令 178
9.1.11 dstat動態(tài)顯示系統(tǒng)負載命令 181
9.1.12 iotop查看I/O命令 184
9.1.13 iftop實時監(jiān)控命令 185
9.2 項目系統(tǒng)資源性能瓶頸腳本 187
9.3 本章小結(jié) 197
9.4 習(xí)題 197
第10章 項目實戰(zhàn)集 199
10.1 服務(wù)器存活狀態(tài)腳本項目 199
10.2 Nginx日志分析項目 201
10.3 Zabbix信息收集項目 208
10.3.1 Zabbix監(jiān)控TCP狀態(tài)信息收集 208
10.3.2 Zabbix監(jiān)控MySQL狀態(tài)信息收集 210
10.3.3 Zabbix監(jiān)控內(nèi)存信息收集 213
10.4 多機部署MySQL數(shù)據(jù)庫項目 214
10.5 多機部署LNMP項目 216
10.6 本章小結(jié) 218
10.7 習(xí)題 218