第1章 Shell腳本編程概述 1
1.1 Linux和Shell概述 2
1.1.1 Linux簡介 2
1.1.2 Shell簡介 5
1.1.3 Shell的種類和版本 7
1.2 Shell腳本編程的優勢 7
1.3 第一個Shell腳本例子 8
1.3.1 Shell腳本的基本元素 8
1.3.2 執行Shell腳本 10
1.4 本章小結 11
第2章 Linux文件係統和文本編輯器 12
2.1 用戶和用戶組管理 13
2.1.1 用戶管理常用命令 13
2.1.2 用戶組管理常用命令 17
2.2 文件和目錄操作 19
2.2.1 文件操作常用命令 20
2.2.2 目錄操作常用命令 25
2.2.3 文件和目錄權限管理 28
2.2.4 查找文件命令——find 32
2.3 文本編輯器 34
2.3.1 vim編輯器 34
2.3.2 Gedit編輯器 40
2.4 本章小結 41
2.5 上機提議 41
第3章 正則錶達式 43
3.1 正則錶達式基礎 44
3.2 正則錶達式的擴展 47
3.3 通配 48
3.4 grep命令 50
3.4.1 grep命令基本用法 51
3.4.2 grep和正則錶達式結閤使用的一組例子 57
3.4.3 grep命令族簡介 61
3.5 本章小結 62
3.6 上機提議 63
第4章 sed命令和awk編程 64
4.1 sed命令基本用法 65
4.2 sed命令的一組示例 67
4.2.1 sed命令選項的一組例子 67
4.2.2 sed文本定位的一組例子 70
4.2.3 sed基本編輯命令的一組例子 72
4.2.4 sed高級編輯命令的一組例子 80
4.3 awk編程 83
4.3.1 awk編程模型 84
4.3.2 awk調用方法 85
4.4 awk編程的一組例子 85
4.4.1 awk模式匹配 85
4.4.2 記錄和域 86
4.4.3 關係和布爾運算符 89
4.4.4 錶達式 91
4.4.5 係統變量 92
4.4.6 格式化輸齣 94
4.4.7 內置字符串函數 95
4.4.8 嚮awk腳本傳遞參數 97
4.4.9 條件語句和循環語句 99
4.4.10 數組 99
4.5 本章小結 103
4.6 上機提議 103
第5章 文件的排序、閤並和分割 105
5.1 sort命令 106
5.1.1 sort命令的基本用法 106
5.1.2 sort和awk的聯閤用法 110
5.2 uniq命令 112
5.3 join命令 115
5.4 cut命令 118
5.5 paste命令 119
5.6 split命令 122
5.7 tr命令 124
5.8 tar命令 127
5.9 本章小結 130
5.10 上機提議 130
第6章 變量和引用 133
6.1 變量 134
6.1.1 變量替換和賦值 134
6.1.2 無類型的Shell腳本變量 137
6.1.3 環境變量 138
6.1.4 位置參數 145
6.2 引用 147
6.2.1 全引用和部分引用 147
6.2.2 命令替換 149
6.2.3 轉義 151
6.3 本章小結 155
6.4 上機提議 155
第7章 退齣、測試、判斷及操作符 157
7.1 退齣狀態 158
7.2 測試 159
7.2.1 測試結構 159
7.2.2 整數比較運算符 159
7.2.3 字符串運算符 161
7.2.4 文件操作符 162
7.2.5 邏輯運算符 164
7.3 判斷 166
7.3.1 簡單if結構 167
7.3.2 exit命令 168
7.3.3 if/else結構 169
7.3.4 if/else語句嵌套 171
7.3.5 if/elif/else結構 174
7.3.6 case結構 177
7.4 運算符 179
7.4.1 算術運算符 180
7.4.2 位運算符 181
7.4.3 自增自減運算符 183
7.4.4 數字常量 183
7.5 本章小結 185
7.6 上機提議 185
第8章 循環與結構化命令 187
8.1 for循環 188
8.1.1 列錶for循環 188
8.1.2 不帶列錶for循環 192
8.1.3 類C風格的for循環 193
8.2 while循環 196
8.2.1 計數器控製的while循環 196
8.2.2 結束標記控製的while循環 198
8.2.3 標誌控製的while循環 200
8.2.4 命令行控製的while循環 202
8.3 until循環 203
8.4 嵌套循環 204
8.5 循環控製符 208
8.5.1 break循環控製符 208
8.5.2 continue循環控製符 211
8.6 select結構 213
8.7 本章小結 215
8.8 上機提議 215
第9章 變量的高級用法 217
9.1 內部變量 218
9.2 字符串處理 226
9.3 有類型變量 232
9.4 間接變量引用 235
9.5 bash數學運算 237
9.5.1 expr命令 238
9.5.2 bc運算器 239
9.6 本章小結 241
9.7 上機提議 241
第10章 I/O重定嚮 243
10.1 管道 244
10.1.1 管道簡介 244
10.1.2 cat和more命令 245
10.1.3 sed命令與管道 249
10.1.4 awk命令與管道 250
10.2 I/O重定嚮 253
10.2.1 文件標識符 253
10.2.2 I/O重定嚮符號及其用法 255
10.2.3 exec命令的用法 259
10.2.4 代碼塊重定嚮 262
10.3 命令行處理 265
10.3.1 命令行處理流程 266
10.3.2 eval命令 268
10.4 本章小結 271
10.5 上機提議 271
第11章 Linux/UNIX Shell類型與區彆 273
11.1 Linux/UNIX Shell起源與分類 274
11.2 dash簡介 275
11.3 tcsh簡介 277
11.4 Korn Shell簡介 282
11.5 本章小結 287
第12章 子Shell與進程處理 288
12.1 子Shell 289
12.1.1 內建命令 289
12.1.2 圓括號結構 292
12.2 Shell的限製模式 297
12.3 進程處理 299
12.3.1 進程和作業 301
12.3.2 作業控製 302
12.3.3 信號 307
12.3.4 trap命令 309
12.4 本章小結 312
12.5 上機提議 312
第13章 函數 314
13.1 函數的定義和基本知識 315
13.2 嚮函數傳遞參數 318
13.3 函數返迴值 321
13.4 函數調用 322
13.4.1 腳本放置多個函數 322
13.4.2 函數相互調用 324
13.4.3 一個函數調用多個函數 325
13.5 局部變量和全局變量 327
13.6 函數遞歸 328
13.6.1 使用局部變量的遞歸 329
13.6.2 不使用局部變量的遞歸 330
13.7 本章小結 332
13.8 上機提議 333
第14章 彆名、列錶及數組 335
14.1 彆名 336
14.2 列錶 339
14.3 數組 342
14.3.1 數組的基本用法 342
14.3.2 數組的特殊用法 346
14.3.3 用數組實現簡單的數據結構 350
14.4 本章小結 356
14.5 上機提議 356
第15章 一些混雜的主題 359
15.1 腳本編寫風格 360
15.1.1 縮進 360
15.1.2 {}的格式 362
15.1.3 空格和空行的用法 362
15.1.4 判斷和循環的編程風格 363
15.1.5 命名規範 364
15.1.6 注釋風格 365
15.2 腳本優化 366
15.2.1 簡化腳本 366
15.2.2 保持腳本的靈活性 368
15.2.3 給用戶足夠的提示 369
15.3 Linux中的特殊命令 371
15.3.1 shift命令 371
15.3.2 getopts命令 374
15.4 交互式和非交互式Shell腳本 376
15.4.1 非交互式Shell腳本 376
15.4.2 交互式Shell腳本 378
15.5 /dev文件係統 379
15.5.1 /dev文件係統基礎知識 380
15.5.2 /dev/zero僞設備 381
15.5.3 /dev/null僞設備 383
15.6 /proc文件係統 384
15.6.1 使用/proc/sys優化係統參數 386
15.6.2 查看運行中的進程信息 387
15.6.3 查看文件係統信息 388
15.6.4 查看網絡信息 389
15.7 Shell包裝 390
15.8 帶顔色的腳本 392
15.9 Linux腳本安全 398
15.9.1 使用shc工具加密Shell腳本 398
15.9.2 Linux Shell腳本編寫的病毒 399
15.9.3 Linux Shell中的木馬 400
15.10 本章小結 401
15.1 上機提議 401
第16章 Shell腳本調試技術 403
16.1 Shell腳本調試概述 404
16.2 Shell腳本調試技術 406
16.2.1 使用trap命令 406
16.2.2 使用tee命令 409
16.2.3 調試鈎子 411
16.2.4 使用Shell選項 412
16.3 本章小結 417
16.4 上機提議 417
第17章 bash Shell編程範例 420
17.1 將文本文件轉化為HTML文件 421
17.2 查找文本中n個齣現頻率最高的單詞 425
17.3 僞隨機數的産生和應用 427
17.4 crontab的設置和應用 431
17.5 使用MySQL數據庫 434
17.5.1 MySQL基礎 434
17.5.2 Shell腳本使用MySQL 437
17.6 Linux服務器性能監控係統 442
17.6.1 Ganglia簡介及安裝 443
17.6.2 提取服務器性能參數名稱及數據 448
17.6.3 動態更新服務器監控數據 455
17.7 本章小結 457
17.8 上機提議 457
附錄 459
附錄A POSIX標準簡介 460
附錄B 常用ASCII碼對照錶 461
附錄C Linux信號及其意義 466
附錄D bash內建變量索引 467
附錄E bash內建命令索引 469
參考文獻 472
· · · · · · (
收起)