Bash Cookbook 中文版

Bash Cookbook 中文版
定價:354
NT $ 308
  • 作者:(加)羅恩·布拉什
  • 出版社:人民郵電出版社
  • 出版日期:2020-03-01
  • 語言:簡體中文
  • ISBN10:7115527016
  • ISBN13:9787115527011
  • 裝訂:平裝 / 206頁 / 16k / 19 x 26 x 1.03 cm / 普通級 / 單色印刷 / 初版
 

內容簡介

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用戶的必修功課之一。
 

作者介紹

羅恩·布拉什(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的公司,並從事諮詢和培訓活動。
 

目錄

第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
網路書店 類別 折扣 價格
  1. 新書
    87
    $308