Linux 命令行與 shell 腳本編程大全, 3/e (Linux Command Line and Shell Scripting Bible, 3/e)

[美]布魯姆,佈雷斯納漢

已絕版

買這商品的人也買了...

相關主題

商品描述

<內容介紹>

這是一本關於Linux命令行與shell腳本編程的全方位教程,主要包括四大部分:Linux命令行,shell腳本編程基礎,高級shell腳本編程,如何創建實用的shell腳本。本書針對Linux系統的新特性進行了全面更新,不僅涵蓋了詳盡的動手教程和現實世界中的實用信息,還提供了與所學內容相關的參考信息和背景資料。通過本書的學習,你將輕鬆寫出自己的shell腳本。

<章節目錄>
第一部分Linux命令行
第1章初識Linux shell 2
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 16
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命令33
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命令64
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 86
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環境變量103
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文件權限124
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章管理文件系統143
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章安裝軟件程序163
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章使用編輯器181
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章構建基本腳本210
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章使用結構化命令232
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章更多的結構化命令260
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章處理用戶輸入287
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章呈現數據311
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章控制腳本331
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章創建函數356
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章圖形化桌面環境中的腳本編程378
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 401
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章正則表達式424
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進階445
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進階469
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 495
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章編寫簡單的腳本實用工具514
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及電子郵件相關的腳本543
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章一些小有意思的腳本565
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