天天看點

《Linux指令行與Shell腳本程式設計大全第2版.布盧姆》pdf

下載下傳位址:網盤下載下傳

内容簡介  · · · · · ·

本書是一本關于Linux 指令行與shell 腳本程式設計的全面教程。全書分為四部分:第一部分介紹Linuxshell 指令行;第二部分介紹shell 腳本程式設計基礎;第三部分深入探讨shell 腳本程式設計的進階内容;第四部分介紹如何在現實環境中使用shell 腳本。本書不僅涵蓋了詳盡的動手教程和現實世界中的實用資訊,還提供了與所學内容相關的參考資訊和背景資料。

本書内容全面,語言簡練,示例豐富,适合于Linux 系統管理者及Linux 愛好者閱讀參考。

作者簡介  · · · · · ·

Richard Blum 系統和網絡管理者,已經在IT行業工作了22年多。他管理過UNIX、Linux、Novell和微軟伺服器,用Linux shell腳本進行過自動化網絡監測,并在大多數常見的Linux shell環境中寫過腳本。他還是一名網絡課程講師,美國各地的多所大學和學院都采用他的Linux基礎課程。除本書外,Richard還著有Professional Linux Programming等書。

Christine Bresnahan 系統管理者,已經在IT行業工作了近30年。目前在印第安納波利斯市的常春藤技術社群學院擔任兼職教授,講授Linux系統管理、Linux安全和Windows安全等課程。

武海峰 Linux系統工程師,興趣集中在GNU/Linux和移動互聯應用,熱衷于開源軟體。曾在商業Linux廠商任職,從事移動裝置作業系統內建和商業Linux發行版內建工作。

目錄  · · · · · ·

目  錄

第一部分 Linux 指令行

第1章 初識Linux shell 2

1.1 什麼是Linux 2

1.1.1 深入探究Linux核心 3

1.1.2 GNU工具鍊 10

1.1.3 Linux桌面環境 11

1.2 Linux發行版 16

1.2.1 核心Linux發行版 16

1.2.2 專業Linux發行版 17

1.2.3 Linux LiveCD 17

1.3 小結 19

第2章 走進shell 20

2.1 終端模拟 20

2.1.1 圖形功能 21

2.1.2 鍵盤 24

2.2 terminfo資料庫 25

2.3 Linux控制台 28

2.4 xterm終端 29

2.4.1 指令行參數 30

2.4.2 xterm主菜單 31

2.4.3 VT選項菜單 32

2.4.4 VT字型菜單 34

2.5 Konsole終端 36

2.5.1 指令行參數 36

2.5.2 标簽式視窗會話 37

2.5.3 配置檔案 38

2.5.4 菜單欄 39

2.6 GNOME Terminal 43

2.6.1 指令行參數 43

2.6.2 标簽 43

2.6.3 菜單欄 44

2.7 小結 47

第3章 基本的bash shell指令 48

3.1 啟動shell 48

3.2 shell提示符 49

3.3 bash手冊 51

3.4 浏覽檔案系統 52

3.4.1 Linux檔案系統 52

3.4.2 周遊目錄 54

3.5 檔案和目錄清單 56

3.5.1 基本清單功能 56

3.5.2 修改輸出資訊 57

3.5.3 完整的參數清單 58

3.5.4 過濾輸出清單 60

3.6 處理檔案 61

3.6.1 建立檔案 61

3.6.2 複制檔案 61

3.6.3 連結檔案 63

3.6.4 重命名檔案 65

3.6.5 删除檔案 65

3.7 處理目錄 67

3.7.1 建立目錄 67

3.7.2 删除目錄 67

3.8 檢視檔案内容 68

3.8.1 檢視檔案統計資訊 68

3.8.2 檢視檔案類型 69

3.8.3 檢視整個檔案 69

3.8.4 檢視部分檔案 72

3.9 小結 73

第4章 更多的bash shell指令 75

4.1 監測程式 75

4.1.1 探查程序 75

4.1.2 實時監測程序 82

4.1.3 結束程序 84

4.2 監測磁盤空間 85

4.2.1 挂載存儲媒體 86

4.2.2 使用df指令 89

4.2.3 使用du指令 89

4.3 處理資料檔案 90

4.3.1 排序資料 91

4.3.2 搜尋資料 94

4.3.3 壓縮資料 96

4.3.4 歸檔資料 99

4.4 小結 100

第5章 使用Linux環境變量 101

5.1 什麼是環境變量 101

5.1.1 全局環境變量 102

5.1.2 局部環境變量 103

5.2 設定環境變量 106

5.2.1 設定局部環境變量 106

5.2.2 設定全局環境變量 107

5.3 删除環境變量 107

5.4 預設shell環境變量 108

5.5 設定PATH環境變量 111

5.6 定位系統環境變量 112

5.6.1 登入shell 112

5.6.2 互動式shell 116

5.6.3 非互動式shell 118

5.7 可變數組 118

5.8 使用指令别名 119

5.9 小結 120

第6章 了解Linux檔案權限 122

6.1 Linux的安全性 122

6.1.1 /etc/passwd檔案 122

6.1.2 /etc/shadow檔案 124

6.1.3 添加新使用者 125

6.1.4 删除使用者 127

6.1.5 修改使用者 128

6.2 使用Linux組 130

6.2.1 /etc/group檔案 131

6.2.2 建立新組 131

6.2.3 修改組 132

6.3 了解檔案權限 133

6.3.1 使用檔案權限符 133

6.3.2 預設檔案權限 134

6.4 改變安全性設定 136

6.4.1 改變權限 136

6.4.2 改變所屬關系 137

6.5 共享檔案 138

6.6 小結 139

第7章 管理檔案系統 141

7.1 探索Linux檔案系統 141

7.1.1 基本的Linux檔案系統 141

7.1.2 日志檔案系統 142

7.1.3 擴充的Linux日志檔案系統 143

7.2 操作檔案系統 145

7.2.1 建立分區 145

7.2.2 建立檔案系統 147

7.2.3 如果出錯了 149

7.3 邏輯卷管理器 150

7.3.1 邏輯卷管理布局 150

7.3.2 Linux中的LVM 151

7.3.3 使用Linux LVM 153

7.4 小結 157

第8章 安裝軟體程式 158

8.1 包管理基礎 158

8.2 基于Debian的系統 159

8.2.1 用aptitude管理軟體包 159

8.2.2 用aptitude安裝軟體包 161

8.2.3 用aptitude更新軟體 163

8.2.4 用aptitude解除安裝軟體 164

8.2.5 aptitude庫 164

8.3 基于Red Hat的系統 166

8.3.1 列出已安裝包 166

8.3.2 用yum安裝軟體 167

8.3.3 用yum更新軟體 168

8.3.4 用yum解除安裝軟體 169

8.3.5 處理損壞的包依賴關系 169

8.3.6 yum軟體庫 171

8.4 從源碼安裝 172

8.5 小結 174

第9章 使用編輯器 176

9.1 Vim編輯器 176

9.1.1 Vim基礎 176

9.1.2 編輯資料 178

9.1.3 複制和粘貼 179

9.1.4 查找和替換 180

9.2 Emacs編輯器 180

9.2.1 在控制台上使用Emacs 180

9.2.2 在X Window中使用Emacs 185

9.3 KDE系編輯器 186

9.3.1 KWrite編輯器 186

9.3.2 Kate編輯器 190

9.4 GNOME編輯器 192

9.4.1 啟動gedit 192

9.4.2 基本的gedit功能 193

9.4.3 設定偏好設定 194

9.5 小結 196

第二部分 shell腳本程式設計基礎

第10章 建構基本腳本 200

10.1 使用多個指令 200

10.2 建立shell腳本檔案 201

10.3 顯示消息 202

10.4 使用變量 203

10.4.1 環境變量 204

10.4.2 使用者變量 205

10.4.3 反引号 206

10.5 重定向輸入和輸出 207

10.5.1 輸出重定向 208

10.5.2 輸入重定向 208

10.6 管道 209

10.7 執行數學運算 212

10.7.1 expr指令 212

10.7.2 使用方括号 214

10.7.3 浮點解決方案 215

10.8 退出腳本 218

10.8.1 檢視退出狀态碼 218

10.8.2 exit指令 219

10.9 小結 221

第11章 使用結構化指令 222

11.1 使用if-then語句 222

11.2 if-then-else語句 224

11.3 嵌套if 225

11.4 test指令 226

11.4.1 數值比較 227

11.4.2 字元串比較 228

11.4.3 檔案比較 232

11.5 複合條件測試 239

11.6 if-then的進階特性 240

11.6.1 使用雙尖括号 240

11.6.2 使用雙方括号 241

11.7 case指令 242

11.8 小結 243

第12章 更多的結構化指令 245

12.1 for指令 245

12.1.1 讀取清單中的值 246

12.1.2 讀取清單中的複雜值 247

12.1.3 從變量讀取清單 248

12.1.4 從指令讀取值 249

12.1.5 更改字段分隔符 250

12.1.6 用通配符讀取目錄 251

12.2 C語言風格的for指令 253

12.2.1 C語言的for指令 253

12.2.2 使用多個變量 255

12.3 while指令 255

12.3.1 while的基本格式 255

12.3.2 使用多個測試指令 256

12.4 until指令 258

12.5 嵌套循環 259

12.6 循環處理檔案資料 261

12.7 控制循環 262

12.7.1 break指令 262

12.7.2 continue指令 265

12.8 處理循環的輸出 267

12.9 小結 269

第13章 處理使用者輸入 270

13.1 指令行參數 270

13.1.1 讀取參數 270

13.1.2 讀取程式名 272

13.1.3 測試參數 274

13.2 特殊參數變量 274

13.2.1 參數計數 274

13.2.2 抓取所有的資料 276

13.3 移動變量 277

13.4 處理選項 278

13.4.1 查找選項 279

13.4.2 使用getopt指令 282

13.4.3 使用更進階的getopts 284

13.5 将選項标準化 286

13.6 獲得使用者輸入 287

13.6.1 基本的讀取 287

13.6.2 逾時 289

13.6.3 隐藏方式讀取 290

13.6.4 從檔案中讀取 290

13.7 小結 291

第14章 呈現資料 293

14.1 了解輸入和輸出 293

14.1.1 标準檔案描述符 293

14.1.2 重定向錯誤 295

14.2 在腳本中重定向輸出 297

14.2.1 臨時重定向 297

14.2.2 永久重定向 298

14.3 在腳本中重定向輸入 299

14.4 建立自己的重定向 299

14.4.1 建立輸出檔案描述符 300

14.4.2 重定向檔案描述符 300

14.4.3 建立輸入檔案描述符 301

14.4.4 建立讀寫檔案描述符 302

14.4.5 關閉檔案描述符 303

14.5 列出打開的檔案描述符 304

14.6 阻止指令輸出 305

14.7 建立臨時檔案 306

14.7.1 建立本地臨時檔案 306

14.7.2 在/tmp目錄建立臨時檔案 308

14.7.3 建立臨時目錄 308

14.8 記錄消息 309

14.9 小結 310

第15章 控制腳本 312

15.1 處理信号 312

15.1.1 重溫Linux信号 312

15.1.2 産生信号 313

15.1.3 捕捉信号 314

15.1.4 捕捉腳本的退出 315

15.1.5 移除捕捉 316

15.2 以背景模式運作腳本 317

15.2.1 背景運作腳本 317

15.2.2 運作多個背景作業 318

15.2.3 退出終端 319

15.3 在非控制台下運作腳本 319

15.4 作業控制 320

15.4.1 檢視作業 320

15.4.2 重新開機停止的作業 322

15.5 調整謙讓度 323

15.5.1 nice指令 323

15.5.2 renice指令 324

15.6 定時運作作業 324

15.6.1 用at指令來計劃執行作業 325

15.6.2 計劃定期執行腳本 328

15.7 啟動時運作 330

15.7.1 開機時運作腳本 330

15.7.2 在新shell中啟動 332

15.8 小結 333

第三部分 進階shell腳本程式設計

第16章 建立函數 336

16.1 基本的腳本函數 336

16.1.1 建立函數 337

16.1.2 使用函數 337

16.2 傳回值 339

16.2.1 預設退出狀态碼 339

16.2.2 使用return指令 340

16.2.3 使用函數輸出 341

16.3 在函數中使用變量 342

16.3.1 向函數傳遞參數 342

16.3.2 在函數中處理變量 344

16.4 數組變量和函數 346

16.4.1 向函數傳數組參數 346

16.4.2 從函數傳回數組 348

16.5 函數遞歸 349

16.6 建立庫 350

16.7 在指令行上使用函數 351

16.7.1 在指令行上建立函數 352

16.7.2 在.bashrc檔案中定義函數 352

16.8 小結 354

第17章 圖形化桌面上的腳本程式設計 355

17.1 建立文本菜單 355

17.1.1 建立菜單布局 356

17.1.2 建立菜單函數 356

17.1.3 添加菜單邏輯 357

17.1.4 整合shell腳本菜單 358

17.1.5 使用select指令 359

17.2 使用視窗 360

17.2.1 dialog包 361

17.2.2 dialog選項 366

17.2.3 在腳本中使用dialog指令 368

17.3 使用圖形 369

17.3.1 KDE環境 369

17.3.2 GNOME環境 372

17.4 小結 376

第18章 初識sed和gawk 377

18.1 文本處理 377

18.1.1 sed編輯器 377

18.1.2 gawk程式 380

18.2 sed編輯器基礎 385

18.2.1 更多的替換選項 385

18.2.2 使用位址 387

18.2.3 删除行 389

18.2.4 插入和附加文本 391

18.2.5 修改行 392

18.2.6 轉換指令 393

18.2.7 回顧列印 394

18.2.8 用sed和檔案一起工作 396

18.3 小結 398

第19章 正規表達式 399

19.1 什麼是正規表達式 399

19.1.1 定義 399

19.1.2 正規表達式的類型 400

19.2 定義BRE模式 401

19.2.1 純文字 401

19.2.2 特殊字元 402

19.2.3 錨字元 403

19.2.4 點字元 405

19.2.5 字元組 405

19.2.6 排除字元組 407

19.2.7 使用區間 408

19.2.8 特殊字元組 409

19.2.9 星号 409

19.3 擴充正規表達式 411

19.3.1 問号 411

19.3.2 加号 412

19.3.3 使用花括号 412

19.3.4 管道符号 413

19.3.5 聚合表達式 414

19.4 實用中的正規表達式 414

19.4.1 目錄檔案計數 415

19.4.2 驗證電話号碼 416

19.4.3 解析郵件位址 417

19.5 小結 419

第20章 sed進階 420

20.1 多行指令 420

20.1.1 next指令 421

20.1.2 多行删除指令 424

20.1.3 多行列印指令 424

20.2 保持空間 425

20.3 排除指令 426

20.4 改變流 428

20.4.1 跳轉 429

20.4.2 測試 430

20.5 模式替代 431

20.5.1 and符号 431

20.5.2 替換單獨的單詞 432

20.6 在腳本中使用sed 433

20.6.1 使用包裝腳本 433

20.6.2 重定向sed的輸出 434

20.7 建立sed實用工具 434

20.7.1 加倍行間距 434

20.7.2 對可能含有空白行的檔案加倍行間距 435

20.7.3 給檔案中的行編号 436

20.7.4 列印末尾行 437

20.7.5 删除行 437

20.7.6 删除HTML标簽 439

20.8 小結 441

第21章 gawk進階 442

21.1 使用變量 442

21.1.1 内建變量 442

21.1.2 自定義變量 447

21.2 處理數組 449

21.2.1 定義數組變量 449

21.2.2 周遊數組變量 450

21.2.3 删除數組變量 451

21.3 使用模式 451

21.3.1 正規表達式 451

21.3.2 比對操作符 452

21.3.3 數學表達式 452

21.4 結構化指令 453

21.4.1 if語句 453

21.4.2 while語句 455

21.4.3 do-while語句 456

21.4.4 for語句 457

21.5 格式化列印 457

21.6 内建函數 460

21.6.1 數學函數 460

21.6.2 字元串函數 461

21.6.3 時間函數 463

21.7 自定義函數 463

21.7.1 定義函數 463

21.7.2 使用自定義函數 464

21.7.3 建立函數庫 464

21.8 小結 465

第22章 使用其他shell 467

22.1 什麼是dash shell 467

22.2 dash shell的特性 468

22.2.1 dash指令行參數 468

22.2.2 dash環境變量 469

22.2.3 dash内建指令 471

22.3 dash腳本程式設計 472

22.3.1 建立dash腳本 473

22.3.2 不能使用的功能 473

22.4 zsh shell 477

22.5 zsh shell的組成 478

22.5.1 shell選項 478

22.5.2 内建指令 480

22.6 zsh腳本程式設計 485

22.6.1 數學運算 485

22.6.2 結構化指令 487

22.6.3 函數 487

22.7 小結 489

第四部分 進階shell腳本程式設計主題

第23章 使用資料庫 492

23.1 MySQL資料庫 492

23.1.1 安裝MySQL 492

23.1.2 MySQL用戶端界面 494

23.1.3 建立MySQL資料庫對象 498

23.2 PostgreSQL資料庫 500

23.2.1 安裝PostgreSQL 501

23.2.2 PostgreSQL指令行界面 501

23.2.3 建立PostgreSQL資料庫對象 503

23.3 使用資料表 505

23.3.1 建立資料表 505

23.3.2 插入和删除資料 507

23.3.3 查詢資料 508

23.4 在腳本中使用資料庫 509

23.4.1 連接配接到資料庫 509

23.4.2 向伺服器發送指令 511

23.4.3 格式化資料 514

23.5 小結 516

第24章 使用Web 517

24.1 Lynx程式 517

24.1.1 安裝Lynx 518

24.1.2 lynx指令行 518

24.1.3 Lynx配置檔案 523

24.1.4 Lynx環境變量 524

24.1.5 從Lynx中抓取資料 524

24.2 cURL程式 527

24.2.1 安裝cURL 527

24.2.2 探索cURL 527

24.3 使用zsh處理網絡 528

24.3.1 TCP子產品 528

24.3.2 用戶端/伺服器模式 529

24.3.3 使用zsh進行C/S程式設計 530

24.4 小結 533

第25章 使用E-mail 534

25.1 Linux E-mail基礎 534

25.1.1 Linux中的E-mail 534

25.1.2 郵件傳送代理 535

25.1.3 郵件投遞代理 536

25.1.4 郵件使用者代理 537

25.2 建立伺服器 540

25.2.1 sendmail 541

25.2.2 Postfix 543

25.3 使用Mailx發送消息 545

25.4 Mutt程式 548

25.4.1 安裝Mutt 548

25.4.2 Mutt指令行 548

25.4.3 使用Mutt 549

25.5 小結 551

第26章 編寫腳本實用工具 552

26.1 監測磁盤空間 552

26.1.1 需要的功能 552

26.1.2 建立腳本 555

26.1.3 運作腳本 556

26.2 進行備份 557

26.3 管理使用者賬戶 563

26.3.1 需要的功能 563

26.3.2 建立腳本 569

26.4 小結 575

第27章 shell腳本程式設計進階 576

27.1 監測系統統計資料 576

27.1.1 系統快照報告 576

27.1.2 系統統計資料報告 582

27.2 問題跟蹤資料庫 589

27.2.1 建立資料庫 589

27.2.2 記錄問題 591

27.2.3 更新問題 594

27.2.4 查找問題 599

27.3 小結 602

附錄A bash指令快速指南 604

附錄B sed和gawk快速指南 611

下載下傳位址:網盤下載下傳

轉載于:https://www.cnblogs.com/long12365/p/9732031.html