內容簡介
本書共分11章,每一章都可以單獨成冊。讀者可以從頭開始閱讀,也可以選擇自己感興趣的章節閱讀。需要強調的是,本書是一本實戰類的書籍,因此,本書強調實踐的重要性。很多工程師學習Python,學完就忘,忘了再學,循環往復,就是因為實踐不充分導致的。本書包含了大量的實戰案例,可以很好地作為Python的進階教材,讀者也可以舉一反三,編寫自己的管理程式。
圖書目錄
目 錄?Contents推薦序一推薦序二推薦序三前 言第1章 Python語言與Linux系統管理 11.1 Python語言有多流行 11.2 Python語言為什麼流行 31.3 Python語言有什麼缺點 41.4 Python語言的套用場景 41.5 為什麼Python適合Linux系統管理 51.6 使用Python 2還是Python 3 6第2章 Python生態工具 92.1 Python內置小工具 92.1.1 1秒鐘啟動一個下載伺服器 102.1.2 字元串轉換為JSON 102.1.3 檢查第三方庫是否正確安裝 112.2 pip高級用法 122.2.1 pip介紹 122.2.2 pip常用命令 122.2.3 加速pip安裝的技巧 142.3 Python編輯器 152.3.1 編寫Python的vim外掛程式 152.3.2 Windows下Python編輯器PyCharm介紹 172.4 Python編程輔助工具 182.4.1 Python互動式編程 182.4.2 使用IPython互動式編程 202.4.3 jupyter的使用 292.5 Python調試器 312.5.1 標準庫的pdb 322.5.2 開源的ipdb 342.6 Python代碼規範檢查 342.6.1 PEP 8編碼規範介紹 342.6.2 使用pycodestyle檢查代碼規範 362.6.3 使用autopep8將代碼格式化 372.7 Python工作環境管理 392.7.1 使用pyenv管理不同的Python版本 392.7.2 使用virtualenv管理不同的項目 422.8 本章總結 43第3章 打造命令行工具 443.1 與命令行相關的Python語言特性 443.1.1 使用sys.argv獲取命令行參數 453.1.2 使用sys.stdin和fileinput讀取標準輸入 463.1.3 使用SystemExit異常列印錯誤信息 483.1.4 使用getpass庫讀取密碼 493.2 使用ConfigParse解析配置檔案 493.3 使用argparse解析命令行參數 523.3.1 ArgumentParse解析器 523.3.2 模仿MySQL客戶端的命令行參數 543.4 使用logging記錄日誌 553.4.1 日誌的作用 553.4.2 Python的logging模組 563.4.3 配置日誌格式 563.5 與命令行相關的開源項目 593.5.1 使用click解析命令行參數 593.5.2 使用prompt_toolkit打造互動式命令行工具 613.6 本章總結 64第4章 文本處理 654.1 字元串常量 664.1.1 定義字元串 664.1.2 字元串是不可變的有序集合 684.1.3 字元串函式 714.1.4 案例:使用Python分析Apache的訪問日誌 794.1.5 字元串格式化 834.2 正則表達式 854.2.1 正則表達式語法 864.2.2 利用re庫處理正則表達式 874.2.3 常用的re方法 904.2.4 案例:獲取HTML頁面中的所有超連結 944.3 字元集編碼 944.3.1 編碼歷史 954.3.2 UTF-8編碼 964.3.3 從字元集的問題說起 984.3.4 Python 2和Python 3中的Unicode 994.4 Jinja2模板 1014.4.1 模板介紹 1024.4.2 Jinja2語法入門 1024.4.3 Jinja2實戰 1084.4.4 案例:使用Jinja2生成HTML表格和XML配置檔案 1124.5 本章總結 116第5章 Linux系統管理 1175.1 檔案讀寫 1185.1.1 Python內置的open函式 1185.1.2 避免檔案句柄泄露 1195.1.3 常見的檔案操作函式 1205.1.4 Python的檔案是一個可疊代對象 1215.1.5 案例:將檔案中所有單詞的首字母變成大寫 1225.2 檔案與檔案路徑管理 1235.2.1 使用os.path進行路徑和檔案管理 1235.2.2 使用os模組管理檔案和目錄 1265.2.3 案例:列印常用的10條Linux命令 1285.3 查找檔案 1295.3.1 使用fnmatch找到特定的檔案 1295.3.2 使用glob找到特定的檔案 1305.3.3 使用os.walk遍歷目錄樹 1315.3.4 案例:找到目錄下(或老)的十個檔案 1325.4 高級檔案處理接口shutil 1345.4.1 複製檔案和資料夾 1355.4.2 檔案和資料夾的移動與改名 1355.4.3 刪除目錄 1365.5 檔案內容管理 1365.5.1 目錄和檔案比較 1375.5.2 MD5校驗和比較 1395.5.3 案例:找到目錄下的重複檔案 1395.6 使用Python管理壓縮檔 1415.6.1 使用tarfile庫讀取與創建tar包 1415.6.2 使用tarfile庫讀取與創建壓縮檔 1425.6.3 案例:備份指定檔案到壓縮檔中 1425.6.4 使用zipfile庫創建和讀取zip壓縮檔 1435.6.5 案例:暴力破解zip壓縮檔的密碼 1445.6.6 使用shutil創建和讀取壓縮檔 1465.7 Python中執行外部命令 1485.7.1 subprocess模組簡介 1495.7.2 subprocess模組的便利函式 1495.7.3 subprocess模組的Popen類 1515.8 綜合案例:使用Python部署MongoDB 1525.9 本章總結 155第6章 使用Python監控Linux系統 1566.1 Python編寫的監控工具 1576.1.1 多功能系統資源統計工具dstat 1576.1.2 互動式監控工具glances 1606.2 使用Python打造自己的監控工具 1636.2.1 Linux系統的/proc目錄介紹 1636.2.2 proc目錄下常用檔案介紹 1646.2.3 進程目錄下常用檔案介紹 1656.2.4 利用/proc目錄找到被刪除的檔案 1666.2.5 使用shell腳本監控Linux 1686.2.6 使用Python監控Linux 1706
作者簡介
網易杭州研究院雲平台開發工程師,還曾擔任網易的資料庫核心開發工程師和高級運維工程師。是網易雲資料庫MySQL雲平台、MongoDB雲平台的核心開發人員,網易大規模MySQL系統運維的負責人,獨立完成MySQL存儲引擎的TNT自動化研發和測試。精通Python、shell、linux、MySQL、java,有7年linux和Python相關經驗;熟悉MySQL、redis、leveldb源碼,近期關注大數據相關技術。大會分享:2016年在全球敏捷運維峰會、PHP China、IMG社區、Oracle技術嘉年華分享MySQL和Python相關技術。