|
|
|
|
移动端

1.3 如何才能学好Shell编程之“老鸟”经验谈

《跟老男孩学Linux运维:Shell编程实战》本书是一本较完整的Shell编程实战型图书,并非大而全,但处处可以体现实战二字,大多内容取于企业实战,并结合老男孩十几年的运维工作和教学工作进行了梳理。本节为大家介绍如何才能学好Shell编程之“老鸟”经验谈。

作者:老男孩来源:机械工业出版社|2017-04-20 18:16

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


1.3 如何才能学好Shell编程之“老鸟”经验谈

学好Shell编程的核心:多练→多思考→再练→再思考,坚持如此循环即可!

从老男孩IT教育毕业的一名学生曾在工作多年后返校分享了一篇“如何学好Shell编程”的讲稿,经过老男孩的整理后和读者分享如下。

(1)掌握Shell脚本基本语法的方法

最简单有效的方法就是将语法敲n+1遍。为什么不是n遍呢?因为这里的n指的是你刚开始为掌握语法而练习的那些天(21天法则),而1则是指在确定掌握语法后每天都要写一写、想一想,至少是要看一看,保持一个与Shell脚本接触的热度。

(2)掌握Shell脚本的各种常见语法

要掌握各类条件表达式、if多种判断、for循环的不同用法、While多种读文件的循环等,这样做不是为了什么都学会,而是为了能够看懂别人写的代码。掌握常见的各种语法,也就是要经常写,而且要持续写一段时间(让动作定型,在大脑和肌肉里都打上深刻烙印),各种语法都要用。

(3)形成自己的脚本开发风格

当掌握了各种常见的语法之后,就要选定一种适合自己的语法,形成自己的开发风格,例如:if语句的语法就只用一种,条件表达式的语法只用一种,函数的写法也只用一种,有些语法需要根据场景去选择,除非你是像师傅(老男孩)一样要教学育人。否则,没有必要什么语法都掌握。在解决问题的前提下,掌握一种语法,然后将其用精、用透就是最好的,切记横向贪多,要多纵深学习。

(4)从简单做起,简单判断,简单循环

初学者一定要从简单做起,最小化代码学习,简单判断,简单循环,简单案例练习,所有的大程序都是由多个小程序组成的,因此,一开始没必要写多大的程序,免得给自己带来过多的挫败感,形成编程恐惧症。可先通过小的程序培养兴趣及成就感,到碰到大的程序时,即使遇到困难也能坚持下去了。

(5)多模仿,多放下参考资料练习,多思考

多找一些脚本例子来仔细分析一下,或者是系统自带的,或者是别人写的(本书就包含大量例子),不要只看,看着会并不是真的会。当你闭上眼睛的时候,还能完整地回忆起来,甚至还能完整口述或手写出来才是真的会。

(6)学会分析问题,逐渐形成编程思维

在编写程序或脚本时,先将需求理解透,对大的需求进行分解,逐步形成小的程序或模块,然后再开发,或者先分析最终需求的基础实现,最后逐步扩展批量实现。例如师傅(老男孩)在编写批量关闭不需要自启动服务的脚本时,就采用了这种分析方法,思路如下:

1)掌握关闭一个服务的命令,即“chkconf?ig服务名off”。

2)批量处理时,会有多个服务名,那么就要用到多条以上的命令。

3)仔细分析以上命令,会发现需要处理的所有命令中,只有“服务名”不同,其他地方都一样,那么自然就会想到用循环语句来处理。

如果是你,能想到这些吗?若是想到了,则表示你已经形成了初级的编程思维了,恭喜你。

如果你能够通过分析将一个大的需求细分为各个小的单元,然后利用函数、判断、循环、命令等实现每一个小的单元,那么最后把所有程序组合起来就是一个大的脚本程序了。

如果达到了上述的水平,你就算会编程了,对于领导提出的需求,就能够进行合理的分解,只要在机器上多进行调试,相信一定能写出来。

(7)编程变量名字要规范,采用驼峰语法表示

oldboyAgeName用的就是驼峰表示法。记住,在学习的初期,不要去看大的脚本,要从小问题和小的方面着手,当你觉得小的判断、循环等在你的脑子里瞬间就能出来时,再开始去看和写大的脚本,进行深入练习。

师傅(老男孩)常说,新手初期最好的学习方法就是多敲代码,并针对问题进行分解练习,多敲代码就是让自己养成一个编程习惯,使肌肉、视觉和思维形成记忆,分解问题实际上就是掌握软件的设计和实现思想。

对于最高的编程境界,我个人的理解是:能把大问题进行完整的分析、分解且高效解决。

完整性:就是指预先考虑到各种可能性,将问题分解后,合理模块化并实现。

高效率:例如,在求“1+2+3...+100”的和时,考虑使用算法“(1+100)×100/2”,而不是逐个去加。

(8)不要拿来主义,特别是新手

好多网友看书或学习视频时,喜欢要文档、要代码,其实,这是学习的最大误区。

有了文档和代码,你会变得非常懒惰,心里面会觉得已经学会了,而实际上并没有学会。因此无论是看书还是学习视频,都要自己完成学习笔记及代码的书写,这本身就是最重要的学习过程,在学习上要肯于花时间和精力,而不是投机取巧。如果你至今都没有学好Linux运维,那么可以想一想是不是也犯了这个错误?

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Eclipse从入门到精通(第2版)

本书为《Eclipse从入门到精通》一书的全新改版。本书以最新的Eclipse 3.2作为写作版本。全书分为5篇:起步篇介绍了Eclipse及相关插件的安装...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊