第1章 Linux shell和基本指令 1
1.1 Linux和shell 2
1.2 Linux環境 8
1.2.1 Linux誕生 8
1.2.2 Linux的特徵 9
1.2.3 vi(m)編輯器 11
1.2.4 Linux中的文件和文件係統 12
1.3 shell腳本編程基礎知識 14
1.3.1 簡介 14
1.3.2 幫助頁麵 19
1.3.3 Linux默認指令格式 22
1.3.4 shell的編輯模式 22
1.3.5 指定變量和消息輸齣(printf、echo) 24
1.3.6 使用多重指令(;、&&、||) 25
1.3.7 曆史命令(.history、↓、↑、!) 26
1.4 Linux目錄操作 28
1.4.1 pwd:顯示當前工作目錄位置 29
1.4.2 ls:顯示當前文件和目錄內容 30
1.4.3 cd:切換工作目錄 37
1.4.4 less、more、cat:瀏覽文本文件 39
1.4.5 file:顯示文件類型 41
1.4.6 Linux的默認目錄結構 43
1.4.7 文件和目錄操作 44
1.5 I/O重定嚮和管道 55
1.5.1 標準輸齣 55
1.5.2 標準輸入 58
1.5.3 管道 60
1.5.4 過濾器 61
1.6 文件訪問權限 62
1.6.1 文件/目錄許可 63
1.6.2 chmod 64
1.6.3 chown、chgrp 69
1.6.4 lsattr、chattr 69
1.7 作業控製 71
1.7.1 bg 72
1.7.2 jobs、ps、kill 73
1.8 係統管理員指令總結 78
1.8.1 用戶和組 78
1.8.2 終端 85
1.8.3 信息與統計 88
1.8.4 係統日誌 96
1.8.5 作業控製 98
1.8.6 進程管理和啓動 103
1.8.7 網絡 106
1.8.8 文件係統 109
1.8.9 備份 121
1.8.10 係統資源 121
1.8.11 模塊 124
1.8.12 其他指令 125
第2章 shell腳本示例解析 130
2.1 Linux啓動過程和登錄shell 131
2.1.1 Linux啓動、終止與重啓 131
2.1.2 shell初始化文件 133
2.2 命令行解析 140
2.3 指令類型 140
2.4 進程與shell 142
2.4.1 運行中的進程類型 142
2.4.2 係統調用 143
2.4.3 進程創建和係統調用 145
2.5 變量(Bourne shell) 150
2.5.1 變量類型 150
2.5.2 生成變量 158
2.5.3 局部變量轉為環境變量 159
2.5.4 預定義變量 160
2.5.5 特殊參數變量 163
2.6 Bourne shell 165
2.6.1 shbang行 165
2.6.2 注釋 165
2.6.3 通配符 165
2.6.4 顯示器顯示 166
2.6.5 局部變量 166
2.6.6 全局變量 166
2.6.7 從變量讀取值 167
2.6.8 讀取用戶輸入信息 167
2.6.9 參數 168
2.6.10 數組 168
2.6.11 替換命令 168
2.6.12 算術運算 169
2.6.13 運算符 169
2.6.14 條件語句 169
2.6.15 循環語句 171
2.6.16 文件測試 172
2.6.17 函數 176
2.7 Bash shell語法和結構 176
2.7.1 Bash shell介紹 176
2.7.2 Bash shell環境及初始化文件 178
2.7.3 Bash shell選項設置命令set、shopt 184
2.7.4 shell提示符 188
2.7.5 搜索路徑 190
2.7.6 hash命令 191
2.7.7 source或dot(.)命令 192
2.8 命令行 192
2.8.1 命令處理順序 192
2.8.2 內置命令和help命令 193
2.8.3 改變命令行處理順序 199
2.8.4 終止狀態 201
2.8.5 命令行中的多個指令 202
2.8.6 命令整閤 203
2.8.7 執行命令條件 203
2.8.8 通過後颱執行命令 204
2.9 作業控製 204
2.10 命令行快捷方式 207
2.10.1 完成命令和文件名 207
2.10.2 曆史 207
2.10.3 訪問曆史文件的命令 208
2.10.4 命令行的編輯 214
2.11 彆名 217
2.11.1 彆名目錄 217
2.11.2 創建彆名 217
2.11.3 刪除彆名 218
2.12 操作目錄棧 219
2.12.1 dirs命令 219
2.12.2 pushd和popd命令 219
2.13 元字符集 220
2.14 替換文件名 221
2.14.1 星號(*) 221
2.14.2 問號(?) 222
2.14.3 方括號([ ]) 222
2.14.4 花括號擴展({ }) 223
2.14.5 轉義元字符() 223
2.14.6 波浪綫(~)和連字符(-)擴展 224
2.14.7 通配符管理 224
2.14.8 擴展文件名通配 225
2.15 變量(Bash shell) 226
2.15.1 變量類型 226
2.15.2 變量名 227
2.15.3 declare命令 227
2.15.4 局部變量和使用範圍 227
2.15.5 環境變量 229
2.15.6 清除變量設置 235
2.15.7 顯示變量值 236
2.15.8 變量擴展修飾符 237
2.15.9 截取字符串的變量擴展名 239
2.15.10 位置參數 240
2.15.11 其他特殊變量 242
2.16 引用符號 242
2.16.1 反斜杠() 243
2.16.2 單引號(' ') 244
2.16.3 雙引號(" ") 244
2.17 替換命令 245
2.18 算數擴展 247
2.19 shell擴展順序 247
2.20 數組 248
2.21 函數 249
2.21.1 函數定義 249
2.21.2 清除函數目錄和設置 251
2.22 標準I/O和重定嚮 251
2.23 管道 257
2.24 shell調用選項 260
第3章 正則錶達式和模式檢索 263
3.1 正則錶達式 264
3.2 正則錶達式的元字符集 264
第4章 grep模式檢索 272
4.1 grep 273
4.2 egrep 281
4.3 fgrep 282
第5章 sed實用工具 284
5.1 sed 285
5.2 sed版本和幫助頁麵 285
5.3 sed工作原理 286
5.4 正則錶達式的使用 287
第6章 awk編程 289
6.1 awk 290
6.2 awk編程格式 291
6.2.1 從文件輸入 292
6.2.2 從指令輸入 292
6.2.3 awk工作原理 293
6.2.4 print函數 295
6.2.5 OFMT變量 296
6.2.6 printf函數 296
6.2.7 awk -f選項 298
6.2.8 記錄和字段 299
6.2.9 模式和動作 301
6.3 awk和正則錶達式 303
6.4 腳本文件中的awk 305
6.5 比較錶達式 306
6.5.1 條件錶達式 307
6.5.2 算術運算符 308
6.5.3 邏輯運算符和混閤模式 308
6.6 awk變量 309
6.6.1 數值與字符串常數 309
6.6.2 用戶自定義變量 310
6.6.3 BEGIN模式 314
6.6.4 END模式 314
6.7 awk重定嚮 315
6.7.1 輸齣重定嚮 315
6.7.2 輸入重定嚮 315
6.8 awk管道 317
6.9 條件語句 319
6.9.1 if條件語句 320
6.9.2 if/else 條件語句 320
6.9.3 if/else if/else條件語句 320
6.10 loop循環語句 321
6.10.1 while循環語句 322
6.10.2 for循環語句 322
6.10.3 管理循環語句 322
6.11 程序管理語句 323
6.11.1 next語句 323
6.11.2 exit函數 323
6.12 數組 324
6.12.1 針對關聯數組的子腳本 324
6.12.2 命令處理參數 329
6.13 awk內置函數(1) 331
6.14 awk內置數學函數 334
6.14.1 整數型函數 335
6.14.2 生成隨機數 335
6.15 用戶自定義函數 336
6.16 其他 338
6.16.1 固定寬度字段 338
6.16.2 多行記錄 340
6.17 awk內置函數(2) 341
6.17.1 字符串函數 341
6.17.2 時間函數 343
6.17.3 命令行參數 345
6.17.4 讀取輸入值 345
6.17.5 控製函數 346
6.17.6 用戶自定義函數 347
6.17.7 awk命令行選項 347
第7章 Bash shell編程 350
7.1 簡介 351
7.2 讀取用戶輸入 353
7.2.1 變量 353
7.2.2 read命令 354
7.3 算數運算 355
7.3.1 整數算數運算 355
7.3.2 實數型算數運算 359
7.4 位置參數和命令行參數 360
7.4.1 位置參數 360
7.4.2 set命令和位置參數 361
7.5 條件語句和分支語句 363
7.5.1 終止狀態 363
7.5.2 test命令和let命令 364
7.5.3 if/then/else命令 372
7.5.4 if/then/elif/then/else命令 373
7.5.5 文件測試 375
7.5.6 null命令 378
7.5.7 case命令 381
7.6 循環語句命令 384
7.6.1 for循環語句命令 384
7.6.2 $*和$@ 387
7.6.3 while循環語句命令 388
7.6.4 until循環語句命令 390
7.6.5 select命令和菜單 392
7.6.6 循環語句管理命令 394
7.6.7 I/O重定嚮和子shell 399
7.6.8 在後颱使用循環語句 401
7.6.9 IFS和循環語句 401
7.7 函數 402
7.7.1 解除函數設置 403
7.7.2 導齣函數 404
7.7.3 函數參數和返迴值 404
7.7.4 函數和source命令 406
7.8 捕獲信號 408
7.8.1 信號重置 410
7.8.2 忽略信號 410
7.8.3 trap目錄 410
7.8.4 trap和函數 411
7.9 調試Bash腳本 413
7.10 命令行 414
7.10.1 使用getops的命令行處理 414
7.10.2 特殊的getopts變量 416
7.10.3 eval命令和命令行解析 417
7.11 Bash選項 418
7.11.1 shell調用選項 418
7.11.2 set命令和選項 419
7.12 shell內置命令 420
7.13 shell對照錶 421
7.14 Linux啓動腳本分析 421
7.15 利用Bash腳本創建Text GUI 428
7.15.1 安裝dialog實用工具 428
7.15.2 dialog用法 432
7.15.3 消息框(MsgBox) 434
7.15.4 yes/no消息框 434
7.15.5 輸入框 435
7.15.6 單選列錶 436
7.15.7 編寫dialog示例 437
第8章 vi(m)編輯器和有用的實用工具 442
8.1 vi(m)編輯器:vi improved 443
8.1.1 vi(m) 443
8.1.2 vi(m)啓動 444
8.1.3 常用編輯命令 447
8.1.4 高級編輯命令 454
8.1.5 使用多個編輯窗口 465
8.2 vi(m)教程 467
8.3 有用的實用工具 481
8.3.1 cut 481
8.3.2 paste 482
8.3.3 join 483
8.3.4 tr 483
8.3.5 uniq 484
8.3.6 split 485
8.3.7 col 486
8.3.8 xarg 487
8.3.9 find 488
8.3.10 tee 492
索引 494
· · · · · · (
收起)