目录?Contents
推荐序一
推荐序二
推荐序三
前言
第1章Python语言与Linux系统管理1
1.1Python语言有多流行1
1.2Python语言为什么流行3
1.3Python语言有什么缺点4
1.4Python语言的应用场景4
1.5为什么Python适合Linux系统管理5
1.6使用Python2还是Python36
第2章Python生态工具9
2.1Python内置小工具9
2.1.11秒钟启动一个下载服务器10
2.1.2字符串转换为JSON10
2.1.3检查第三方库是否正确安装11
2.2pip高级用法12
2.2.1pip介绍12
2.2.2pip常用命令12
2.2.3加速pip安装的技巧14
2.3Python编辑器15
2.3.1编写Python的vim插件15
2.3.2Windows下Python编辑器PyCharm介绍17
2.4Python编程辅助工具18
2.4.1Python交互式编程18
2.4.2使用IPython交互式编程20
2.4.3jupyter的使用29
2.5Python调试器31
2.5.1标准库的pdb32
2.5.2开源的ipdb34
2.6Python代码规范检查34
2.6.1PEP8编码规范介绍34
2.6.2使用pycodestyle检查代码规范36
2.6.3使用autopep8将代码格式化37
2.7Python工作环境管理39
2.7.1使用pyenv管理不同的Python版本39
2.7.2使用virtualenv管理不同的项目42
2.8本章总结43
第3章打造命令行工具44
3.1与命令行相关的Python语言特性44
3.1.1使用sys.argv获取命令行参数45
3.1.2使用sys.stdin和fileinput读取标准输入46
3.1.3使用SystemExit异常打印错误信息48
3.1.4使用getpass库读取密码49
3.2使用ConfigParse解析配置文件49
3.3使用argparse解析命令行参数52
3.3.1ArgumentParse解析器52
3.3.2模仿MySQL客户端的命令行参数54
3.4使用logging记录日志55
3.4.1日志的作用55
3.4.2Python的logging模块56
3.4.3配置日志格式56
3.5与命令行相关的开源项目59
3.5.1使用click解析命令行参数59
3.5.2使用prompt_toolkit打造交互式命令行工具61
3.6本章总结64
第4章文本处理65
4.1字符串常量66
4.1.1定义字符串66
4.1.2字符串是不可变的有序集合68
4.1.3字符串函数71
4.1.4案例:使用Python分析Apache的访问日志79
4.1.5字符串格式化83
4.2正则表达式85
4.2.1正则表达式语法86
4.2.2利用re库处理正则表达式87
4.2.3常用的re方法90
4.2.4案例:获取HTML页面中的所有超链接94
4.3字符集编码94
4.3.1编码历史95
4.3.2UTF-8编码96
4.3.3从字符集的问题说起98
4.3.4Python2和Python3中的Unicode99
4.4Jinja2模板101
4.4.1模板介绍102
4.4.2Jinja2语法入门102
4.4.3Jinja2实战108
4.4.4案例:使用Jinja2生成HTML表格和XML配置文件112
4.5本章总结116
第5章Linux系统管理117
5.1文件读写118
5.1.1Python内置的open函数118
5.1.2避免文件句柄泄露119
5.1.3常见的文件操作函数120
5.1.4Python的文件是一个可迭代对象121
5.1.5案例:将文件中所有单词的首字母变成大写122
5.2文件与文件路径管理123
5.2.1使用os.path进行路径和文件管理123
5.2.2使用os模块管理文件和目录126
5.2.3案例:打印最常用的10条Linux命令128
5.3查找文件129
5.3.1使用fnmatch找到特定的文件129
5.3.2使用glob找到特定的文件130
5.3.3使用os.walk遍历目录树131
5.3.4案例:找到目录下最大(或最老)的十个文件132
5.4高级文件处理接口shutil134
5.4.1复制文件和文件夹135
5.4.2文件和文件夹的移动与改名135
5.4.3删除目录136
5.5文件内容管理136
5.5.1目录和文件比较137
5.5.2MD5校验和比较139
5.5.3案例:找到目录下的重复文件139
5.6使用Python管理压缩包141
5.6.1使用tarfile库读取与创建tar包141
5.6.2使用tarfile库读取与创建压缩包142
5.6.3案例:备份指定文件到压缩包中142
5.6.4使用zipfile库创建和读取zip压缩包143
5.6.5案例:暴力破解zip压缩包的密码144
5.6.6使用shutil创建和读取压缩包146
5.7Python中执行外部命令148
5.7.1subprocess模块简介149
5.7.2subprocess模块的便利函数149
5.7.3subprocess模块的Popen类151
5.8综合案例:使用Python部署MongoDB152
5.9本章总结155
第6章使用Python监控Linux系统156
6.1Python编写的监控工具157
6.1.1多功能系统资源统计工具dstat157
6.1.2交互式监控工具glances160
6.2使用Python打造自己的监控工具163
6.2.1Linux系统的/proc目录介绍163
6.2.2proc目录下常用文件介绍164
6.2.3进程目录下常用文件介绍165
6.2.4利用/proc目录找到被删除的文件166
6.2.5使用shell脚本监控Linux168
6.2.6使用Python监控Linux170
6