注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)操作系統(tǒng)UNIX精通Unix Shell腳本編程(第2版)

精通Unix Shell腳本編程(第2版)

精通Unix Shell腳本編程(第2版)

定 價:¥118.00

作 者: (美)米歇爾 著,李德龍 譯
出版社: 清華大學出版社
叢編項:
標 簽: Solaris

ISBN: 9787302218951 出版時間: 2010-03-01 包裝: 平裝
開本: 16開 頁數(shù): 876 字數(shù):  

內(nèi)容簡介

  本書意欲作為學習工具和研究向?qū)?,旨在告訴讀者怎樣一開始就目標清晰地編寫shell腳本來解決各種問題。本書大部分shell腳本技術(shù)都將7次涉及。每次都從不同角度觸及主題,解決不同的問題。我發(fā)現(xiàn)這個技巧對于掌握材料是非常有好處的。每一章的結(jié)尾都有練習,讓讀者編寫一個新的腳本,或修改該章中出現(xiàn)的shell腳本。本書不是一本描述解決方案而是描述解決方案怎樣實現(xiàn)的書籍。我力勸讀者完整地學習完本書,你會受益匪淺。本書涵蓋的shell腳本包括Bash、Bourne,但不包括Korn.C shell腳本。更高級的主題包括使用rsync復(fù)制數(shù)據(jù),利用Dirvish生成快速備份,用記錄文件解析數(shù)據(jù)等。本書從一些細小的任務(wù)解決方案到一些相當高級的概念都有涉及,這使得從高中生和大學生到系統(tǒng)管理員都能從中獲益。本書每一部分包含若干章。本書中的shell腳本是完整的shen腳本,這一點有別于市場上其他的shell腳本書。本書對各種解決方案,甚至shell腳本每一部分的微小細節(jié)都進行了完整的解釋,這都是作者的哲理和心態(tài)的真正表達。

作者簡介

  米歇爾(Randal K.MiChael)是UNIX系統(tǒng)管理工作組的高級顧問。他講授UNI義shell腳本,在企業(yè)設(shè)置方面編寫了大量的shell腳本以解決從系統(tǒng)監(jiān)控到復(fù)制大型數(shù)據(jù)庫等問題和任務(wù)。另外,他在該行業(yè)有30余年的工作經(jīng)驗,其中15年的時間一直擔任UNIX系統(tǒng)管理員,主要解決與AlX、HP-UX、Linux、OpenBSD和Solaris相關(guān)的實際問題。

圖書目錄

第Ⅰ部分 shell腳本基礎(chǔ)
第1章 腳本編程快速入門和概述 3
1.1 區(qū)分大小寫 3
1.2 UNIX特殊字符 3
1.3 shell 4
1.4 shell腳本 4
1.5 函數(shù) 4
1.6 運行shell腳本 5
1.7 shell腳本中的注釋和風格 6
1.8 控制結(jié)構(gòu) 7
1.9 使用break、continue、exit和 return語句 10
1.10 here文檔 10
1.11 shell腳本命令 11
1.12 符號命令 13
1.13 變量 13
1.14 命令行參數(shù) 14
1.15 shift命令 14
1.16 特殊參數(shù)$*和$@ 15
1.17 雙引號"、符號和` 16
1.18 在Solaris中使用awk 16
1.19 正確使用echo命令 17
1.20 shell腳本中的數(shù)學 17
1.21 內(nèi)置的數(shù)學函數(shù) 18
1.22 文件權(quán)限、suid和sgid程序 19
1.23 在遠程主機上運行命令 20
1.24 設(shè)置陷阱 21
1.25 用戶信息命令 22
1.25.1 who命令 22
1.25.2 w命令 22
1.25.3 last命令 23
1.26 ps命令 23
1.27 與用戶通信 24
1.28 統(tǒng)一大寫或小寫文本以方便測試 24
1.29 檢測返回代碼 25
1.30 基于時間的腳本執(zhí)行 26
1.30.1 cron表 26
1.30.2 at命令 27
1.31 輸出控制 28
1.31.1 靜默運行 28
1.31.2 使用getopts解析命令行參數(shù) 29
1.31.3 使用后臺函數(shù)創(chuàng)建一個協(xié)作進程 30
1.32 捕獲延遲命令輸出 31
1.33 逐行處理文件的最快方式 32
1.34 循環(huán)中使用命令輸出 35
1.35 郵件通知技術(shù) 36
1.35.1 使用mail 和mailx 命令 36
1.35.2 使用sendmail 命令來發(fā)送外發(fā)郵件 36
1.36 創(chuàng)建一個進度指示器 37
1.36.1 一系列圓點 37
1.36.2 一條旋轉(zhuǎn)線 38
1.36.3 運行時間 39
1.37 使用記錄文件 39
1.38 創(chuàng)建偽隨機數(shù) 41
1.39 檢查AlX中的失效磁盤分區(qū) 42
1.40 自動主機ping 42
1.41 高亮顯示文件中的特定文本 43
1.42 使打印機一直打印 44
1.42.1 AIX 的“傳統(tǒng)”打印機子系統(tǒng) 44
1.42.2 System V和CUPS打印 44
1.43 自動進行FTP 文件傳輸 44
1.44 使用rsync復(fù)制數(shù)據(jù) 44
1.45 捕獲大于$MEG 的文件列表 46
1.46 捕獲用戶的按鍵操作 46
1.47 使用bc實用工具來進行浮點數(shù)學運算 47
1.48 數(shù)基轉(zhuǎn)換 48
1.48.1 使用typeset命令 48
1.48.2 使用printf 命令 48
1.49 使用select 命令創(chuàng)建菜單 49
1.50 刪除文件中的重復(fù)行 51
1.51 刪除文件中的空白行 51
1.52 測試NULL 變量 51
1.53 直接訪問上一個位置參數(shù)$#的值 52
1.54 刪除命令輸出中的列標題 52
1.55 數(shù)組 53
1.56 測試字符串 53
1.57 小結(jié) 57
第2章 逐行處理文件的24種方法 59
2.1 命令語句 59
2.1.1 使用文件描述符 60
2.1.2 創(chuàng)建一個在時間測試中使用的大文件 60
2.2 逐行處理文件的24種方法 65
2.2.1 方法1:cat_while_read_Line 65
2.2.2 方法2:while_read_LINE_bottom 66
2.2.3 方法3:cat_while_LINE_line 67
2.2.4 方法4:while_LINE_line_bottom 68
2.2.5 方法5:cat_while_LINE_line_cmdsub2 69
2.2.6 方法6:while_LINE_line_bottom_cmdsub2 69
2.2.7 方法7:for_LINE_cat_FILE 70
2.2.8 方法8:for_LINE_cat_FILE_cmdsub2 70
2.2.9 方法9:while_line_outfile 71
2.2.10 方法10:while_read_LINE_FD_IN 72
2.2.11 方法11:cat_while_read_LINE_FD_OUT 73
2.2.12 方法12:while_read_LINE_bottom_FD_OUT 74
2.2.13 方法13:while_LINE_line_bottom_FD_OUT 75
2.2.14 方法14:while_LINE_line_bottom_cmdsub2_FD_OUT 76
2.2.15 方法15:for_LINE_cat_FILE_FD_OUT 77
2.2.16 方法16:for_LINE_cat_FILE_cmdsub2_FD_OUT 78
2.2.17 方法17:while_line_outfile_FD_IN 78
2.2.18 方法18:while_line_outfile_FD_OUT 79
2.2.19 方法19:while_line_outfile_FD_IN_AND_OUT 80
2.2.20 方法20:while_LINE_line_FD_IN 81
2.2.21 方法21:while_LINE_line_cmdsub2_FD_IN 82
2.2.22 方法22:while_read_LINE_FD_ IN _AND_OUT 83
2.2.23 方法23:while_LINE_line_FD_IN_AND_OUT 84
2.2.24 方法24:while_LINE_line_cmdsub2_FD_IN_AND_OUT 86
2.3 計時測試各種方法 87
2.3.1 計時腳本 87
2.3.2 每個方法的計時數(shù)據(jù) 105
2.3.3 計時命令替代方法 113
2.4 使用命令輸入和使用文件輸入的區(qū)別 115
2.5 小結(jié) 115
2.6 作業(yè) 116
第3章 自動事件通知 117
3.1 自動事件通知的基礎(chǔ) 117
3.1.1 使用mail和mailx命令 117
3.1.2 設(shè)置郵件別名 119
3.2 外發(fā)郵件的問題 120
3.2.1 使用.forward文件創(chuàng)建一個“Bounce”賬戶 122
3.2.2 使用sendmail命令發(fā)送外發(fā)郵件 123
3.3 撥號調(diào)制解調(diào)器軟件 124
3.4 SNMP 陷阱 124
3.5 小結(jié) 125
3.6 作業(yè) 125
第4章 進度指示器 127
4.1 使用一系列圓點來指示進度 127
4.2 使用一條旋轉(zhuǎn)線來指示進度 129
4.3 使用運行時間來指示進度 131
4.4 聯(lián)合反饋方法 133
4.5 其他要考慮的選項 136
4.6 小結(jié) 136
4.7 作業(yè) 136
第Ⅱ部分 程序員、測試員和分析員腳本
第5章 使用記錄文件 139
5.1 記錄的概念 139
5.1.1 定長記錄文件 139
5.1.2 變長記錄文件 140
5.2 處理記錄文件 141
5.3 記錄的任務(wù)和記錄文件 145
5.3.1 定長記錄文件的任務(wù) 146
5.3.2 變長記錄文件的任務(wù) 147
5.4 合并進程 149
5.5 合并記錄生成shell腳本 152
5.6 其他需要考慮的問題 162
5.7 小結(jié) 162
5.8 作業(yè) 163
第6章 自動FTP處理 165
6.1 語法 165
6.2 自動文件傳輸和遠程目錄列表 168
6.2.1 使用FTP獲得遠程計算機上的目錄列表 168
6.2.2 從遠程計算機上獲得一個或多個文件 169
6.2.3 將一個或多個文件傳輸?shù)竭h程計算機 173
6.2.4 用變量代替硬編碼的密碼 176
6.2.5 將FTP腳本修改為使用密碼 179
6.3 加密怎么樣 185
6.3.1 創(chuàng)建加密密鑰 185
6.3.2 創(chuàng)建不需要密碼的安全shell訪問 186
6.3.3 安全FTP和安全復(fù)制語法 186
6.3.4 用autoexpect和expect腳本實現(xiàn)自動FTP 188
6.4 其他要考慮的問題 191
6.4.1 使用命令行開關(guān)項控制執(zhí)行 191
6.4.2 對活動進行記錄 192
6.4.3 對腳本增加調(diào)試模式 192
6.4.4 把密碼讀入shell腳本 192
6.5 小結(jié) 192
6.6 作業(yè) 193
第7章 使用rsync有效復(fù)制數(shù)據(jù) 195
7.1 語法 195
7.2 普通rsync shell腳本 196
7.3 用rsync命令復(fù)制多目錄文件 197
7.4 用rsync復(fù)制多文件系統(tǒng) 212
7.5 用rsync復(fù)制Oracle數(shù)據(jù)庫 224
7.6 用rsync復(fù)制shell腳本 226
7.7 小結(jié) 259
7.8 作業(yè) 260
第8章 用Expect和autoexpect實現(xiàn)自動交互 261
8.1 下載和安裝Expect 261
8.2 交互腳本或程序會話的基礎(chǔ) 263
8.3 用autoexpect自動創(chuàng)建Expect腳本 266
8.4 使用變量 272
8.5 條件測試 274
8.5.1 Expect中的case語句 274
8.5.2 Expect中的if…then…else循環(huán) 280
8.5.3 Expect中的while循環(huán) 281
8.5.4 Expect中的for循環(huán) 282
8.5.5 Expect中的函數(shù) 284
8.6 在Sun Blade Chassis和JumpStart中使用Expect腳本 285
8.7 小結(jié) 290
8.8 作業(yè) 290
第9章 查找大文件和特定類型的文件 291
9.1 語法 291
9.2 記住文件和目錄的許可權(quán)限 292
9.3 別因文件的大小而吃驚 292
9.4 創(chuàng)建腳本 293
9.5 其他要考慮的問題 298
9.6 小結(jié) 298
9.7 作業(yè) 298
第10章 進程監(jiān)視與進程啟動前、啟動時和進程停止后事件 301
10.1 語法 301
10.2 監(jiān)視進程的啟動 302
10.3 監(jiān)視進程的結(jié)束 303
10.4 當進程啟動或停止時進行監(jiān)視和記錄 308
10.5 進程監(jiān)視的定時執(zhí)行、顯示每個進程的PID、為事件打上時間戳和定時功能 312
10.6 其他要考慮的問題 330
10.6.1 一般性用途 330
10.6.2 要考慮的修改事項 330
10.7 小結(jié) 330
10.8 作業(yè) 331
第11章 偽隨機數(shù)和數(shù)據(jù)的生成 333
11.1 隨機數(shù)的產(chǎn)生 333
11.2 方法 334
11.2.1 方法1:利用PID和RANDOM shell變量產(chǎn)生一個偽隨機數(shù) 334
11.2.2 方法2:產(chǎn)生一個在0到32767之間的隨機數(shù) 335
11.2.3 方法3:產(chǎn)生1到用戶定義的最大值之間的數(shù)字 335
11.2.4 方法4:產(chǎn)生位于1和用戶定義的最大數(shù)之間的固定長度的數(shù) 336
11.2.5 方法5:使用/dev/random和/dev/urandom字符專用文件 338
11.3 創(chuàng)建偽隨機數(shù)的shell腳本 341
11.4 創(chuàng)建唯一的文件名 346
11.5 創(chuàng)建一個由隨機字符組成的文件 353
11.6 其他要考慮的問題 359
11.7 小結(jié) 360
11.8 作業(yè) 360
第12章 創(chuàng)建偽隨機密碼 361
12.1 隨機性 361
12.2 創(chuàng)建偽隨機密碼 362
12.3 語法 362
12.4 建立密碼創(chuàng)建腳本 363
12.4.1 出現(xiàn)順序 364
12.4.2 腳本主體的開始 375
12.5 其他需要考慮的問題 387
12.5.1 密碼報表 387
12.5.2 選用哪個密碼 387
12.5.3 其他用途 387
12.6 小結(jié) 388
12.7 作業(yè) 388
第13章 浮點數(shù)學運算和bc工具程序 389
13.1 語法 389
13.2 使用bc創(chuàng)建shell腳本 390
13.2.1 創(chuàng)建float_add.ksh shell腳本 390
13.2.2 整數(shù)和浮點數(shù)的測試 395
13.2.3 用bc命令創(chuàng)建一個數(shù)學運算語句 397
13.2.4 使用here文檔 398
13.2.5 創(chuàng)建float_subtract.ksh shell腳本 398
13.2.6 使用getopts解析命令行 403
13.2.7 為bc工具創(chuàng)建數(shù)學運算語句 405
13.2.8 here文檔和提交結(jié)果 406
13.2.9 創(chuàng)建float_multiply.ksh shell腳本 407
13.2.10 解析命令行以獲取有效數(shù)字 412
13.2.11 創(chuàng)建float_divide.ksh shell 腳本 413
13.2.12 創(chuàng)建float_average.ksh shell 腳本 420
13.3 其他需要考慮的問題 424
13.4 小結(jié) 425
13.5 作業(yè) 425
第14章 數(shù)制轉(zhuǎn)換 427
14.1 語法 427
14.1.1 例1:將十進制轉(zhuǎn)換為十六進制 428
14.1.2 例2:將八進制轉(zhuǎn)換為十六進制 428
14.1.3 例3:十進制數(shù)轉(zhuǎn)換為八進制 429
14.1.4 例4:將十進制轉(zhuǎn)換為十六進制 429
14.2 利用腳本解決問題 429
14.2.1 二進制轉(zhuǎn)換為十六進制的shell腳本 429
14.2.2 十進制轉(zhuǎn)換為十六進制的腳本 432
14.2.3 基于十六進制IP地址產(chǎn)生軟件授權(quán)碼的腳本 436
14.2.4 在任何數(shù)制之間進行轉(zhuǎn)換的腳本 440
14.2.5 利用getopts分析命令行 445
14.2.6 繼續(xù)完善腳本 446
14.2.7 主程序的開始 448
14.3 轉(zhuǎn)換數(shù)制的簡單、可交互的腳本 449
14.4 利用bc工具進行數(shù)制轉(zhuǎn)換 454
14.5 其他需要考慮的問題 460
14.6 小結(jié) 460
14.7 作業(yè) 460
第15章 hgrep:高亮顯示的grep腳本 461
15.1 反白顯示控制 461
15.2 創(chuàng)建hgrep.Bash shell腳本 463
15.3 其他需要考慮的問題 469
15.4 小結(jié) 470
15.5 作業(yè) 470
第16章 監(jiān)視進程和應(yīng)用程序 471
16.1 監(jiān)視本地進程 471
16.2 利用安全shell和遠程shell進行遠程監(jiān)控 473
16.2.1 檢查活動的Oracle數(shù)據(jù)庫 479
16.2.2 使用autoexpect產(chǎn)生一個expect腳本 482
16.2.3 檢查HTTP服務(wù)器/應(yīng)用程序是否運行 487
16.3 等待進程執(zhí)行完畢 488
16.4 其他需要考慮的問題 489
16.4.1 echo的正確用法 489
16.4.2 應(yīng)用程序API和SNMP陷阱 490
16.5 小結(jié) 490
16.6 作業(yè) 491
第Ⅲ部分 系統(tǒng)管理員腳本
第17章 文件系統(tǒng)的監(jiān)視 495
17.1 語法 495
17.2 為監(jiān)視添加異常功能 500
17.3 剩余空間方法 506
17.4 使用帶異常功能的MB剩余空間方法 509
17.5 已用百分比——MB剩余空間和大型文件系統(tǒng) 513
17.6 在AIX、Linux、HP-UX、OpenBSD和Solaris上運行文件系統(tǒng)腳本 522
17.6.1 不同操作系統(tǒng)命令語法和輸出之間的差異 523
17.6.2 編寫中性shell(shell-neutral)腳本 528
17.7 其他應(yīng)考慮的問題 537
17.7.1 事件通知 537
17.7.2 自動執(zhí)行 538
17.7.3 修改egrep語句 538
17.8 小結(jié) 538
17.9 作業(yè) 539
第18章 監(jiān)視頁面調(diào)度和交換空間 541
18.1 語法 542
18.1.1 AIX 的lsps命令 542
18.1.2 HP-UX下的swapinfo命令 543
18.1.3 Linux下的free命令 543
18.1.4 OpenBSD下的swapctl命令 544
18.1.5 Solaris下的swap命令 544
18.2 編寫shell腳本 544
18.2.1 AIX分頁監(jiān)視器 544
18.2.2 HP-UX交換空間監(jiān)視器 549
18.2.3 Linux交換空間監(jiān)視器 554
18.2.4 OpenBSD交換空間監(jiān)視器 557
18.2.5 Solaris交換空間監(jiān)視器 560
18.2.6 5合1分頁和交換空間監(jiān)視器 564
18.3 其他需要考慮的問題 572
18.3.1 事件通知 572
18.3.2 日志文件 572
18.3.3 預(yù)約監(jiān)視 572
18.4 小結(jié) 572
18.5 作業(yè) 573
第19章 系統(tǒng)負荷監(jiān)視 575
19.1 在Linux上安裝系統(tǒng)統(tǒng)計程序 576
19.2 語法 577
19.2.1 uptime命令的語法 578
19.2.2 iostat語法 579
19.2.3 sar的命令語法 582
19.2.4 vmstat命令的語法 584
19.3 利用腳本解決問題 587
19.3.1 使用uptime命令測量系統(tǒng)負荷 587
19.3.2 使用sar命令測量系統(tǒng)負荷 591
19.3.3 使用iostat命令測量系統(tǒng)負荷 596
19.3.4 使用vmstat測量系統(tǒng)負荷 601
19.4 其他需要考慮的問題 604
19.4.1 嘗試為用戶檢測任何可能的問題 605
19.4.2 向用戶顯示CPU占用程序列表 605
19.4.3 收集用于描繪曲線的大量數(shù)據(jù) 605
19.5 小結(jié) 605
19.6 作業(yè) 606
第20章 對陳舊磁盤分區(qū)的監(jiān)視(AIX特有) 607
20.1 AIX邏輯卷標管理器 607
20.2 命令和方法 608
20.2.1 磁盤子系統(tǒng)命令 608
20.2.2 方法1:在LV級監(jiān)視陳舊PP 608
20.2.3 方法2:在PV級監(jiān)視陳舊分區(qū) 613
20.2.4 方法3:帶重新同步功能的VG、LV和PV監(jiān)視 616
20.3 其他需要考慮的問題 622
20.3.1 SSA磁盤 622
20.3.2 日志文件 623
20.3.3 自動執(zhí)行 623
20.3.4 事件通知 623
20.4 小結(jié) 623
20.5 作業(yè) 624
第21章 打開/關(guān)閉SSA磁盤識別指示燈 625
21.1 語法 625
21.1.1 hdisk轉(zhuǎn)換為pdisk 626
21.1.2 標識一個SSA磁盤 626
21.2 腳本編寫過程 626
21.2.1 用法函數(shù)和用戶反饋函數(shù) 627
21.2.2 控制函數(shù) 630
21.2.3 完整的shell腳本 635
21.3 其他需要考慮的問題 646
21.3.1 錯誤日志 646
21.3.2 交叉引用 646
21.3.3 Root訪問和sudo 646
21.4 小結(jié) 647
21.5 作業(yè) 647
第22章 帶失敗通知的自動主機ping測試 649
第23章 制作系統(tǒng)配置鏡像 665
第24章 sudo的編譯、安裝、配置和使用 697
第25章 脫離打印隊列地獄:保持打印機持續(xù)工作 727
第26章 那些討厭的SOX審計 765
第27章 使用Dirvish和rsync創(chuàng)建快照類型的備份 779
第28章 對用戶按鍵進行監(jiān)視和審計 841
附錄A Web站點上的內(nèi)容 859

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號