Chapter 1 Python語言與Linux系統(tǒng)管理 《Python Linux系統(tǒng)管理與自動(dòng)化運(yùn)維》

本書特色

本書介紹了Python語言在Linux系統(tǒng)管理中的應(yīng)用,包括編寫Python腳本管理Linux系統(tǒng),使用Python編寫的自動(dòng)化工具管理Linux系統(tǒng),以及使用Python打造專屬的管理工具等。

實(shí)戰(zhàn)類書籍,有大量實(shí)戰(zhàn)案例。

如何閱讀本書?

共11章,每一章專注于解決某一類問題,均可單獨(dú)成冊(cè),擇需閱讀即可。

Chapter1: 為什么學(xué)Python?

Chapter2:Python的多個(gè)生態(tài)工具,解決學(xué)習(xí)Python中的環(huán)境問題。

Chapter3~7:如何用Python編寫腳本管理Linux?可提高Python編程技能。

如何構(gòu)建命令行工具?

如何處理文本問題?

如何進(jìn)行系統(tǒng)管理?

如何監(jiān)控Linux系統(tǒng)?

如何處理文檔和報(bào)告?······

Chapter8~10:多個(gè)Python語言開發(fā)的工具:網(wǎng)絡(luò)嗅探工具Scapy、自動(dòng)化部署Fabric、自動(dòng)部署工具Ansible,偏重運(yùn)維操作。簡單易用、功能強(qiáng)大、擴(kuò)展性強(qiáng),運(yùn)維工程師的得力助手。

Chapter11:綜合案例——Python打造MySQL的數(shù)據(jù)庫專家系統(tǒng),以數(shù)據(jù)庫為載體,介紹了Python中的高級(jí)語言特性,和Python中的系統(tǒng)架構(gòu)。充分理解本章,可以使自身Python水平有較大提升。

勘誤&資源

github-lalor

Python 語言的流行證明

學(xué)習(xí)一門新技術(shù),該越流行,對(duì)于初學(xué)者越友好,容易提升技能,還有求職優(yōu)勢。

TIOBE 的編程語言排行榜——使編程語言流行趨勢的一個(gè)指標(biāo),它基于互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的工程師、課程和第三方廠商的數(shù)量,使用搜索引擎計(jì)算而得。

Google Trend :查詢Python關(guān)鍵詞搜索

微信搜索指數(shù):對(duì)比關(guān)鍵詞

why Python 開始流行?

  1. 簡單易學(xué):專注于如何解決問題,而不是編程語言的語法和結(jié)構(gòu)

  2. 語法優(yōu)美:縮進(jìn)標(biāo)識(shí)代碼塊,減少大括號(hào),句末分號(hào)等視覺雜訊,提高可讀性

  3. 強(qiáng)大的庫:battery included

  4. 開發(fā)效率高:實(shí)現(xiàn)相同功能,Python的代碼往往只有C、C++、Java的 1/5~1/3,能夠滿足互聯(lián)網(wǎng)快速迭代的需求。

  5. 應(yīng)用領(lǐng)域廣泛:Web開發(fā)、網(wǎng)絡(luò)編程、自動(dòng)化運(yùn)維、自動(dòng)化測試、Linux系統(tǒng)管理、數(shù)據(jù)分析、科學(xué)計(jì)算、人工智能、機(jī)器學(xué)習(xí)等。Python介于腳本語言和系統(tǒng)語言之間,所以,我們按照需求,可以將它當(dāng)成一門腳本語言來編寫腳本,也可以當(dāng)成系統(tǒng)語言來編寫服務(wù)。

Python語言的缺點(diǎn)

  1. 執(zhí)行速度不夠快:不是啥嚴(yán)重問題,一方面,網(wǎng)絡(luò)或磁盤的延遲會(huì)抵消部分Python本身消耗的時(shí)間,另一方面,Python 和C特別容易結(jié)合,可以分離一部分需要優(yōu)化速度的應(yīng)用,將其轉(zhuǎn)換為編譯好的擴(kuò)展,提高整體效率。

  2. Python中的GIL鎖限制并發(fā):Python對(duì)多處理器支持不好,GIL,即Python全局解釋器鎖,Global Interpreter Lock,當(dāng)Python的默認(rèn)解釋器要執(zhí)行字節(jié)碼時(shí),都需要先申請(qǐng)這個(gè)鎖,也就是說,如果試圖通過多線程擴(kuò)展應(yīng)用程序,將總是被這個(gè)GIL限制。

  3. Python2 和Python3 不兼容

Python語言應(yīng)用場景

應(yīng)用場景幾乎無限

Web開發(fā):適合快速迭代,非常適合互聯(lián)網(wǎng)公司。如Django、Pyramid、Bottle、Tornado、Flask、web2py等。說明其能經(jīng)受大規(guī)模用戶的并發(fā)訪問考驗(yàn)。

用戶圖形接口(GUI):標(biāo)準(zhǔn)庫tkInter,PyGObject、PyQt、PySide、Kivy、wxPython等。TKinter可輕松在不同平臺(tái)間使用。

數(shù)值計(jì)算和科學(xué)計(jì)算:取代Matlab,成為科研新寵,SciPy、NumPy、Pandas等。

系統(tǒng)管理:OpenStack開源云計(jì)算平臺(tái)即使用Python開發(fā),除此,還有Ansible和Salt等自動(dòng)化部署工具。

其他:pygame開發(fā)游戲,PIL庫處理圖片,NLTK進(jìn)行自然語言處理等。

why Python適合Linux系統(tǒng)管理

  1. Python程序語法清晰、簡單易懂,相對(duì)而言,shell作為基本功,語法復(fù)雜、可讀性、可維護(hù)性差。

  2. Python表達(dá)能力強(qiáng):相對(duì)shell,有豐富的數(shù)據(jù)結(jié)構(gòu)等,也可以進(jìn)行多線程編程,shell辦不到。

  3. Python可跨平臺(tái):Python標(biāo)準(zhǔn)庫對(duì)操作系統(tǒng)的接口進(jìn)行了封裝,如Python標(biāo)準(zhǔn)庫綁定了POSIX以及其他常規(guī)操作工具,如環(huán)境變量、文件、套接字、管道、進(jìn)程、多線程、正則、命令行參數(shù)、Shell命令啟動(dòng)器、文件名擴(kuò)展等。相對(duì)于shell,有了跨平臺(tái)的優(yōu)勢。

  4. 可方面地與操作系統(tǒng)集成,可以使用標(biāo)準(zhǔn)庫對(duì)OS地封裝,也可以在Python中執(zhí)行Linux命令,完成任何管理任務(wù)。

  5. 許多Linux系統(tǒng)管理的開源項(xiàng)目:如psutil監(jiān)控、IPy的IP地址管理等

  6. 許多自動(dòng)化管理工具:Fabric、Ansible、SaltStack等

  7. Linux系統(tǒng)管理,可以發(fā)揮Python優(yōu)點(diǎn),避免其缺點(diǎn)——開發(fā)效率高,執(zhí)行速度要求不高

Python2 vs Python3

通過Google統(tǒng)計(jì)分析

https://cloud.google.com/bigquery/querying-data 中執(zhí)行下面的語句,查詢不同Python版本依賴包的下載數(shù)據(jù)

SELECT details.python, count() as count FROM [the-psf:pypi.downloads20190930] GROUP BY details.python;*

統(tǒng)計(jì)中國Python版本使用情況

SELECT details.python, count() as count FROM [the-psf:pypi.downloads20190930] where country_code = 'CN' GROUP BY details.python;*

建議:

充分使用**future** 庫,可以很好兼容Python2 和Python3 ;

可參考OpenStack的做法,兼容Python2和Python3,也可用six庫同時(shí)兼容2和3;

了解在Python3 中,已經(jīng)棄用的Python2 語法;

版本推薦:Python2 > 2.7 Python3 > 3.4

拓展閱讀

TIOBE之2019年8月編程語言排行

知乎-像 TIOBE 這樣的編程語言排行榜是如何統(tǒng)計(jì)出來的?

官網(wǎng)-TIOBE Programming Community Index Definition

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容