跟老男孩学Linux运维:Shell编程实战1.3 如何才能学好Shell编程之“老鸟”经验谈

简介:

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运维,那么可以想一想是不是也犯了这个错误?

相关文章
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
Linux Shell
shell_42:Linux参数移动
总的来说,参数移动是Linux shell脚本中的一个重要概念,掌握它可以帮助我们更好地处理和管理脚本中的参数。希望这个解释能帮助你理解和使用参数移动。
464 18
|
存储 弹性计算 运维
云端问道 7 期实践教学-使用操作系统智能助手 OS Copilot 轻松运维与编程
使用操作系统智能助手 OS Copilot 轻松运维与编程
450 14
|
弹性计算 人工智能 运维
新手训练营——使用操作系统智能助手OS Copilot轻松运维与编程
本文摘自阿里云操作系统团队的林演(林生)关于操作系统智能助手创新产品的分享,围绕“OS Copilot的高效运维与编程”展开,主要包括以下几方面的内容: 1. 行业痛点击及背景 2. 产品与架构 3. 典型应用场景 4. 实验及反馈渠道
548 1
|
人工智能 弹性计算 运维
云端问道7期方案教学-使用操作系统智能助手OS Copilot轻松运维与编程
本文介绍了阿里云基础软件团队推出的操作系统智能助手 OS Copilot,旨在解决 Linux 开发与运维中的痛点。OS Copilot 基于大模型和操作系统领域知识构建,支持自然语言问答、命令辅助执行、系统运维优化及代码生成等功能,极大降低了学习成本和工作量。文章详细阐述了其产品架构、典型应用场景以及实验反馈渠道,帮助用户更高效地进行系统管理和编程。目前该产品处于公测阶段,免费提供给阿里云 ECS 实例和 Alinux 3 系统用户使用。
406 1
|
Shell Linux 开发工具
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
507 12
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
Shell
Shell编程(下)
Shell编程(下)
299 1