python基础12-系统操作

这篇我们介绍下跟操作系统相关的一些内容, 操作系统的技能算是我们运维人的基本功了,因为如果连敲命令都吃力的话也提谈不上什么自动化了, 在linux里我们经常用的命令比如, cp,  mv, mkdir, chown,chmod等基本一天下来也就这几个命令反复使用,其实只看这些体现不出来运维的能力,真正体现运维能力的地方是出现问题时如何分析解决,这是难点,这也跟经验有关, 在一个复杂的问题面前,这时候基本功就显得尤为重要,对操作系统理解的深度体现了解决问题的能力差别,如果你想在在操作系统层面理解的更深一点,我推荐你读一下《现代操作系统》这本书,读完这本书你在操作系统层面的认知会有一个比较大的提升,按照运维技术能力的发展,在理解操了操作系统的基础上这个时候我们一般开始接触学习shell编程了, 在这里我说一下做为一个Linux系统管理员,shell是你必须要掌握的技能,虽然Python都能实现,但我仍不建议你跳过shell这个重要阶段,因为如果你做运维,你不可能避免接触shell,就算你不写,你也避免不了去看别人写的shell,还有就是公司不可能就你一个运维,你不用不代表别人不用,你想想如果大家在一个团队里工作,如果都互相看不懂别人的脚本,大家还怎么配合工作?

搞定上面shell阶段后,出于对自己更高的要求(其实想多挣点钱),了解到了现在公司招聘都需要Python,就开始看书发奋学习,在看过书后,开始上手写一些功能脚本,很快就会发现用python很麻烦,不如用shell直接操作方便,不过这也难不倒我们,一顿搜索之后发现了一个宝贝,os.system(), 这个函数可以直接调用shell命令来执行,从那一刻起就像手中有了亚瑟大宝剑,所有需要shell执行的部分全部用这个函数来完成, 等写完某个脚本后感觉非常有成就感,而且感觉自己python水平与日俱增,自我感觉非常良好,但你实际去看写的每个脚本,你发现不到100行的Python代码里有,有一半以上的行都是os.system()调用的shell命令, 好好的shell命令硬生生的在外面包了一层python代码,每当我看到这些代码,我都无语,如果你也在写这种脚本,我建议你尽快停掉这种方式吧,因为你即使写一万行这种代码,对你学习python基本没有质的提升,何必呢,看着都累。

写在最后,因为关于操作系统方面的内容比较基础,我也没准备什么例子去展示,不过为了大家进一步的了解,我列了下一些系统方面的操作供大家参考学习:

判断目录存在和是否文件:

部分常用系统命令:

文件匹配,glob模块使用:

在操作系统层面还有对日期时间的处理可以看我之前的文章。

当然有时避免不了要调用shell命令,但我建议用这种方式,os.system()方式以后就取消了。

 

发表评论