Linux命令行與Shell腳本編程 版權信息
- ISBN:9787302582229
- 條形碼:9787302582229 ; 978-7-302-58222-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Linux命令行與Shell腳本編程 本書特色
本書面向初學者,使用Ubuntu Server 20系統,以簡明和入門為主旨,系統講解Shell編程開發以及Linux系統管理的基本知識,從而提高讀者的Linux系統管理水平,并掌握利用腳本進行自動化運維的技能。
Linux命令行與Shell腳本編程 內容簡介
現在Linux系統的應用越來越廣泛,而在Linux系統下的自動化運維工作也越來越多,使用Shell腳本可以通過自動化運維來提高運維效率。本書是一本純粹的Linux系統管理與Shell編程入門書,目的是幫助讀者理解Linux系統,并學會使用Shell腳本來完成Linux下各種復雜的運維工作。
本書共23章,內容包括初識Linux和Shell、走進Shell、Bash Shell基礎命令、更多的Bash Shell命令、變量和環境變量、使用特殊符號、管理文件系統、使用編輯器、結構化命令、Shell中的循環結構、創建函數、處理數據的輸入、處理數據的輸出、圖形化Shell編程、安裝軟件程序、正則表達式、grep命令、sed編程、gawk編程、腳本控制、Shell腳本系統管理實戰、Shell腳本數據庫操作實戰、兩個Shell腳本編程實戰。
本書內容詳盡、示例豐富,適合Linux初學者、Shell編程初學者、自動化運維腳本開發人員閱讀,可作為Linux系統運維人員的參考書,也可作為高等院校和培訓機構計算機相關專業的補充教材。
Linux命令行與Shell腳本編程 目錄
第1章 初識Linux和Shell 1
1.1 Linux系統基礎 1
1.1.1 Linux系統的發展 1
1.1.2 Linux系統和Windows系統的_x00B_區別 2
1.1.3 Linux的啟動過程 3
1.2 Linux文件系統基礎 6
1.2.1 必須了解的節點inode 6
1.2.2 Linux系統文件結構 7
1.3 學會Linux系統的基本使用 10
1.3.1 系統的登錄與退出 10
1.3.2 系統的基本配置 12
1.4 初識Shell 13
1.4.1 什么是Shell 13
1.4.2 Shell在Linux系統中的_x00B_作用 13
1.4.3 Shell的種類 14
1.5 小結 15
第2章 走進Shell 16
2.1 Shell腳本語言概述 16
2.1.1 Shell腳本語言的定義 16
2.1.2 Shell終端的基本使用 17
2.1.3 Shell終端菜單的使用 17
2.2 Shell命令格式介紹 18
2.2.1 Shell命令格式 19
2.2.2 命令行界面介紹 19
2.2.3 在Linux系統中如何獲取_x00B_幫助 20
2.3 **個Shell程序:Hello,_x00B_Bash Shell 22
2.3.1 創建Shell腳本 22
2.3.2 Shell腳本中的格式 26
2.3.3 如何執行Shell程序 26
2.4 小結 28
第3章 Bash Shell基礎命令 29
3.1 Shell命令使用基礎 29
3.1.1 文件類型 29
3.1.2 絕對路徑和相對路徑 30
3.1.3 文件屬性和文件權限 31
3.1.4 用戶和用戶組 32
3.1.5 特殊目錄介紹 37
3.2 用戶和用戶組管理 38
3.2.1 用戶管理常用命令 38
3.2.2 用戶組管理常用命令 41
3.2.3 其他常用命令 43
3.3 文件和目錄操作 46
3.3.1 文件操作常用命令 46
3.3.2 目錄操作常用命令 50
3.3.3 文件權限管理常用命令 54
3.3.4 查找文件常用命令 56
3.4 系統管理 57
3.4.1 網絡操作常用命令 57
3.4.2 磁盤信息查看常用命令 61
3.5 小結 62
第4章 更多的Bash Shell命令 63
4.1 監測程序 63
4.1.1 探查進程——ps命令 63
4.1.2 實時監測進程——top命令 64
4.1.3 結束進程——kill命令 66
4.1.4 查看內存空間——free命令 66
4.2 監測磁盤空間 67
4.2.1 掛載外部存儲——_x00B_mount命令 67
4.2.2 卸載外部存儲——_x00B_umount命令 68
4.2.3 顯示剩余磁盤空間——_x00B_df命令 69
4.2.4 計算磁盤使用量——_x00B_du命令 69
4.3 處理數據文件 70
4.3.1 排序數據——sort命令 70
4.3.2 搜索數據——grep命令 71
4.3.3 壓縮數據——gzip命令 73
4.3.4 打包數據——ar命令 74
4.4 小結 75
第5章 變量和環境變量 77
5.1 變量的簡單使用 77
5.1.1 變量的使用 77
5.1.2 變量的輸入 79
5.1.3 變量的輸出命令echo 84
5.2 Shell中特殊變量的使用 88
5.2.1 位置參數介紹 88
5.2.2 $@和$*的區別 89
5.3 環境變量的使用 90
5.3.1 Shell中的環境變量 90
5.3.2 環境變量的配置文件 93
5.3.3 全局環境變量和本地環境_x00B_變量 95
5.3.4 環境變量的設定 97
5.3.5 環境變量的取消 98
5.4 小結 99
第6章 使用特殊符號 100
6.1 引號的使用 100
6.1.1 單引號的使用 101
6.1.2 雙引號的使用 102
6.1.3 倒引號的使用 103
6.2 通配符和元字符 103
6.2.1 使用通配符 104
6.2.2 使用元字符 107
6.3 管道 110
6.4 其他特殊字符介紹 111
6.4.1 后臺運行符 111
6.4.2 括號 112
6.4.3 分號 114
6.5 小結 115
第7章 管理文件系統 116
7.1 探索Linux文件系統 116
7.1.1 日志文件系統 116
7.1.2 **的基礎知識 117
7.2 管理文件系統 117
7.2.1 創建分區 117
7.2.2 創建文件系統 121
7.2.3 文件系統的檢查與修復 122
7.3 小結 122
第8章 使用編輯器 123
8.1 vim編輯器 123
8.1.1 檢查vim軟件包 123
8.1.2 vim基礎 125
8.1.3 編輯數據 127
8.1.4 復制和粘貼 130
8.1.5 查找和替換 131
8.2 nano編輯器 132
8.2.1 檢查nano軟件包 132
8.2.2 nano編輯器的基本操作 132
8.3 Emacs編輯器 134
8.3.1 檢查Emacs軟件包 134
8.3.2 使用Emacs 136
8.4 GNOME編輯器 138
8.4.1 啟動Gedit 138
8.4.2 基本的Gedit功能 139
8.5 小結 141
第9章 結構化命令 142
9.1 測試命令的使用 142
9.1.1 測試命令的基礎結構 142
9.1.2 測試文件類型 144
9.1.3 測試字符串 148
9.1.4 測試數值 150
9.1.5 復合測試條件 151
9.2 if分支結構 153
9.2.1 if -then結構 153
9.2.2 if -then-else結構 154
9.2.3 嵌套結構 156
9.3 case多條件分支結構 159
9.3.1 case結構基礎 159
9.3.2 在Shell腳本中使用_x00B_case結構 161
9.3.3 select命令的使用 162
9.4 小結 163
第10章 Shell中的循環結構 164
10.1 for循環 164
10.1.1 使用for-in結構 164
10.1.2 C式for結構 168
10.2 while命令的使用 170
10.2.1 使用while結構 171
10.2.2 多條件的while結構 172
10.2.3 使用until命令 172
10.3 命令的嵌套 174
10.3.1 for命令的嵌套 174
10.3.2 while命令的嵌套 177
10.3.3 until命令的嵌套 179
10.4 循環控制符 180
10.4.1 使用break中斷 180
10.4.2 使用continue命令 183
10.5 小結 184
第11章 創建函數 185
11.1 腳本函數的基本用法 185
11.1.1 函數的創建與使用 185
11.1.2 函數的參數 187
11.2 函數的返回值 189
11.2.1 返回值基礎 189
11.2.2 函數的默認返回值 190
11.2.3 return命令的使用 191
11.2.4 使用函數的返回值 192
11.3 函數中的全局變量和局部變量 193
11.3.1 全局變量 193
11.3.2 局部變量 194
11.4 數組與函數 195
11.4.1 數組作為函數參數 195
11.4.2 數組作為函數返回值 196
11.5 腳本函數遞歸 197
11.6 函數的嵌套調用 199
11.7 小結 200
第12章 處理數據的輸入 201
12.1 命令行參數 201
12.1.1 讀取參數 202
12.1.2 讀取腳本名 203
12.1.3 測試參數 204
12.2 特殊參數變量 206
12.2.1 參數統計 206
12.2.2 獲取所有的參數 207
12.3 特殊的輸入方式 208
12.3.1 移動變量 208
12.3.2 讀取文件 209
12.4 將選項標準化 210
12.5 小結 211
第13章 處理數據的輸出 212
13.1 理解輸入和輸出 212
13.1.1 標準文件描述符 213
13.1.2 重定向 213
13.2 在腳本中重定向輸出 214
13.2.1 重定向 214
13.2.2 追加重定向 215
13.2.3 永久重定向 216
13.3 在腳本中重定向輸入 217
13.4 創建自己的重定向 218
13.4.1 創建輸出文件描述符 219
13.4.2 創建輸入文件描述符 219
13.4.3 關閉文件描述符 220
13.5 其他常用操作 221
13.5.1 列出打開的文件_x00B_描述符 222
13.5.2 清空命令輸出 223
13.5.3 記錄消息 224
13.6 小結 225
第14章 圖形化Shell編程 226
14.1 創建文本菜單 226
14.1.1 創建菜單 226
14.1.2 創建子菜單函數 227
14.1.3 腳本的整合——實現一個_x00B_計算器 229
14.1.4 使用select命令實現_x00B_菜單 230
14.2 制作窗口 232
14.2.1 使用dialog包 232
14.2.2 dialog幫助選項 232
14.2.3 dialog命令的使用 234
14.2.4 常用窗口示例 238
14.3 顏色的使用 243
14.4 小結 246
第15章 安裝軟件程序 247
15.1 包管理基礎 247
15.2 基于Debian的系統 248
15.2.1 包倉庫 248
15.2.2 搜索軟件包 250
15.2.3 安裝軟件包 251
15.2.4 更新軟件包 252
15.2.5 卸載軟件包 252
15.3 基于Red Hat的系統 253
15.3.1 yum命令使用簡介 253
15.3.2 列出已安裝包 254
15.3.3 使用yum安裝軟件 256
15.3.4 使用yum更新軟件 258
15.3.5 使用yum卸載軟件 258
15.3.6 處理損壞的包依賴_x00B_關系 260
15.4 小結 260
第16章 正則表達式 261
16.1 正則表達式基礎 261
16.1.1 正則表達式的定義 261
16.1.2 正則表達式的分類 262
16.2 基本正則表達式的常用符號 263
16.2.1 使用點字符匹配_x00B_單字符 263
16.2.2 使用定位符 264
16.2.3 使用“*”匹配字符串中的_x00B_單字符或其重復序列 266
16.2.4 使用“”屏蔽一個特殊_x00B_字符的含義 267
16.3 擴展正則表達式的常用符號 267
16.3.1 使用“[]”匹配一個范圍_x00B_或集合 268
16.3.2 使用“\{\}”匹配模式結果出現的次數 268
16.3.3 問號的使用 269
16.4 小結 270
第17章 grep命令 271
17.1 grep的基礎使用 271
17.1.1 grep命令的基本使用_x00B_方式 271
17.1.2 grep選項 273
17.1.3 行數 273
17.1.4 大小寫敏感 274
17.1.5 顯示非匹配行 276
17.1.6 查詢多個文件或多個_x00B_關鍵字 277
17.2 grep和正則表達式 279
17.2.1 模式范圍以及范圍_x00B_組合 279
17.2.2 定位符的使用 280
17.2.3 字符匹配 281
17.2.4 模式出現機率 282
17.2.5 匹配特殊字符 283
17.3 grep命令的擴展使用 284
17.3.1 類名的使用 284
17.3.2 egrep命令的使用 285
17.3.3 fgrep命令的使用 287
17.4 grep命令使用示例 288
17.4.1 目錄搜索——查找特定_x00B_目錄或文字 288
17.4.2 使用ps命令檢索特定的_x00B_進程 289
17.5 小結 289
第18章 sed編程 291
18.1 認識sed 291
18.1.1 sed工作模式 291
18.1.2 sed常用指令 292
18.1.3 sed常用選項 293
18.1.4 sed地址范圍 294
18.2 sed編輯器常用命令 295
18.2.1 替換命令的使用 296
18.2.2 刪除命令的使用 297
18.2.3 文本的添加和替換 298
18.3 高級sed編程 300
18.3.1 同時處理多行數據 300
18.3.2 sed編輯器的空間 301
18.3.3 sed編輯器的反向 302
18.3.4 重定向sed的輸出 303
18.4 小結 304
第19章 gawk編程 305
19.1 gawk概述 305
19.1.1 gawk基本介紹 305
19.1.2 gawk基本使用 307
19.2 變量的使用 310
19.2.1 內置變量的使用 310
19.2.2 自定義變量的使用 312
19.2.3 數組的使用 313
19.3 結構的使用 314
19.3.1 條件結構的使用 314
19.3.2 循環結構的使用 317
19.3.3 循環結構控制語句 319
19.4 函數的使用 320
19.4.1 算術函數的使用 321
19.4.2 字符串處理函數的_x00B_使用 322
19.4.3 時間函數的使用 324
19.5 小結 326
第20章 腳本控制 327
20.1 Linux信號控制 327
20.1.1 Linux信號機制簡介 327
20.1.2 使用Shell腳本操作_x00B_信號 329
20.2 進程的控制 331
20.2.1 后臺運行符介紹 331
20.2.2 運行進程的控制 333
20.2.3 nohup命令的使用 334
20.3 腳本運行的優先級 335
20.3.1 優先級介紹 335
20.3.2 使用nice指定優先級 336
20.3.3 使用renice重置_x00B_優先級 337
20.4 小結 338
第21章 Shell腳本系統管理實戰 339
21.1 系統監測 339
21.1.1 系統監控基礎 339
21.1.2 Ubuntu自帶的系統監控_x00B_工具 343
21.1.3 監控腳本的編寫 344
21.2 計劃任務的實現 345
21.2.1 at命令的使用 346
21.2.2 atq命令的使用 351
21.2.3 cron的使用 352
21.3 網絡管理 354
21.3.1 網絡配置 354
21.3.2 服務器的安裝 358
21.4 日志管理 360
21.4.1 日志簡介 360
21.4.2 守護進程syslogd 361
21.4.3 日志的備份操作 364
21.4.4 日志的定時操作 365
21.5 小結 366
第22章 Shell腳本數據庫操作_x00B_實戰 367
22.1 Linux系統中的數據庫 367
22.1.1 SQLite簡介 367
22.1.2 SQLite的圖形化操作 370
22.1.3 MySQL簡介 372
22.2 SQL語句 375
22.2.1 SQL語言基本介紹 375
22.2.2 基本的SQL操作 376
22.2.3 在Shell腳本中執行SQL_x00B_語句 378
22.3 實戰:圖書管理系統中數據庫_x00B_操作 379
22.3.1 數據庫操作基本流程 380
22.3.2 創建表 380
22.3.3 增加圖書信息 381
22.3.4 修改圖書信息 382
22.3.5 刪除圖書信息 383
22.4 小結 383
第23章 兩個Shell腳本編程實戰 384
23.1 創建日志文件 384
23.1.1 功能分析 384
23.1.2 創建腳本 386
23.2 遠程復制文件 387
23.2.1 功能分析 387
23.2.2 創建腳本 389
23.3 小結 390
展開全部
Linux命令行與Shell腳本編程 作者簡介
何偉娜,平頂山學院副教授,西安電子科技大學碩士。本人主要從事大數據、深度學習方面的研究。 郝軍,供職于國內的電信運營商,主要職務是開發各種移動運營相關的軟件項目,長期在Linux平臺下進行軟件開發,有10余年的Java開發經驗,開發過通信計費等多種服務端項目。