接触linux三年多了,真正应用到工作中也只有半年时间。自己也从一个大白,变成小白。进入学习之后,才发现学海无涯。同时也是一条不归路。。。呵呵这个给大家分享一些自己在学习写shell script 过程中体会。
看过刘老师的《Linux就该这么学》。之前我也有写过一些的学习分享,有介绍过vi , vim编辑器。建议如果在生产服务器上,一定是最小化安装。大家都知道,把有限的资源分给真正能产生价值的应用服务,给它们使用。平时,我们都是在本地或者测试服务器上,编写脚本。工善利于事,必先利于器。对于vim的各种模式,一些快捷键等等,你都得了然于心。那可以大大方便你的效率。关于vim 或者 vi 的一些操作,我们就不多赘述。下面我们讲一讲,我跟据老师讲解还有自己的一些理解,分享给大家一些写shell脚本的想法。
那什么是shell呢?
我们先说一下一些电脑基本的东西。电脑硬件是最基本的底层,操作系统呢?在硬件之上,紧挨着电脑的硬件,是最基础的软件,是应用软件和硬件之间起桥梁沟通的作用,应用软件又在在操作系统之上。通过操作系统完成它所要实现的功能。管理整个电脑硬件的其实是,操作系统的kernel, 中文翻译叫内核。这个内核是被保护起来的。我们一般用户,通过shell来与操作系统的内核来通信。什么是shell script呢?上面我们已经简单介绍shell是什么。 script 是脚本的意思。 shell script就是程序化的脚本。利用shell的丰富功能写一个小程序。包括shell命令、语法,正则,管道,数据重定向等等功能达到我们想到的目的。
为什么要写脚本?
我们在服务器通过命令各种操作,实现所需求。操作完之后命令基本就不能用了。再一批新的服务器。我们还得重新把命令操作一遍。费时费力等等等等。工作可以分为自动处理,手动处理。自动处理可以帮我们大大提高工作效率。这也是自动化运维管理的重要基础。把之前系统的操作命令,按一定的顺序及格式放到文件里。再次执行相同的操作时,直接运行脚本就可以。它可以帮助我们实现功能需求。就是有批量批量的服务器,我们也不用担心了。交给脚本就可以。复杂过程模块化,简单化流程标准化。这样它可以帮助我们节省很多无必要的工作。脚本一直可以执行一些操作,帮助我们随时检测很多东西,等等,它的好处,是你想像不到的。
写脚本要注意那些呢?
我们先说一下,与脚本要注意的地方。命令是从上而下,由左到右分析并执行的。命令与参数之前一些空格或者tab或者空白行都会被忽略。# 符号,可以做为注释批注。后面的所有命令等等,都不会分析执行。
如何让脚本执行呢?
前提,脚本得有读和执行的权限。直接执行,用脚本的绝对路径,在终端,直接输入就可以;对应的相对路径也可以执行;也可把脚本放到环境变量的路径下。还一种是指定bash进程来执行。基本上就这些办法。
养成良好的写脚本习惯。
现在都是团队化工作。你写的脚本不只你一个人用。所有人都可能用。这个必须有一个好的习惯。一些约定俗成的东西,一般都要遵守。增加脚本的可读性与易用性。方便别的使用与维护。就拿脚本的开头几行来说。做好功能,版本的信息,作者还有沟通的方式,最重要的是,一些比较特殊的环境变量。要说明。每个人的电脑环境都不一样。这一点十分重要。做好合理的注释说明信息。还有呢?之前提到过的,编写script 要用vim, 它有自动检查语法功能。如果语法有异常,会有相应的提示。命令的格式,同极命令采用相同的缩进。可以大大提高可读性的。
写脚本的思路?
那脚本如何写,很多人让为脚本很难。没有思路?那只能说明,你对shell命令不是了解。写脚本,先要明白你要干什么事情。那些命令可以帮你实现。这样就有了思路了。其实很简单,你要什么事情,先同一如电脑上操作一遍。达到你想要结果。过程中注意每个命令的细节,都必需得关注到。功能需求完成之后呢?通过历史命令,把过程好好整理一下。按序及格式放到.sh文件里。这样你的脚本基本就成一半了。
其余的呢?加上判断,循环。数据重定向。基本你的脚本就好了。更的的话,可以模块化,采作函数的方式。更有条理,功能分明。在这过程当中,你可以找到当中的共性,设置为参数。增加脚本的易用性。
等等。。。千里之行,使于足上。只有基础扎实。思路清析。写脚本一般都没有问题。还要记得,站在巨人的肩上。多看一些牛人大咖写的脚本。看人家的思路与结构。会收益良多。一起努力学习吧!
领取专属 10元无门槛券
私享最新 技术干货