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