內容簡介
本書可分為五大部分:部分為第1章~第4章,此部分著重介紹新手如何學好Shell編程。涉及的內容包括Shell編程的入門介紹、基礎知識、運行原理、編程語法、編程習慣、變量知識以及變量的深入實踐。第二部分為第5章~第8章,著重講解變量的多種數值運算、條件測試與比較、if條件判斷語句、Shell函數等相關的知識。第三部分為第9章~第13章,著重講解case條件語句、while循環和until型循環、for循環和select循環、條件與循環控製及程序返迴值、Shell數組等知識。第四部分為第14章~第16章,著重講解Shell腳本開發規範與編碼習慣、Shell腳本的調試知識和技巧、Shell腳本開發環境的配置調整和優化等。第五部分為第17章~第20章,著重講解Linux信號及trap命令的企業應用實踐、Expect自動化交互式程序的應用實踐、貫穿全書技術的麵試題和企業實戰案例,以及子Shell知識。
作者簡介
老男孩,專注於Linux運維架構領域一綫運維及管理工作13年以上,擅長大規模互聯網網站集群架構技術細節,曾服務於全國大的基礎遠程教育公司及全球大的中文百科網站,曾為某門戶網站的早期及某大型培訓機構早期提供過顧問服務,老男孩老師對於運維技術有著非同常人的獨特理解,經過近10多年工作和教學,形成瞭比較完善的個人創新的運維思想、思維體係,長期擔當多傢互聯網企業技術顧問及企業培訓特聘講師。曾3度創業,後於2007年開辦國內Linux運維實戰培訓私塾式精英教育培訓機構及項目實施服務公司【老男孩Linux高薪實戰教育】。截止到2014年8月,纍計受益學生達到數萬人,至今仍工作在一綫,運維及教育。
目錄
前 言
第1章 如何纔能學好Shell編程 / 1
1.1 為什麼要學習Shell編程 / 1
1.2 學好Shell編程所需的基礎知識 / 1
1.3 如何纔能學好Shell編程之“老鳥”經驗談 / 3
1.4 學完本書後可以達到何種Shell編程高度 / 5
第2章 Shell腳本初步入門 / 6
2.1 什麼是Shell / 6
2.2 什麼是Shell腳本 / 7
2.3 Shell腳本在Linux運維工作中的地位 / 8
2.4 腳本語言的種類 / 9
2.5 常用操作係統默認的Shell / 11
2.6 Shell腳本的建立和執行 / 12
第3章 Shell變量的核心基礎知識與實踐 / 22
3.1 什麼是Shell變量 / 22
3.2 環境變量 / 23
3.3 普通變量 / 31
3.4 變量定義技巧總結 / 40
第4章 Shell變量知識進階與實踐 / 41
4.1 Shell中特殊且重要的變量 / 41
4.2 bash Shell內置變量命令 / 52
4.3 Shell變量子串知識及實踐 / 55
4.4 Shell特殊擴展變量的知識與實踐 / 60
第5章 變量的數值計算實踐 / 65
5.1 算術運算符 / 65
5.2 雙小括號“(())”數值運算命令 / 66
5.3 let運算命令的用法 / 73
5.4 expr命令的用法 / 75
5.5 bc命令的用法 / 81
5.6 awk實現計算 / 83
5.7 declare(同typeset)命令的用法 / 83
5.8 $[]符號的運算示例 / 83
5.9 基於Shell變量輸入read命令的運算實踐 / 84
第6章 Shell腳本的條件測試與比較 / 92
6.1 Shell腳本的條件測試 / 92
6.2 文件測試錶達式 / 97
6.3 字符串測試錶達式 / 102
6.4 整數二元比較操作符 / 105
6.5 邏輯操作符 / 108
6.6 測試錶達式test、[]、[[]]、(())的區彆總結 / 120
第7章 if條件語句的知識與實踐 / 121
7.1 if條件語句 / 121
7.2 if條件語句企業案例精講 / 132
第8章 Shell函數的知識與實踐 / 151
8.1 Shell函數的概念與作用介紹 / 151
8.2 Shell函數的語法 / 152
8.3 Shell函數的執行 / 152
8.4 Shell函數的基礎實踐 / 153
8.5 利用Shell函數開發企業級URL檢測腳本 / 155
8.6 利用Shell函數開發一鍵優化係統腳本 / 158
8.7 利用Shell函數開發rsync服務啓動腳本 / 166
第9章 case條件語句的應用實踐 / 169
9.1 case條件語句的語法 / 169
9.2 case條件語句實踐 / 171
9.3 實踐:給輸齣的字符串加顔色 / 176
9.4 case語句企業級生産案例 / 181
9.5 case條件語句的Linux係統腳本範例 / 187
9.6 本章小結 / 191
第10章 while循環和until循環的應用實踐 / 192
10.1 當型和直到型循環語法 / 192
10.2 當型和直到型循環的基本範例 / 194
第11章 for和select循環語句的應用實踐 / 217
第12章 循環控製及狀態返迴值的應用實踐 / 249
第13章 Shell數組的應用實踐 / 260
第14章 Shell腳本開發規範 / 279
第15章 Shell腳本的調試 / 286
第16章 Shell腳本開發環境的配置和優化實踐 / 297
第17章 Linux信號及trap命令的企業應用實踐 / 310
第18章 Expect自動化交互式程序應用實踐 / 317
第19章 企業Shell麵試題及企業運維實戰案例 / 340
第20章 子Shell及Shell嵌套模式知識應用 / 377
附 錄 Linux重要命令匯總 / 393
前言/序言
前言為什麼要寫這本書目前全球正處於互聯網+的時代,越來越多的傳統企業都在通過互聯網提供産品和服務,比如,互聯網+教育、互聯網+金融、互聯網+電商、互聯網+齣租車、互聯網+保險等,可以看到,幾乎所有的産品、服務都能在網上找到。而支撐互聯網的幕後英雄其實就是Linux(包括移動互聯網在內),掌握Linux運維技術已經成為每一個IT技術人員的必備技能!
互聯網+的時代下企業的網站流量呈爆炸式增長,如果你是運維人員,很可能要麵對幾十颱、幾百颱、上韆颱甚至上萬颱的服務器設備,而對於企業來說,如何提高IT運維的管理效率、降低成本也成瞭最大問題。要解決這個問題,必須在Linux運維工作中,做好運維服務的標準化、規範化、流程化和自動化,而這裏麵的前三項其實是在為最後一項“IT運維自動化”做鋪墊。
要實現IT運維自動化就需要學會編程語言,目前Linux係統下最流行的運維自動化語言就是Shell和Python(Python相關圖書,作者正在寫作中)。在這兩者之中,Shell又幾乎是所有IT企業都必須使用的運維自動化編程語言,特彆是在運維工作中的服務監控、業務快速部署、服務啓動停止、數據備份及處理、日誌分析等環節裏,Shell必不可少。當然Python也是一門很好的自動化編程語言,它和Shell是互補的,Shell更適閤係統底層,而Python則更適閤處理復雜的業務邏輯,以及開發復雜的運維軟件工具,實現通過Web訪問等。
在長期的運維工作以及深度教學中,老男孩發現很多Linux入門人員很害怕Shell編程,覺得Shell不好掌握,甚至是已經工作的企業運維人員對Shell編程也是一知半解,不能熟練運用。而市麵上的Shell圖書大多如齣一轍,理論多,實戰少。因此在眾多學員和網友的關注和提議下,老男孩決定寫一本比較與眾不同的偏重實戰的Shell編程書籍,相信本書一定會讓眾多讀者受益,提升個人在企業工作中的效率,達到加薪升職的目的。
本書是老男孩Linux運維實戰係列的第二本書,第一本是《跟老男孩學習Linux運維:Web集群實踐》(已由機械工業齣版社齣版),第三本是《跟老男孩學習Linux運維:三劍客命令實戰》(預計書名),此書將在幾個月後和大傢見麵。更多Linux運維實戰係列的圖書在持續寫作中,敬請期待。
讀者對象熱衷於IT運維自動化的人員Linux係統管理員和運維工程師互聯網網站開發及數據庫管理人員網絡管理員和項目實施工程師Linux相關售前售後技術工程師開設Linux相關課程的大中專院校對Linux及Shell編程感興趣的人員如何閱讀本書本書是一本較完整的Shell編程實戰型圖書,並非大而全,但處處可以體現實戰二字,大多內容取於企業實戰,並結閤老男孩十幾年的運維工作和教學工作進行瞭梳理。本書從脈絡上可分為五大部分:
第一部分為Shell編程基礎篇(第1章~第4章),著重介紹新手如何學好Shell編程,涉及的內容包括Shell編程的入門介紹、基礎知識、運行原理、編程語法、編程習慣、變量知識以及變量的深入實踐。讀者學完此部分,將會具備一個學好Shell編程的堅實基礎。
第二部分為初中級的實戰知識和技能篇(第5章~第8章),著重講解變量的多種數值運算、條件測試與比較、if條件判斷語句、Shell函數等相關的知識,並給齣瞭企業實戰技巧和案例。本部分是學好Shell編程的重中之重,讀者必須掌握。
第三部分為Shell中高級實戰知識和技能篇(第9章~第13章),著重講解case條件語句、while循環和until型循環、for循環和select循環、條件與循環控製及狀態返迴值、Shell數組等知識,以及相應的實戰技巧和案例。本部分同樣是學好Shell編程的重中之重,讀者必須掌握。
第四部分為高效Shell編程必備知識篇(第14章~第16章),著重講解Shell腳本開發規範與編碼習慣、Shell腳本的調試知識和技巧、Shell腳本開發環境的配置調整和優化等。
第五部分為Shell特殊應用及企業麵試、實戰案例篇(第17章~第19章),著重講解Linux信號及trap命令的企業應用實踐、Expect自動化交互式程序的應用實踐,以及能體現全書所講技術的麵試題和企業實戰案例,讓真正的Shell全自動化運維成為可能。
最後一章補充講解瞭大傢易感睏惑的子Shell知識及應用實踐內容。
勘誤和支持由於作者所授的培訓課程排期很緊,課程較多,全書內容基本上都是利用早晨和夜裏的時間完成寫作的。限於作者的水平和能力,加之編寫的時間倉促,書中難免有疏漏和不當之處,懇請讀者批評指正。你可以將書中的錯誤發布在專門為本書準備的博客地址評論處(http://oldboy.blog.51cto.com/2561410/1865956或微博http://weibo.com/oldboy8)。同時不管你遇到何種問題,都可以加入我為本書提供的QQ交流群204041129(驗證信息:Shell書籍),我將盡力為你提供最滿意的解答。書中所需的工具及源文件也將發布在的博客網站上(書中大部分章節結尾都給齣瞭相關網址及二維碼),我也會將相應功能的更新及時發布齣來。如果你有更多的寶貴意見,也歡迎發送郵件至郵箱oldboy@oldboyedu.com,很期待能夠聽到你們的真摯反饋。
緻謝感謝猶金毅、何清等為本書貢獻第20章的重要底稿內容及對本書的寫作給予的支持。
跟老男孩學Linux運維:Shell編程實戰 下載 mobi epub pdf txt 電子書 格式