本書極為實用,通過對101個shell腳本實例及其核心內(nèi)容的講解,展示如何在實際工作中利用shell腳本解決各種常見問題。涉及的主要內(nèi)容有:簡化shell腳本的工具和技巧,用戶命令改進(jìn),Unix調(diào)校,用戶管理,系統(tǒng)維護(hù),網(wǎng)絡(luò)資源處理,網(wǎng)站管理,Internet服務(wù)器管理,OS X腳本,云服務(wù)相關(guān)腳本,圖像處理。
shell腳本是幫助程序員和系統(tǒng)管理員完成費時費力的枯燥工作的利器,是與計算機(jī)交互并管理文件和系統(tǒng)操作的有效方式。區(qū)區(qū)幾行代碼,就可以讓計算機(jī)完全按照你的意圖行事。
本書是難得一見的實戰(zhàn)經(jīng)典,通過101個簡短緊湊的腳本實例及其核心內(nèi)容的講解,展示了shell腳本編程的實用技術(shù)和常見工具用法。讀者只需根據(jù)自己的需求,將書中這些常見任務(wù)和可移植自動化腳本推廣應(yīng)用到其他類似問題上,能解決那些三天兩頭碰上的麻煩事。
戴夫·泰勒 (Dave Taylor),三十余年IT行業(yè)經(jīng)驗, 4.4BSD貢獻(xiàn)者,其他一些主要的UNIX發(fā)行版也采用了他寫的軟件。經(jīng)常受邀參加技術(shù)大會,并為報紙雜志撰寫專欄技術(shù)文章,是Linux Journal雜志深受歡迎的專欄作家,還維護(hù)著自己的技術(shù)支持網(wǎng)站askdavetaylor.com。
布蘭登·佩里(Brandon Perry),Linux技術(shù)專家,熱愛技術(shù),經(jīng)常為Metasploit框架編寫模塊、解析二進(jìn)制文件以及做模糊測試。另著有Gray Hat C#。
譯者簡介
門佳,GNU/Linux深度用戶,喜歡溯本求源,挖掘技術(shù)背后的來龍去脈,對程序語言設(shè)計理論、編譯技術(shù)、操作系統(tǒng)設(shè)計與實現(xiàn)、Web開發(fā)等領(lǐng)域均有涉獵,譯著包括《TCP Sockets編程》《精通JavaScript(第2版)》《Linux命令行與shell腳本編程大全(第3版)》《Linux Shell腳本攻略》等。
第 0 章 shell腳本速成 1
0.1 什么是shell腳本 1
0.2 執(zhí)行命令 2
0.3 配置登錄腳本 3
0.4 運行shell腳本 4
0.5 讓shell腳本用起來更自然 5
0.6 為什么要用shell腳本 6
0.7 開始動手吧 7
第 1 章 遺失的代碼庫 8
什么是POSIX 8
腳本#1 在PATH中查找程序 9
腳本#2 驗證輸入:僅限字母數(shù)字 13
腳本#3 規(guī)范日期格式 15
腳本#4 美化多位數(shù)字 18
腳本#5 驗證整數(shù)輸入 20
腳本#6 驗證浮點數(shù)輸入 23
腳本#7 驗證日期格式 26
腳本#8 避用差勁的echo實現(xiàn) 29
腳本#9 任意精度的浮點數(shù)計算器 31
腳本#10 文件鎖定 33
腳本#11 ANSI顏色序列 36
腳本#12 構(gòu)建shell腳本庫 38
腳本#13 shell腳本調(diào)試 40
第 2 章 改進(jìn)用戶命令 45
腳本#14 格式化過長的行 46
腳本#15 刪除文件時做備份 48
腳本#16 處理被刪除文件的歸檔 51
腳本#17 記錄文件刪除操作 55
腳本#18 顯示目錄內(nèi)容 57
腳本#19 按照文件名定位文件 60
腳本#20 模擬MS-DOS環(huán)境 63
腳本#21 顯示不同時區(qū)的時間 65
第 3 章 創(chuàng)建實用工具 70
腳本#22 提醒工具 70
腳本#23 交互式計算器 73
腳本#24 溫度轉(zhuǎn)換 75
腳本#25 計算貸款 78
腳本#26 跟蹤事件 80
第 4 章 Unix調(diào)!86
腳本#27 顯示帶有行號的文件 86
腳本#28 僅折行過長的行 88
腳本#29 顯示文件及其附加信息 90
腳本#30 用quota模擬GNU風(fēng)格選項 91
腳本#31 讓sftp用起來像ftp 93
腳本#32 改進(jìn)grep 95
腳本#33 處理壓縮文件 98
腳本#34 確保最大化壓縮文件 101
第 5 章 系統(tǒng)管理:用戶管理 104
腳本#35 分析磁盤用量 105
腳本#36 報告磁盤占用大戶 107
腳本#37 提高df輸出的可讀性 109
腳本#38 獲取可用的磁盤空間 111
腳本#39 實現(xiàn)安全的locate 113
腳本#40 添加用戶 116
腳本#41 禁用賬戶 119
腳本#42 刪除用戶賬戶 121
腳本#43 驗證用戶環(huán)境 124
腳本#44 清理訪客用戶離開后的殘留 126
第 6 章 系統(tǒng)管理:系統(tǒng)維護(hù) 129
腳本#45 跟蹤設(shè)置過setuid的程序 129
腳本#46 設(shè)置系統(tǒng)日期 131
腳本#47 依據(jù)名字殺死進(jìn)程 133
腳本#48 驗證用戶的crontab條目 137
腳本#49 確定系統(tǒng)cron作業(yè)是否運行 141
腳本#50 輪替日志文件 144
腳本#51 備份管理 148
腳本#52 備份目錄 151
第 7 章 Web與Internet用戶 153
腳本#53 通過FTP下載文件 154
腳本#54 從Web頁面中提取URL 157
腳本#55 獲取GitHub的用戶信息 159
腳本#56 查詢郵政編碼 161
腳本#57 區(qū)號查詢 162
腳本#58 跟蹤天氣情況 164
腳本#59 挖掘IMDb中的電影信息 166
腳本#60 計算貨幣價值 169
腳本#61 檢索比特幣地址信息 171
腳本#62 跟蹤Web頁面更新 173
第 8 章 網(wǎng)站管理員絕招 177
運行本章中的腳本 178
腳本#63 查看CGI環(huán)境設(shè)置 179
腳本#64 記錄Web事件 181
腳本#65 動態(tài)建立Web頁面 183
腳本#66 將Web頁面變成電子郵件 185
腳本#67 創(chuàng)建Web相冊 188
腳本#68 顯示隨機(jī)文本 190
第 9 章 Web與Internet管理 193
腳本#69 識別無效的內(nèi)部鏈接 193
腳本#70 報告無效的外部鏈接 195
腳本#71 管理Apache密碼 198
腳本#72 使用SFTP同步文件 204
第 10 章 Internet服務(wù)器管理 209
腳本#73 探究Apache access_Log 209
腳本#74 理解搜索引擎流量 213
腳本#75 探究Apache error_Log 216
腳本#76 使用遠(yuǎn)程歸檔避災(zāi) 220
腳本#77 監(jiān)視網(wǎng)絡(luò)狀態(tài) 222
腳本#78 按照進(jìn)程名調(diào)整任務(wù)優(yōu)先級 228
第 11 章 OS X腳本 232
腳本#79 自動抓屏 233
腳本#80 動態(tài)設(shè)置Terminal標(biāo)題 236
腳本#81 生成iTunes媒體庫匯總列表 237
腳本#82 修正open命令 239
第 12 章 shell腳本趣用與游戲 242
腳本#83 Unscramble:文字游戲 243
腳本#84 Hangman:限制次數(shù)的猜詞游戲 246
腳本#85 各州首府測試 250
腳本#86 素數(shù)游戲 253
腳本#87 擲骰子 255
腳本#88 Acey Deucey 258
第 13 章 與云共舞 265
腳本#89 保持Dropbox運行 265
腳本#90 同步Dropbox 267
腳本#91 從云端照片流中創(chuàng)建幻燈片 270
腳本#92 使用Google Drive同步文件 272
腳本#93 計算機(jī)有話說…… 274
第 14 章 ImageMagick及圖像處理 278
腳本#94 靈巧的圖像尺寸分析工具 278
腳本#95 制作圖片水印 280
腳本#96 給圖片加上相框 283
腳本#97 創(chuàng)建圖片縮略圖 286
腳本#98 解釋GPS地理信息 289
第 15 章 天數(shù)與日期 292
腳本#99 找出過去的某天是星期幾 292
腳本#100 計算兩個日期之間的天數(shù) 294
腳本#101 計算距指定日期還有多少天 297
附錄A 在Windows 10中安裝bash 302
附錄B 免費福利 305