课程目标
1、掌握Shell编程基础,并激发学习兴趣。
2、掌握Shell高级使用方法的要点,解决在实际工作中遇到的问题。
3、在熟练掌握Shell编写模型和编程思路后,可形成快速直译代码的能力。
4、根据所学知识为学习其他语言打下一定基础。
适用人群
1、Linux系统管理员
2、Linux平台运维工程师
3、对Linux系统管理感兴趣的开发人员
4、即将走向IT/互联网/计算机行业的同学们
课程概述
Shell编码能力是检验Linux运维工程师的一把标尺。随着x86分布式的演化,在海量节点的场景下,Shell依旧是Linux运维不可或缺的编程语言工具。用好Shell语言,会大幅提升你的工作效率。从某种程度上讲,写代码是运维的一个分水岭。因为应用场景具有多样性,现成的工具并不总是能够满足我们的需求。所以,会写代码意味着你拥有创造能力。而不懂编程的人遇到问题时,却只能望洋兴叹。
2018年5月,我出版了《IT基础架构——系统运维实践》这部书,书中也涉及到了Shell编程的一些核心知识。这次,我希望能结合书中的核心部分,并丰富一些内容,将其作为一部独立完整的Shell教程分享给大家。
有人说Shell落后了,其实不然。语言是没有优劣之分的,编程的核心在于——如何对事务处理流程的逻辑进行合理地编排调度。不论是实现什么需求,编程就是在描述你是如何做这件事情的,你只不过是把你的做事方法传授给机器徒弟而已。想要写出一个好程序,就像要带出一个好徒弟一样。作为师父,首先你要有清晰的业务逻辑,知道这件事应当怎么做,其次才是向徒弟描述做事的步骤(即代码工作)。
我用Shell做开发也有七、八年的时间了,它有很多优点,比如学习成本低,建模迅速、工具丰富等等。我喜欢它的直观简洁,喜欢它的高度集成,更喜欢用Shell去不断地发起挑战,在攻克一个个难题后,所带来的那种成就感。和《IT基础架构——系统运维实践》这部书一样,我将自己多年累积的实践经验毫无保留地呈现给喜爱它的学员,这是一堂有一说一、脚踏实地的教学。它秉承了我一贯的作教学风:
1、解决三个问题:What(是什么?)How(怎么用?)Where(在哪儿用?)
2、 两种教学方法:举例子、打比方
3、三个授课原则:授人以渔、深入浅出、落地实用
4、三个学成目标:理解概念、掌握方法、融入场景
课程中融合很多有趣的实例,很多是我在实际工作中遇到的问题。例如
1、我是如何动态跟踪并清晰地格式化输出内存的剩余空间的?
2、我是如何去判断一个IP是否合法的?
3、我是如何汇总IO延迟故障的时间点的?
4、我是如何完成字符串大小写转换和数字的最值求取的?
5、我是如何让程序的参数输入标准化的?
6、我又是怎么把程序的执行过程打印到后台日志的?
正如我前面所提到的,每攻克一个难题,不仅是GET到了一个新的技能,更是在这个过程中获得了无限的成就感和快乐。如果你喜欢Linux系统管理并热爱这项事业的话,请和我们一起加入探索Shell编程的旅行吧!