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