天天看点

跟老男孩学Linux运维:Shell编程实战1.2 学好Shell编程所需的基础知识

<b>1.2 学好shell编程所需的基础知识</b>

<b></b>

本节首先来探讨一下在学习shell编程之前需要掌握的基础知识,需要说明的是,并不是必须具备这些基础知识才可以学习shell编程,而是,如果具备了这些基础知识,那么就可以把shell编程学得更好,领悟得更深。如果只是想简单地了解shell脚本语言,那么就无须掌握太多的系统基础知识,只需要会一些简单的命令行操作即可。

学好shell编程并通过shell脚本轻松地实现自动化管理企业生产系统的必备基础如下:

1)能够熟练使用vim编辑器,熟悉ssh终端及“.vimrc”等的配置。

在linux下开发shell脚本最常使用的编辑器是vim,因此如果能够熟练使用并配置好vim的各种高级功能设置,就可以让开发shell脚本达到事半功倍的效果。这部分内容在本书的第16章有相应的讲解,读者在开始编写脚本之前可以考虑先看看第16章并搭建出高效的shell开发环境。

说明: 在本书的第16章讲解shell脚本开发环境的配置调整和优化时,提到了高效搭建shell开发环境的方法,之所以把这部分内容安排在第16章,是希望读者能体验一下比较原始的shell开发过程,然后再来掌握搭建高效的开发环境的方法,老男孩从教学的角度认为这是一个比较好的过程,读者可以根据自身的情况来决定要不要提前学习第16章,搭建好高效的shell开发环境。

2)要有一定的linux命令基础,至少需要掌握80个以上linux常用命令,并能够熟练使用它们(linux系统的常用命令请参见本书的附录)。

和其他的开发语言(例如python)不同,shell脚本语言很少有可以直接使用的外部函数库,老男孩就将linux系统的命令看作shell的函数库,因此,对linux系统常用命令的掌握程度就直接决定了运维人员对shell脚本编程的掌握高度。一些shell类图书在开篇花费大量章节来讲解linux基础命令也许就是因为这点,本书主要侧重于shell编程企业案例实战讲解,因此不会进行大且全的介绍,也不会过多地讲解linux的常用命令,而是采用小而美的实战策略,本书结尾会以附录的形式给出常用的linux基础命令的相关知识。此外,如果读者想学习linux基础命令,可以关注老男孩即将出版的新书——《跟老男孩学习linux运维:常用命令实战》,或者其他相关图书。

3)要熟练掌握linux正则表达式及三剑客命令(grep、sed、awk)。

linux正则表达式及三剑客命令(grep、sed、awk)是linux系统里所有命令中最核心的3个命令,每个命令加上正则表达式的知识后,功能都会变得异常强大。如果能够掌握它们,就可以在编写shell脚本时轻松很多。如读者想学习这部分知识,可以关注老男孩即将出版的新书——《跟老男孩学习linux运维:三剑客命令实战》,或者其他相关图书。

4)熟悉常见的linux网络服务部署、优化、日志分析及排错。

学习shell编程最直接的目的就是在工作中对系统及服务等进行自动化管理,因此,如果不熟悉工作中的网络服务,就会很难使用shell编程处理这些服务;如果不掌握网络服务等知识,就会让shell开发者的能力大打折扣,甚至学习到的仅仅是shell的语法及简单的基础,那么想要学好shell编程的想法也就落空了。需要掌握的基础网络服务包括但不限于:crond、rsync、inotify、nginx、php、mysql、keepalived、memcached、redis、nfs、iptables、svn、git,老男孩it教育的老师在教学的过程中也是先讲解linux常用命令和系统网络服务,然后再讲解shell编程,目的就是不要让学员仅仅掌握shell的语法皮毛,而是让他们能在学完shell编程之后,自动搭建中型集群架构等,有关基础网络服务的知识可以参考机械工业出版社的《跟老男孩学习linux运维:web集群实战》一书,或者其他相关图书。

继续阅读