1. 程式人生 > >《Linux命令行與shell腳本編程大全 第3版》

《Linux命令行與shell腳本編程大全 第3版》

shadow return 創建 gnu top 實例 正則 數據庫 cli

第一部分 Linux 命令行

第1章 初識Linux she
1.1  什麽是Linux 2
1.1.1 深入探究Linux 內核 3
1.1.2 GNU 工具 6
1.1.3 Linux 桌面環境 8
1.2  Linux 發行版 12
1.2.1 核心Linux 發行版 13
1.2.2 特定用途的Linux 發行版 13
1.2.3 Linux LiveCD 14
1.3  小結 15

第2章 走進shell
2.1  進入命令行 16
2.1.1 控制臺終端 17
2.1.2 圖形化終端 17
2.2  通過Linux 控制臺終端訪問CLI 18
2.3  通過圖形化終端仿真訪問CLI 20
2.4  使用GNOME Terminal 仿真器 21

2.4.1 訪問GNOME Terminal 21
2.4.2 菜單欄 22
2.5  使用Konsole Terminal 仿真器 25
2.5.1 訪問Konsole Terminal 25
2.5.2 菜單欄 26
2.6  使用xterm 終端仿真器 29
2.6.1 訪問xterm 30
2.6.2 命令行參數 30
2.7  小結 32

第3章 基本的bash shell 命令
3.1  啟動shell 33
3.2  shell 提示符 34
3.3  bash 手冊 34
3.4  瀏覽文件系統 37
3.4.1 Linux 文件系統 37
3.4.2 遍歷目錄 40
3.5  文件和目錄列表 42
3.5.1 基本列表功能 42
3.5.2 顯示長列表 44
3.5.3 過濾輸出列表 45
3.6  處理文件 46
3.6.1 創建文件 47
3.6.2 復制文件 47
3.6.3 制表鍵自動補全 50
3.6.4 鏈接文件 50
3.6.5 重命名文件 52
3.6.6 刪除文件 54
3.7  處理目錄 55
3.7.1 創建目錄 55
3.7.2 刪除目錄 55
3.8  查看文件內容 58
3.8.1 查看文件類型 58
3.8.2 查看整個文件 59
3.8.3 查看部分文件 61
3.9  小結 63

第4章 更多的bash shell 命令
4.1  監測程序 64
4.1.1 探查進程 64
4.1.2 實時監測進程 70
4.1.3 結束進程 72
4.2  監測磁盤空間 73
4.2.1 掛載存儲媒體 73
4.2.2 使用df 命令 76
4.2.3 使用du 命令 77
4.3  處理數據文件 78
4.3.1 排序數據 78
4.3.2 搜索數據 81
4.3.3 壓縮數據 83
4.3.4 歸檔數據 84
4.4  小結 85

第5章 理解shell
5.1  shell 的類型 86
5.2  shell 的父子關系 88
5.2.1 進程列表 91
5.2.2 別出心裁的子shell 用法 93
5.3  理解shell 的內建命令 96
5.3.1 外部命令 96
5.3.2 內建命令 97
5.4  小結 101

第6章 使用Linux 環境變量
6.1  什麽是環境變量 103
6.1.1 全局環境變量 104
6.1.2 局部環境變量 105
6.2  設置用戶定義變量 106
6.2.1 設置局部用戶定義變量 106
6.2.2 設置全局環境變量 107
6.3  刪除環境變量 109
6.4  默認的shell 環境變量 110
6.5  設置PATH 環境變量 113
6.6  定位系統環境變量 114
6.6.1 登錄shell 115
6.6.2 交互式shell 進程 119
6.6.3 非交互式shell 120
6.6.4 環境變量持久化 121
6.7  數組變量 121
6.8  小結 122

第7章 理解Linux 文件權限
7.1  Linux 的安全性 124
7.1.1 /etc/passwd 文件 124
7.1.2 /etc/shadow 文件 126
7.1.3 添加新用戶 127
7.1.4 刪除用戶 129
7.1.5 修改用戶 130
7.2  使用Linux 組 132
7.2.1 /etc/group 文件 133
7.2.2 創建新組 133
7.2.3 修改組 134
7.3  理解文件權限 135
7.3.1 使用文件權限符 135
7.3.2 默認文件權限 136
7.4  改變安全性設置 138
7.4.1 改變權限 138
7.4.2 改變所屬關系 139
7.5  共享文件 140
7.6  小結 142

第8章 管理文件系統
8.1  探索Linux 文件系統 143
8.1.1 基本的Linux 文件系統 143
8.1.2 日誌文件系統 145
8.1.3 寫時復制文件系統 147
8.2  操作文件系統 147
8.2.1 創建分區 147
8.2.2 創建文件系統 151
8.2.3 文件系統的檢查與修復 153
8.3  邏輯卷管理 154
8.3.1 邏輯卷管理布局 154
8.3.2 Linux 中的LVM 155
8.3.3 使用Linux LVM 156
8.4  小結 162

第9章 安裝軟件程序
9.1  包管理基礎 163
9.2  基於Debian 的系統 164
9.2.1 用aptitude 管理軟件包 164
9.2.2 用aptitude 安裝軟件包 166
9.2.3 用aptitude 更新軟件 168
9.2.4 用aptitude 卸載軟件 169
9.2.5 aptitude 倉庫 169
9.3  基於Red Hat 的系統 171
9.3.1 列出已安裝包 171
9.3.2 用yum 安裝軟件 173
9.3.3 用yum 更新軟件 174
9.3.4 用yum 卸載軟件 174
9.3.5 處理損壞的包依賴關系 175
9.3.6 yum 軟件倉庫 176
9.4  從源碼安裝 177
9.5  小結 180

第10章 使用編輯器
10.1  vim 編輯器 181
10.1.1 檢查vim 軟件包 181
10.1.2 vim 基礎 183
10.1.3 編輯數據 185
10.1.4 復制和粘貼 185
10.1.5 查找和替換 186
10.2  nano 編輯器 187
10.3  emacs 編輯器 188
10.3.1 檢查emacs 軟件包 189
10.3.2 在控制臺中使用emacs 190
10.3.3 在GUI 環境中使用emacs 195
10.4  KDE 系編輯器 196
10.4.1 KWrite 編輯器 196
10.4.2 Kate 編輯器 200
10.5  GNOME 編輯器 202
10.5.1 啟動gedit 203
10.5.2 基本的gedit 功能 203
10.5.3 設定偏好設置 204
10.6  小結 206

第二部分 shell 腳本編程基礎

第11章 構建基本腳本
11.1  使用多個命令 210
11.2  創建shell 腳本文件 211
11.3  顯示消息 212
11.4  使用變量 214
11.4.1 環境變量 214
11.4.2 用戶變量 215
11.4.3 命令替換 216
11.5  重定向輸入和輸出 218
11.5.1 輸出重定向 218
11.5.2 輸入重定向 219
11.6  管道 220
11.7  執行數學運算 222
11.7.1 expr 命令 223
11.7.2 使用方括號 224
11.7.3 浮點解決方案 225
11.8  退出腳本 228
11.8.1 查看退出狀態碼 228
11.8.2 exit 命令 229
11.9  小結 231

第12章 使用結構化命令
12.1  使用if-then 語句 232
12.2  if-then-else 語句 235
12.3  嵌套if 235
12.4  test 命令 238
12.4.1 數值比較 240
12.4.2 字符串比較 242
12.4.3 文件比較 246
12.5  復合條件測試 254
12.6  if-then 的高級特性 255
12.6.1 使用雙括號 255
12.6.2 使用雙方括號 256
12.7  case 命令 257
12.8  小結 258

第13章 更多的結構化命令
13.1  for 命令 260
13.1.1 讀取列表中的值 261
13.1.2 讀取列表中的復雜值 262
13.1.3 從變量讀取列表 263
13.1.4 從命令讀取值 264
13.1.5 更改字段分隔符 265
13.1.6 用通配符讀取目錄 266
13.2  C 語言風格的for 命令 268
13.2.1 C 語言的for 命令 268
13.2.2 使用多個變量 269
13.3  while 命令 270
13.3.1 while 的基本格式 270
13.3.2 使用多個測試命令 271
13.4  until 命令 272
13.5  嵌套循環 274
13.6  循環處理文件數據 276
13.7  控制循環 277
13.7.1 break 命令 277
13.7.2 continue 命令 280
13.8  處理循環的輸出 282
13.9  實例 283
13.9.1 查找可執行文件 284
13.9.2 創建多個用戶賬戶 285
13.10  小結 286

第14章 處理用戶輸入
14.1  命令行參數 287
14.1.1 讀取參數 287
14.1.2 讀取腳本名 289
14.1.3 測試參數 291
14.2  特殊參數變量 292
14.2.1 參數統計 292
14.2.2 抓取所有的數據 294
14.3  移動變量 295
14.4  處理選項 296
14.4.1 查找選項 297
14.4.2 使用getopt 命令 300
14.4.3 使用更高級的getopts 302
14.5  將選項標準化 305
14.6  獲得用戶輸入 306
14.6.1 基本的讀取 306
14.6.2 超時 307
14.6.3 隱藏方式讀取 308
14.6.4 從文件中讀取 309
14.7  小結 309

第15章 呈現數據
15.1  理解輸入和輸出 311
15.1.1 標準文件描述符 311
15.1.2 重定向錯誤 313
15.2  在腳本中重定向輸出 315
15.2.1 臨時重定向 315
15.2.2 永久重定向 316
15.3  在腳本中重定向輸入 317
15.4  創建自己的重定向 317
15.4.1 創建輸出文件描述符 318
15.4.2 重定向文件描述符 318
15.4.3 創建輸入文件描述符 319
15.4.4 創建讀寫文件描述符 320
15.4.5 關閉文件描述符 321
15.5  列出打開的文件描述符 322
15.6  阻止命令輸出 323
15.7  創建臨時文件 324
15.7.1 創建本地臨時文件 324
15.7.2 在/tmp 目錄創建臨時文件 325
15.7.3 創建臨時目錄 326
15.8  記錄消息 327
15.9  實例 328
15.10  小結 330

第16章 控制腳本
16.1  處理信號 331
16.1.1 重溫Linux 信號 331
16.1.2 生成信號 332
16.1.3 捕獲信號 334
16.1.4 捕獲腳本退出 335
16.1.5 修改或移除捕獲 335
16.2  以後臺模式運行腳本 338
16.2.1 後臺運行腳本 338
16.2.2 運行多個後臺作業 340
16.3  在非控制臺下運行腳本 341
16.4  作業控制 342
16.4.1 查看作業 342
16.4.2 重啟停止的作業 344
16.5  調整謙讓度 345
16.5.1 nice 命令 345
16.5.2 renice 命令 346
16.6  定時運行作業 346
16.6.1 用at 命令來計劃執行作業 347
16.6.2 安排需要定期執行的腳本 349
16.6.3 使用新shell 啟動腳本 352
16.7  小結 353

第三部分 高級shell 腳本編程

第17章 創建函數
17.1  基本的腳本函數 356
17.1.1 創建函數 357
17.1.2 使用函數 357
17.2  返回值 359
17.2.1 默認退出狀態碼 359
17.2.2 使用return 命令 360
17.2.3 使用函數輸出 361
17.3  在函數中使用變量 362
17.3.1 向函數傳遞參數 362
17.3.2 在函數中處理變量 364
17.4  數組變量和函數 366
17.4.1 向函數傳數組參數 366
17.4.2 從函數返回數組 368
17.5  函數遞歸 369
17.6  創建庫 370
17.7  在命令行上使用函數 371
17.7.1 在命令行上創建函數 372
17.7.2 在.bashrc 文件中定義函數 372
17.8  實例 374
17.8.1 下載及安裝 374
17.8.2 構建庫 374
17.8.3 shtool 庫函數 376
17.8.4 使用庫 376
17.9  小結 377

第18章 圖形化桌面環境中的腳本編程
18.1  創建文本菜單 378
18.1.1 創建菜單布局 379
18.1.2 創建菜單函數 380
18.1.3 添加菜單邏輯 380
18.1.4 整合shell 腳本菜單 381
18.1.5 使用select 命令 382
18.2  制作窗口 384
18.2.1 dialog 包 384
18.2.2 dialog 選項 389
18.2.3 在腳本中使用dialog 命令 391
18.3  使用圖形 393
18.3.1 KDE 環境 393
18.3.2 GNOME 環境 396
18.4  小結 400

第19章 初識sed 和gawk
19.1  文本處理 401
19.1.1 sed 編輯器 401
19.1.2 gawk 程序 404
19.2  sed 編輯器基礎 410
19.2.1 更多的替換選項 410
19.2.2 使用地址 411
19.2.3 刪除行 414
19.2.4 插入和附加文本 415
19.2.5 修改行 417
19.2.6 轉換命令 418
19.2.7 回顧打印 419
19.2.8 使用sed 處理文件 421
19.3  小結 423

第20章 正則表達式
20.1  什麽是正則表達式 424
20.1.1 定義 424
20.1.2 正則表達式的類型 425
20.2  定義BRE 模式 426
20.2.1 純文本 426
20.2.2 特殊字符 427
20.2.3 錨字符 428
20.2.4 點號字符 430
20.2.5 字符組 430
20.2.6 排除型字符組 432
20.2.7 區間 433
20.2.8 特殊的字符組 434
20.2.9 星號 434
20.3  擴展正則表達式 436
20.3.1 問號 436
20.3.2 加號 437
20.3.3 使用花括號 437
20.3.4 管道符號 438
20.3.5 表達式分組 439
20.4  正則表達式實戰 439
20.4.1 目錄文件計數 440
20.4.2 驗證電話號碼 441
20.4.3 解析郵件地址 443
20.5  小結 444

第21章 sed 進階
21.1  多行命令 445
21.1.1 next 命令 446
21.1.2 多行刪除命令 449
21.1.3 多行打印命令 449
21.2  保持空間 450
21.3  排除命令 451
21.4  改變流 454
21.4.1 分支 454
21.4.2 測試 455
21.5  模式替代 456
21.5.1 &符號 457
21.5.2 替代單獨的單詞 457
21.6  在腳本中使用sed 458
21.6.1 使用包裝腳本 458
21.6.2 重定向sed 的輸出 459
21.7  創建sed 實用工具 460
21.7.1 加倍行間距 460
21.7.2 對可能含有空白行的文件加倍行間距 460
21.7.3 給文件中的行編號 461
21.7.4 打印末尾行 462
21.7.5 刪除行 463
21.7.6 刪除HTML 標簽 466
21.8  小結 467

第22章 gawk 進階
22.1  使用變量 469
22.1.1 內建變量 469
22.1.2 自定義變量 474
22.2  處理數組 476
22.2.1 定義數組變量 476
22.2.2 遍歷數組變量 477
22.2.3 刪除數組變量 478
22.3  使用模式 478
22.3.1 正則表達式 478
22.3.2 匹配操作符 479
22.3.3 數學表達式 480
22.4  結構化命令 480
22.4.1 if 語句 480
22.4.2 while 語句 482
22.4.3 do-while 語句 483
22.4.4 for 語句 484
22.5  格式化打印 484
22.6  內建函數 487
22.6.1 數學函數 487
22.6.2 字符串函數 488
22.6.3 時間函數 490
22.7  自定義函數 490
22.7.1 定義函數 490
22.7.2 使用自定義函數 491
22.7.3 創建函數庫 491
22.8  實例 492
22.9  小結 493

第23章 使用其他shell
23.1  什麽是dash shell 495
23.2  dash shell 的特性 496
23.2.1 dash 命令行參數 496
23.2.2 dash 環境變量 497
23.2.3 dash 內建命令 499
23.3  dash 腳本編程 500
23.3.1 創建dash 腳本 500
23.3.2 不能使用的功能 500
23.4  zsh shell 502
23.5  zsh shell 的組成 503
23.5.1 shell 選項 503
23.5.2 內建命令 504
23.6  zsh 腳本編程 508
23.6.1 數學運算 508
23.6.2 結構化命令 509
23.6.3 函數 510
23.7  小結 510

第四部分 創建實用的腳本

第24章 編寫簡單的腳本實用工具
24.1  歸檔 514
24.2  管理用戶賬戶 523
24.2.1 需要的功能 523
24.2.2 創建腳本 530
24.2.3 運行腳本 535
24.3  監測磁盤空間 537
24.3.1 需要的功能 537
24.3.2 創建腳本 540
24.3.3 運行腳本 541
24.4  小結 542

第25章 創建與數據庫、Web及電子郵件相關的腳本
25.1  MySQL 數據庫 543
25.1.1 使用MySQL 543
25.1.2 在腳本中使用數據庫 552
25.2  使用Web 555
25.2.1 安裝Lynx 556
25.2.2 lynx 命令行 557
25.2.3 Lynx 配置文件 558
25.2.4 從Lynx 中獲取數據 559
25.3  使用電子郵件 561
25.4  小結 564

第26章 一些小有意思的腳本
26.1  發送消息 565
26.1.1 功能分析 565
26.1.2 創建腳本 568
26.2  獲取格言 573
26.2.1 功能分析 574
26.2.2 創建腳本 577
26.3  編造借口 583
26.3.1 功能分析 583
26.3.2 創建腳本 586
26.4  小結 587

附錄A bash 命令快速指南 589
附錄B sed 和gawk 快速指南 597

《Linux命令行與shell腳本編程大全 第3版》