Bash Cookbook 中文版

Bash Cookbook 中文版

作者: [加]羅恩·布拉什(Ron Brash) [加]加內什·奈克(Ganesh Naik)
出版社: 人民郵電
出版在: 2020-03-01
ISBN-13: 9787115527011
ISBN-10: 7115527016
裝訂格式: 平裝
總頁數: 206 頁




內容描述


Bash(Bourne-Again SHell)是為GNU計劃編寫的UNIX shell,
現在是絕大多數Linux發行版和macOS X的默認shell。
雖然各種操作系統的GUI界面已經非常完善,但是shell編程仍然起著不可忽視的作用。
本書將側重點放在Ubuntu環境下的Bash用法上,通過8章內容,循序漸進地介紹了Bash腳本的編寫技巧。
本書涉及Bash相關的基礎知識、文本與文件處理、理解並掌控文件系統等內容。
對Linux/UNIX系統管理員和運維人員來講,shell也是他們每天都要打交道的一款功能強大的工具。
因此,深入地了解和熟練地掌握shell編程,是每一個Linux/UNIX/OS X用戶的必修功課之一。


目錄大綱


第1章Bash速成1
1.1 Bash和CLI基礎知識入門2
1.2基本變量的創建和使用6
1.3 Bash隱藏變量和保留字9
1.4使用if、else、elseif進行條件邏輯判斷11
1.4.1評估數值12
1.4.2評估字符串13
1.4.3嵌套if語句14
1.5 case/switch語句和循環結構14
1.5.1基本的case語句15
1. 5.2基本循環16
1.6使用函數和參數17
1.7包含源文件19
1.8檢索返回碼和輸出20
1.9使用管道連接多個命令以及輸入/輸出重定向23
1.10獲取程序輸入參數26
1.11獲取命令相關的額外信息28
1.12小結29
第2章文本與文件處理30
2.1簡介30
2.2基本的字符串和文件搜索32
2.2.1準備工作32
2.2.2實戰演練33
2.2.3工作原理34
2.3使用通配符和正則表達式36
2.3.1準備工作37
2.3.2實戰演練38
2.3.3工作原理39
2.4腳本中的數學運算43
2.4.1準備工作44
2.4.2實戰演練45
2.4.3工作原理47
2.5用Bash提取/更改/排序/刪除/搜索字符串49
2.5.1準備工作50
2.5.2實戰演練50
2.5.3工作原理54
2.6使用sed和awk刪除/替換子串57
2.6.1準備工作57
2.6.2實戰演練58
2.6.3工作原理60
2.7使用echo和printf格式化數據/輸出62
2.7.1準備工作63
2.7.2實戰演練63
2. 7.3工作原理65
2.8腳本國際化66
2.8.1準備工作67
2.8.2實戰演練68
2.8.3工作原理70
2.9根據文件內容統計並減少重複73
2. 9.1準備工作74
2.9.2實戰演練74
2.9.3工作原理74
2.10在條件邏輯中使用文件屬性76
2.10.1準備工作77
2.10.2實戰演練77
2.10.3工作原理78
2.11讀取被分隔的數據並更改輸出格式81
2.11.1準備工作82
2.11.2實戰演練83
2.11.3工作原理84
第3章精通文件系統86
3.1簡介86
3.2多角度瀏覽文件—head、tail、less和more 87
3.2.1準備工作87
3.2.2實戰演練87
3.2.3工作原理88
3. 3按照名稱或擴展名搜索文件90
3.3.1準備工作92
3.3.2實戰演練92
3.3.3工作原理93
3.4用diff命令比較文件差異並修補95
3.4.1準備工作96
3.4.2實戰演練96
3.4.3工作原理97
3.5創建並有效地使用符號鏈接99
3.5.1實戰演練100
3.5.2工作原理101
3.6爬取文件系統並打印目錄樹102
3.6.1準備工作102
3.6.2實戰演練102
3.6.3工作原理104
3.7查找並刪除重複的文件或目錄104
3.7.1準備工作105
3.7.2實戰演練106
3.7.3工作原理107
3.8在任意位置合併和切分文件108
3.8.1準備工作109
3.8.2實戰演練109
3.8.3工作原理111
3.9生成各種大小的數據集和隨機文件112
3.9.1準備工作113
3.9.2實戰演練113
3.9.3工作原理115
第4章像守護進程一樣的腳本116
4.1簡介116
4.2使用循環或遞歸持續運行程序117
4.2.1準備工作117
4.2.2實戰演練118
4.2.3工作原理119
4. 3在註銷後保持程序/腳本繼續運行120
4.3.1準備工作120
4.3.2實戰演練121
4.3.3工作原理122
4.4調用特權命令123
4.4.1準備工作124
4.4.2實戰演練125
4.4.3工作原理126
4.5淨化用戶輸出並獲得可複現的結果126
4.5.1準備工作127
4.5.2實戰演練127
4.5.3工作原理130
4.6使用select創建簡單的多級菜單131
4.6.1準備工作131
4.6.2實戰演練132
4.6.3工作原理133
4.7生成並捕獲信號133
4.7.1準備工作134
4.7.2實戰演練134
4.7.3工作原理135
4.8在腳本中使用臨時文件和鎖文件135
4.8 .1準備工作136
4.8.2實戰演練136
4.8.3工作原理137
4.9利用超時等待命令完成137
4.9.1準備工作138
4.9.2實戰演練138
4.9. 3工作原理139
4.10創建FIFO和並行進程141
4.10.1準備工作141
4.10.2實戰演練141
4.10.3工作原理142
4.11在系統啟動時執行腳本143
4.11 .1準備工作144
4.11.2實戰演練146
4.11.3工作原理147
第5章系統管理腳本148
5.1簡介148
5.2收集和匯總系統信息149
5.2.1準備工作149
5.2.2實戰演練149
5.2.3工作原理150
5.3收集網絡信息和診斷網絡連通性152
5.3.1準備工作152
5.3.2實戰演練153
5.3.3工作原理153
5.4配置基本的網絡連接154
5.4.1準備工作154
5.4.2實戰演練154
5.4.3工作原理154
5.5監視目錄和文件155
5.5.1準備工作155
5.5.2實戰演練155
5.5.3工作原理155
5.6文件的壓縮和歸檔155
5.6.1準備工作156
5.6.2實戰演練156
5.6.3工作原理157
5.7日誌文件輪替157
5.7.1準備工作158
5.7.2實戰演練158
5.7.3工作原理159
5 .8使用iptables設置Linux防火牆160
5.8.1準備工作160
5.8.2實戰演練160
5.8.3工作原理161
5.9從遠程或本地訪問SQL數據庫161
5.9.1準備工作161
5.9.2實戰演練161
5.9.3工作原理163
5.10創建SSH密鑰,實現無密碼遠程訪問163
5 .10.1準備工作163
5.10.2實戰演練163
5.11創建和配置用於任務調度的cron作業164
5.11.1實戰演練164
5.11.2工作原理165
5.12系統化地創建用戶和組166
5.12.1實戰演練166
5.12.2工作原理166
第6章高級用戶專用腳本167
6.1簡介167
6.1.1創建syslog條目並生成警報168
6.1 .2實戰演練168
6.1.3工作原理169
6.2使用dd備份和擦除磁盤及分區169
6.2.1準備工作169
6.2.2實戰演練169
6.2.3工作原理170
6.3在命令行中創建圖形化界面170
6.3.1準備工作170
6.3.2實戰演練170
6.3.3工作原理171
6.4檢查文件完整性172
6.4.1準備工作172
6.4.2實戰演練172
6.4.3工作原理173
6.5掛載網絡文件系統174
6 .5.1準備工作174
6.5.2實戰演練174
6.5.3工作原理174
6.6在命令行中瀏覽Web頁面175
6.6.1準備工作175
6.6.2實戰演練175
6.6.3工作原理175
6.7捕獲網絡流量176
6.7.1準備工作176
6.7.2實戰演練176
6.7.3工作原理177
6.8查找可執行文件的依賴關係177
6.8.1準備工作177
6.8.2實戰演練177
6.8.3工作原理178
6.9獲取不同時區的時間178
6.9.1準備工作178
6.9.2實戰演練178
6 .9.3工作原理179
6.10在腳本中加密/解密文件179
6.10.1準備工作179
6.10.2實戰演練179
6.10.3工作原理179
第7章Bash致勝之道180
7.1簡介180
7.2創建一個簡易實用的HTTP服務器181
7.2.1準備工作181
7.2.2實戰演練181
7.2.3工作原理182
7. 3解析RSS feed 182
7.3.1準備工作182
7.3.2實戰演練182
7.3.3工作原理182
7.4爬取Web頁面182
7.4.1準備工作183
7.4.2實戰演練183
7.4.3工作原理183
7.5製作簡單的IRC聊天機器人183
7.5.1準備工作183
7.5.2實戰演練183
7.5.3工作原理184
7.6阻止SSH訪問已失效的IP地址184
7.6.1準備工作184
7.6.2實戰演練185
7.6.3工作原理185
7.7使用Bash播放和管理音頻文件185
7.7.1準備工作185
7.7.2實戰演練186
7.7.3工作原理186
7.8搭建簡單的NAT和DMZ防火牆186
7.8.1準備工作186
7.8.2實戰演練186
7.8.3工作原理187
7.9解析GitHub項目並生成報告187
7.9.1準備工作187
7.9.2實戰演練187
7.9.3工作原理188
7.10創建初級的遠程增量188
7.10.1準備工作188
7.10.2實戰演練188
7.10.3工作原理188
7.11使用Bash腳本監視udev輸入189
7.11.1準備工作189
7.11.2實戰演練189
7.11.3工作原理189
7.12使用Bash監視並優化電池容量190
7.12.1準備工作190
7.12.2實戰演練190
7.12.3工作原理191
7.13使用chroot和受限shell保護腳本安全191
7.13.1準備工作191
7.13.2實戰演練191
7.13.3工作原理192
第8章高級腳本技術193
8.1簡介193
8.2計算腳本的運行時間194
8.2.1準備工作194
8.2.2實戰演練194
8.2.3工作原理194
8.3編寫單行條件語句和循環語句194
8.3.1準備工作194
8.3.2實戰演練194
8.3.3工作原理195
8.4避免出現“command not found”警告/錯誤195
8.4.1準備工作195
8.4.2實戰演練195
8.4.3工作原理196
8.5創建可與腳本配合使用的配置文件196
8.5.1準備工作197
8.5.2實戰演練197
8.5.3工作原理197
8.6更改命令行配色198
8.6.1準備工作198
8.6.2實戰演練198
8.6.3工作原理199
8.7創建命令別名200
8.7.1準備工作200
8.7.2實戰演練200
8.7.3工作原理200
8.8向原始終端設備回顯輸出200
8.8.1準備工作201
8.8.2實戰演練201
8.8.3工作原理201
8.9為Bash腳本創建簡單的前端GUI 201
8.9.1準備工作202
8.9.2實戰演練202
8.9.3工作原理204
8.10編譯並安裝自製的Bash shell腳本204
8. 10.1準備工作204
8.10.2實戰演練204
8.10.3工作原理205
8.11錄製終端會話205
8.11.1準備工作205
8.11.2實戰演練205
8.11.3工作原理205
8.12編寫高質量腳本205
8.12.1準備工作206
8.12.2實戰演練206
8.12.3工作原理206


作者介紹


Ron Brash
是一家公司的CTO和聯合創始人。
他創立的公司是一家成功的技術諮詢公司,提供了眾多領域的服務,
不過主要集中在自由開源軟件(Free Open Source Software,FOSS)和Linux方面。
7年多來,羅恩一直從事嵌入式系統的研究,
為工控系統和數據採集與監控系統(Supervisory Control And Data Acquisition,SCADA)
網絡提供了安全性和網絡連通性,在這些系統之上運行的都是經過優化的嵌入式Linux。
羅恩會定期參加FOSS和社區活動,並在恰當的時機反饋意見,除此之外,
他還舉辦小型研討會,因為他非常樂於分享知識。

Ganesh Naik
同時身兼作者、顧問以及嵌入式Android、嵌入式Linux、物聯網和ML相關產品開發的企業培訓師。
他在IT領域擁有20多年的經驗和項目成就。曾在印度空間研究組織(Indian Space Research Organization)、
英特爾、通用電氣、三星、摩托羅拉、檳城技能開發中心(Penang Skills Development Center)
以及新加坡和印度的多家公司擔任企業培訓師。
他創辦了一家名為Levana Technologies的公司,並從事諮詢和培訓活動。




相關書籍

加密與解密, 4/e

作者 段鋼

2020-03-01

Cyber Operations: Building, Defending, and Attacking Modern Computer Networks

作者 O'Leary Mike

2020-03-01

Real 802.11 Security: Wi-Fi Protected Access and 802.11i (Paperback)

作者 Jon Edney William A. Arbaugh

2020-03-01