Linux系统学习之路—脚本体会

接触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 文件里。 这样你的脚本基本就成一半了。

其余的呢?加上判断,循环。 数据重定向。基本你的脚本就好了。更的的话,可以模块化,采作函数的方式。 更有条理,功能分明。 在这过程当中,你可以找到当中的共性,设置为参数。 增加脚本的易用性。

等等。。。 千里之行,使于足上。 只有基础扎实。思路清析。写脚本一般都没有问题。还要记得,站在巨人的肩上。 多看一些牛人大咖写的脚本。看人家的思路与结构。会收益良多。一起努力学习吧!

投稿作者 作者网站

评论

 
 

发表评论

 
你的昵称*
电子邮件*
网址(选填)
我的评论*
  • 发表评论
  • 为您推荐


    请支持IMCN发展!

    谁在捐赠

    微信捐赠 支付宝捐赠
    微信捐赠 支付宝捐赠




    微信公众号二维码

    归档