跟老男孩學Linux運維:Shell編程實戰(zhàn)
定 價:89 元
叢書名:Linux/Unix技術(shù)叢書
- 作者:老男孩
- 出版時間:2017/1/1
- ISBN:9787111556077
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP316.85
- 頁碼:
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書可分為五大部分:*部分為第1章~第4章,此部分著重介紹新手如何學好Shell編程。涉及的內(nèi)容包括Shell編程的入門介紹、基礎知識、運行原理、編程語法、編程習慣、變量知識以及變量的深入實踐。第二部分為第5章~第8章,著重講解變量的多種數(shù)值運算、條件測試與比較、if條件判斷語句、Shell函數(shù)等相關(guān)的知識。第三部分為第9章~第13章,著重講解case條件語句、while循環(huán)和until型循環(huán)、for循環(huán)和select循環(huán)、條件與循環(huán)控制及程序返回值、Shell數(shù)組等知識。第四部分為第14章~第16章,著重講解Shell腳本開發(fā)規(guī)范與編碼習慣、Shell腳本的調(diào)試知識和技巧、Shell腳本開發(fā)環(huán)境的配置調(diào)整和優(yōu)化等。第五部分為第17章~第20章,著重講解Linux信號及trap命令的企業(yè)應用實踐、Expect自動化交互式程序的應用實踐、貫穿全書技術(shù)的面試題和企業(yè)實戰(zhàn)案例,以及子Shell知識。
前言為什么要寫這本書目前全球正處于互聯(lián)網(wǎng) 的時代,越來越多的傳統(tǒng)企業(yè)都在通過互聯(lián)網(wǎng)提供產(chǎn)品和服務,比如,互聯(lián)網(wǎng) 教育、互聯(lián)網(wǎng) 金融、互聯(lián)網(wǎng) 電商、互聯(lián)網(wǎng) 出租車、互聯(lián)網(wǎng) 保險等,可以看到,幾乎所有的產(chǎn)品、服務都能在網(wǎng)上找到。而支撐互聯(lián)網(wǎng)的幕后英雄其實就是Linux(包括移動互聯(lián)網(wǎng)在內(nèi)),掌握Linux運維技術(shù)已經(jīng)成為每一個IT技術(shù)人員的必備技能! 互聯(lián)網(wǎng) 的時代下企業(yè)的網(wǎng)站流量呈爆炸式增長,如果你是運維人員,很可能要面對幾十臺、幾百臺、上千臺甚至上萬臺的服務器設備,而對于企業(yè)來說,如何提高IT運維的管理效率、降低成本也成了最大問題。要解決這個問題,必須在Linux運維工作中,做好運維服務的標準化、規(guī)范化、流程化和自動化,而這里面的前三項其實是在為最后一項IT運維自動化做鋪墊。 要實現(xiàn)IT運維自動化就需要學會編程語言,目前Linux系統(tǒng)下最流行的運維自動化語言就是Shell和Python(Python相關(guān)圖書,作者正在寫作中)。在這兩者之中,Shell又幾乎是所有IT企業(yè)都必須使用的運維自動化編程語言,特別是在運維工作中的服務監(jiān)控、業(yè)務快速部署、服務啟動停止、數(shù)據(jù)備份及處理、日志分析等環(huán)節(jié)里,Shell必不可少。當然Python也是一門很好的自動化編程語言,它和Shell是互補的,Shell更適合系統(tǒng)底層,而Python則更適合處理復雜的業(yè)務邏輯,以及開發(fā)復雜的運維軟件工具,實現(xiàn)通過Web訪問等。 在長期的運維工作以及深度教學中,老男孩發(fā)現(xiàn)很多Linux入門人員很害怕Shell編程,覺得Shell不好掌握,甚至是已經(jīng)工作的企業(yè)運維人員對Shell編程也是一知半解,不能熟練運用。而市面上的Shell圖書大多如出一轍,理論多,實戰(zhàn)少。因此在眾多學員和網(wǎng)友的關(guān)注和提議下,老男孩決定寫一本比較與眾不同的偏重實戰(zhàn)的Shell編程書籍,相信本書一定會讓眾多讀者受益,提升個人在企業(yè)工作中的效率,達到加薪升職的目的。 本書是老男孩Linux運維實戰(zhàn)系列的第二本書,第一本是《跟老男孩學習Linux運維:Web集群實踐》(已由機械工業(yè)出版社出版),第三本是《跟老男孩學習Linux運維:三劍客命令實戰(zhàn)》(預計書名),此書將在幾個月后和大家見面。更多Linux運維實戰(zhàn)系列的圖書在持續(xù)寫作中,敬請期待。 讀者對象熱衷于IT運維自動化的人員Linux系統(tǒng)管理員和運維工程師互聯(lián)網(wǎng)網(wǎng)站開發(fā)及數(shù)據(jù)庫管理人員網(wǎng)絡管理員和項目實施工程師Linux相關(guān)售前售后技術(shù)工程師開設Linux相關(guān)課程的大中專院校對Linux及Shell編程感興趣的人員如何閱讀本書本書是一本較完整的Shell編程實戰(zhàn)型圖書,并非大而全,但處處可以體現(xiàn)實戰(zhàn)二字,大多內(nèi)容取于企業(yè)實戰(zhàn),并結(jié)合老男孩十幾年的運維工作和教學工作進行了梳理。本書從脈絡上可分為五大部分: 第一部分為Shell編程基礎篇(第1章~第4章),著重介紹新手如何學好Shell編程,涉及的內(nèi)容包括Shell編程的入門介紹、基礎知識、運行原理、編程語法、編程習慣、變量知識以及變量的深入實踐。讀者學完此部分,將會具備一個學好Shell編程的堅實基礎。 第二部分為初中級的實戰(zhàn)知識和技能篇(第5章~第8章),著重講解變量的多種數(shù)值運算、條件測試與比較、if條件判斷語句、Shell函數(shù)等相關(guān)的知識,并給出了企業(yè)實戰(zhàn)技巧和案例。本部分是學好Shell編程的重中之重,讀者必須掌握。 第三部分為Shell中高級實戰(zhàn)知識和技能篇(第9章~第13章),著重講解case條件語句、while循環(huán)和until型循環(huán)、for循環(huán)和select循環(huán)、條件與循環(huán)控制及狀態(tài)返回值、Shell數(shù)組等知識,以及相應的實戰(zhàn)技巧和案例。本部分同樣是學好Shell編程的重中之重,讀者必須掌握。 第四部分為高效Shell編程必備知識篇(第14章~第16章),著重講解Shell腳本開發(fā)規(guī)范與編碼習慣、Shell腳本的調(diào)試知識和技巧、Shell腳本開發(fā)環(huán)境的配置調(diào)整和優(yōu)化等。 第五部分為Shell特殊應用及企業(yè)面試、實戰(zhàn)案例篇(第17章~第19章),著重講解Linux信號及trap命令的企業(yè)應用實踐、Expect自動化交互式程序的應用實踐,以及能體現(xiàn)全書所講技術(shù)的面試題和企業(yè)實戰(zhàn)案例,讓真正的Shell全自動化運維成為可能。 最后一章補充講解了大家易感困惑的子Shell知識及應用實踐內(nèi)容。 勘誤和支持由于作者所授的培訓課程排期很緊,課程較多,全書內(nèi)容基本上都是利用早晨和夜里的時間完成寫作的。限于作者的水平和能力,加之編寫的時間倉促,書中難免有疏漏和不當之處,懇請讀者批評指正。你可以將書中的錯誤發(fā)布在專門為本書準備的博客地址評論處(http://oldboy.blog.51cto.com/2561410/1865956或微博http://weibo.com/oldboy8)。同時不管你遇到何種問題,都可以加入我為本書提供的QQ交流群204041129(驗證信息:Shell書籍),我將盡力為你提供最滿意的解答。書中所需的工具及源文件也將發(fā)布在的博客網(wǎng)站上(書中大部分章節(jié)結(jié)尾都給出了相關(guān)網(wǎng)址及二維碼),我也會將相應功能的更新及時發(fā)布出來。如果你有更多的寶貴意見,也歡迎發(fā)送郵件至郵箱oldboy@oldboyedu.com,很期待能夠聽到你們的真摯反饋。 致謝感謝猶金毅、何清等為本書貢獻第20章的重要底稿內(nèi)容及對本書的寫作給予的支持。
老男孩介紹:專注于Linux運維架構(gòu)領(lǐng)域一線運維及管理工作13年以上,擅長大規(guī);ヂ(lián)網(wǎng)網(wǎng)站集群架構(gòu)技術(shù)細節(jié),曾服務于全國大的基礎遠程教育公司及全球大的中文百科網(wǎng)站,曾為某門戶網(wǎng)站的早期及某大型培訓機構(gòu)早期提供過顧問服務,老男孩老師對于運維技術(shù)有著非同常人的獨特理解,經(jīng)過近10多年工作和教學,形成了比較完善的個人創(chuàng)新的運維思想、思維體系,長期擔當多家互聯(lián)網(wǎng)企業(yè)技術(shù)顧問及企業(yè)培訓特聘講師。曾3度創(chuàng)業(yè),后于2007年開辦國內(nèi)首個Linux運維實戰(zhàn)培訓私塾式精英教育培訓機構(gòu)及項目實施服務公司【老男孩Linux高薪實戰(zhàn)教育】。截止到2014年8月,累計受益學生達到數(shù)萬人,至今仍工作在一線,運維及教育。。博客: http://oldboy.blog.51cto.com/網(wǎng)站: http://www.etiantian.org
目錄前 言第1章 如何才能學好Shell編程 / 11.1 為什么要學習Shell編程 / 11.2 學好Shell編程所需的基礎知識 / 11.3 如何才能學好Shell編程之老鳥經(jīng)驗談 / 31.4 學完本書后可以達到何種Shell編程高度 / 5第2章 Shell腳本初步入門 / 62.1 什么是Shell / 62.2 什么是Shell腳本 / 72.3 Shell腳本在Linux運維工作中的地位 / 82.4 腳本語言的種類 / 92.4.1 Shell腳本語言的種類 / 92.4.2 其他常用的腳本語言種類 / 102.4.3 Shell腳本語言的優(yōu)勢 / 112.5 常用操作系統(tǒng)默認的Shell / 112.6 Shell腳本的建立和執(zhí)行 / 122.6.1 Shell腳本的建立 / 122.6.2 Shell腳本的執(zhí)行 / 152.6.3 Shell腳本開發(fā)的基本規(guī)范及習慣 / 19第3章 Shell變量的核心基礎知識與實踐 / 223.1 什么是Shell變量 / 223.2 環(huán)境變量 / 233.2.1 自定義環(huán)境變量 / 263.2.2 顯示與取消環(huán)境變量 / 283.2.3 環(huán)境變量初始化與對應文件的生效順序 / 303.3 普通變量 / 313.3.1 定義本地變量 / 313.3.2 變量定義及變量輸出說明 / 353.4 變量定義技巧總結(jié) / 40第4章 Shell變量知識進階與實踐 / 414.1 Shell中特殊且重要的變量 / 414.1.1 Shell中的特殊位置參數(shù)變量 / 414.1.2 Shell進程中的特殊狀態(tài)變量 / 474.2 bash Shell內(nèi)置變量命令 / 524.3 Shell變量子串知識及實踐 / 554.3.1 Shell變量子串介紹 / 554.3.2 Shell變量子串的實踐 / 564.3.3 變量子串的生產(chǎn)場景應用案例 / 594.4 Shell特殊擴展變量的知識與實踐 / 604.4.1 Shell特殊擴展變量介紹 / 604.4.2 Shell特殊擴展變量的實踐 / 614.4.3 Shell特殊擴展變量的生產(chǎn)場景應用案例 / 63第5章 變量的數(shù)值計算實踐 / 655.1 算術(shù)運算符 / 655.2 雙小括號(())數(shù)值運算命令 / 665.2.1 雙小括號(())數(shù)值運算的基礎語法 / 665.2.2 雙小括號(())數(shù)值運算實踐 / 665.3 let運算命令的用法 / 735.4 expr命令的用法 / 755.4.1 expr命令的基本用法示例 / 755.4.2 expr的企業(yè)級實戰(zhàn)案例詳解 / 765.5 bc命令的用法 / 815.6 awk實現(xiàn)計算 / 835.7 declare(同typeset)命令的用法 / 835.8 $[]符號的運算示例 / 835.9 基于Shell變量輸入read命令的運算實踐 / 845.9.1 read命令基礎 / 845.9.2 以read命令讀入及傳參的綜合企業(yè)案例 / 87第6章 Shell腳本的條件測試與比較 / 926.1 Shell腳本的條件測試 / 926.1.1 條件測試方法綜述 / 926.1.2 test條件測試的簡單語法及示例 / 936.1.3 [](中括號)條件測試語法及示例 / 946.1.4 [[]]條件測試語法及示例 / 956.2 文件測試表達式 / 976.2.1 文件測試表達式的用法 / 976.2.2 文件測試表達式舉例 / 976.2.3 特殊條件測試表達式案例 / 1016.3 字符串測試表達式 / 1026.3.1 字符串測試操作符 / 1026.3.2 字符串測試生產(chǎn)案例 / 1046.4 整數(shù)二元比較操作符 / 1056.4.1 整數(shù)二元比較操作符介紹 / 1056.4.2 整數(shù)變量測試實踐示例 / 1076.5 邏輯操作符 / 1086.5.1 邏輯操作符介紹 / 1086.5.2 邏輯操作符實踐示例 / 1106.5.3 邏輯操作符企業(yè)案例 / 1126.6 測試表達式test、[]、[[]]、(())的區(qū)別總結(jié) / 120第7章 if條件語句的知識與實踐 / 1217.1 if條件語句 / 1217.1.1 if條件語句的語法 / 1217.1.2 if條件語句多種條件表達式語法 / 1257.1.3 單分支if條件語句實踐 / 1267.1.4 if條件語句的深入實踐 / 1307.2 if條件語句企業(yè)案例精講 / 1327.2.1 監(jiān)控Web和數(shù)據(jù)庫的企業(yè)案例 / 1327.2.2 比較大小的經(jīng)典拓展案例 / 1427.2.3 判斷字符串是否為數(shù)字的多種思路 / 1437.2.4 判斷字符串長度是否為0的多種思路 / 1457.2.5 更多的生產(chǎn)場景實戰(zhàn)案例 / 145第8章 Shell函數(shù)的知識與實踐 / 1518.1 Shell函數(shù)的概念與作用介紹 / 1518.2 Shell函數(shù)的語法 / 1528.3 Shell函數(shù)的執(zhí)行 / 1528.4 Shell函數(shù)的基礎實踐 / 1538.5 利用Shell函數(shù)開發(fā)企業(yè)級URL檢測腳本 / 1558.6 利用Shell函數(shù)開發(fā)一鍵優(yōu)化系統(tǒng)腳本 / 1588.7 利用Shell函數(shù)開發(fā)rsync服務啟動腳本 / 166第9章 case條件語句的應用實踐 / 1699.1 case條件語句的語法 / 1699.2 case條件語句實踐 / 1719.3 實踐:給輸出的字符串加顏色 / 1769.3.1 給輸出的字符串加顏色的基礎知識 / 1769.3.2 結(jié)合case語句給輸出的字符串加顏色 / 1779.3.3 給輸出的字符串加背景顏色 / 1809.4 case語句企業(yè)級生產(chǎn)案例 / 1819.5 case條件語句的Linux系統(tǒng)腳本范例 / 1879.6 本章小結(jié) / 191第10章 while循環(huán)和until循環(huán)的應用實踐 / 19210.1 當型和直到型循環(huán)語法 / 19210.1.1 while循環(huán)語句 / 19210.1.2 until循環(huán)語句 / 19310.2 當型和直到型循環(huán)的基本范例 / 194