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

简介:

1.2 学好Shell编程所需的基础知识


本节首先来探讨一下在学习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集群实战》一书,或者其他相关图书。

相关文章
|
23天前
|
算法 Linux C++
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
【Linux系统编程】解析获取和设置文件信息与权限的Linux系统调用
29 0
|
23天前
|
算法 Linux C++
【Linux系统编程】深入解析Linux中read函数的错误场景
【Linux系统编程】深入解析Linux中read函数的错误场景
196 0
|
23天前
|
Linux API C语言
【Linux系统编程】深入理解Linux 组ID和附属组ID的查询与设置
【Linux系统编程】深入理解Linux 组ID和附属组ID的查询与设置
28 0
【Linux系统编程】深入理解Linux 组ID和附属组ID的查询与设置
|
7天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
20 6
|
23天前
|
存储 算法 Linux
【Linux系统编程】深入理解Linux目录扫描函数:scandir目录函数(按条件扫描目录
【Linux系统编程】深入理解Linux目录扫描函数:scandir目录函数(按条件扫描目录
37 0
|
23天前
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
36 0
|
1天前
|
监控 Shell 开发工具
Shell编程
Shell编程
|
16天前
|
传感器 Linux API
嵌入式Linux串口编程简介
嵌入式Linux串口编程简介
14 1
|
17天前
|
Linux 测试技术 C语言
【Linux】应用编程之C语言文件操作
【Linux】应用编程之C语言文件操作
|
20天前
|
存储 Java Shell
bigdata-04-shell编程基础
bigdata-04-shell编程基础
10 0