前 言
读懂本书
当前Unix/Linux操作系统已经占据了操作系统的半壁江山,能操作这些系统的人才却非常缺乏,大部分初学者都习惯使用Windows。即使许多初学者学会了使用Linux系统,对一些Linux下的脚本开发和运维技能却无法快速掌握。本书的目的就是解决这两个痛点:
一是让初学者平滑地从Windows过渡到Linux,书中有很多Windows和Linux系统的对比,初学者可以通过对比深入了解Linux系统的文档结构。
二是让初学者掌握Linux系统下提高运维效率的工作技巧,这就是使用Shell实现更多的自动化运维。目前,掌握Shell脚本基本编程技能已经成为各大公司面试运维人员的主要要求。
也就是说,只有学好了Shell脚本,才能更高效地做好Linux的日常维护工作。
目前图书市场上关于Shell编程开发的图书不少,但真正从实际应用出发,能够详尽地介绍相关知识,以供没有任何Linux基础的读者来学习的图书却很少。本书使用Ubuntu Server 20系统,以简明和入门为主旨,讲解从易到难、由浅及深,让读者全面、深入地理解Shell编程开发以及Linux系统管理的基本知识,从而从根本上提高读者的系统管理水平,帮助读者掌握利用脚本进行自动化运维的技能。
本书特色
1. 源码单独成章
本书中的源代码按照章节的顺序单独放置,并且每个示例脚本都通过了验证,便于读者借鉴和使用。
2. 涵盖Shell编程开发用到的几乎全部常用知识
本书涵盖Shell编程开发过程中常用的、几乎全部的知识,内容详尽。既可以作为初级学者的学习教材,也可以作为一般Linux系统运维人员的工具书,方便随时查阅。
3. 项目案例典型,实战行强,有较高的应用价值
本书最后三章分别提供了三类脚本实战案例。这些案例来源于作者所开发的实际应用,具有较高的应用价值和参考价值。这些案例功能分析详细,便于读者融会贯通地理解本书中所介绍的脚本编程技术。另外,这些案例稍加修改,便可用于实际脚本开发中。
本书内容
第1章 初识Linux系统
本章主要介绍Linux系统的基础知识。内容包括Linux系统基础、文件系统基础、Linux系统的登录与退出以及系统基本选项配置。
第2章 走进Shell
本章主要介绍Shell脚本的基础知识。内容包括Shell脚本基础内容、如何使用Shell终端、Shell命令格式,以及如何编写最简单的Shell脚本。
第3章 Bash Shell基础命令
本章主要介绍Shell命令使用基础。内容包括文件类型、文件路径、文件属性、文件权限、用户和用户组以及几个特殊目录。除此之外,还介绍用户和用户组管理的相关命令、文件和目录操作的相关命令、系统管理的相关命令等。
第4章 更多的Bash Shell命令
本章主要介绍Linux系统下程序监测相关命令、磁盘空间监测相关命令、文件处理相关命令,这些命令能够帮助我们更好地使用Linux系统。
第5章 变量和环境变量
本章主要介绍如何在Shell脚本中使用变量。内容涉及变量的简单使用、如何输入和输出变量、特殊变量的使用、环境变量的设定与使用、特殊的变量数组和字符串的使用。
第6章 使用特殊符号
本章主要介绍特殊符号在编写Shell脚本时的使用方式。内容涉及引号在Shell脚本中的应用(包括单引号、双引号和倒引号)、通配符和元字符的使用、管道的使用、其他特殊字符(如后台运行符、括号、分号等)的使用。
第7章 管理文件系统
本章主要介绍如何管理Linux文件系统。内容涵盖日志文件系统基础、创建分区、创建文件系统、文件系统的检查与修复等。
第8章 使用编辑器
本章主要介绍如何在Linux系统中使用文本编辑器进行脚本的编写。内容包括Linux系统中常用的文本编辑器vim、nano、Emacs、GNOME编辑器的使用。
第9章 结构化命令
本章主要介绍结构化命令的使用方式。内容包括条件测试命令的使用、if分支结构的使用、case分支结构的使用。
第10章 Shell中的循环结构
本章主要介绍如何在Shell脚本中使用循环结构。内容涵盖for循环结构的使用、while循环结构的使用、循环嵌套的使用、循环控制符break、continue的使用等。
第11章 创建函数
本章主要介绍函数在Shell脚本中的使用方式。内容涉及函数的基本用法、函数的返回值、函数中全局变量和局部变量的区别,以及数组在函数的中的作用、函数的递归使用、函数的嵌套。
第12章 处理用户输入
本章主要介绍如何在脚本执行时处理用户输入信息。内容涉及命令行参数、特殊参数变量、处理选项、选项标准化、获取用户输入。
第13章 呈现数据
本章主要介绍Shell编程时如何处理输出信息。内容包括输入和输出的基本知识、重定向输出、重定向输入、创建自己的重定向,以及在处理输出时的常用操作,如列出文件描述符、清空命令输出、记录消息等。
第14章 图形化桌面环境中的脚本编程
本章主要介绍如何使用Shell脚本来进行图形化编程。内容涉及dialog软件包的使用、在Shell脚本运行时添加颜色效果、菜单的创建等。
第15章 安装软件程序
本章主要介绍如何安装软件程序。内容包括包管理基础、基于Debian的包管理以及基于Red Hat的包管理。
第16章 正则表达式
本章主要介绍正则表达式的使用。内容包括正则表达式的基本介绍、正则表达式中的常用符号,以及正则表达式的实战练习。
第17章 grep命令
本章主要介绍如何在Shell脚本中使用grep命令。内容涉及grep的基本使用方式以及常用选项的使用、grep命令和正则表达式的协同使用、grep命令和系统命令的协同使用。
第18章 sed编程
本章主要介绍如何在Shell脚本中使用sed命令。内容涉及sed基本知识、sed的使用及其使用示例。
第19章 gawk编程
本章主要介绍gawk命令的使用方式。内容涵盖gawk概述、变量在gawk中的使用、各种结构在gawk中的使用、函数在gawk中的使用。
第20章 脚本控制
本章主要介绍如何在Linux系统中控制脚本的执行。内容包括Linux信号控制机制、开机运行脚本的方法、后台运行脚本的方法、脚本运行优先级管理。
第21章 Shell脚本系统管理实战
本章主要介绍Shell脚本来完成系统的管理。内容涉及系统监测脚本的编写、计划任务的实现、网络管理、日志管理。
第22章 Shell脚本数据库操作实战
本章主要介绍如何在Shell脚本中操作数据库。内容涵盖Linux系统中的基本数据库:SQLite、MySQL、SQL语言,以及如何在Shell中执行SQL语句,最后还有一个图书管理系统的操作实例。
第23章 两个Shell脚本编程实战
本章主要通过创建日志文件和远程复制文件两个操作来介绍Shell脚本的编程方法。内容包括date命令和cut命令、scp命令和fput命令、如何创建日志文件、如何进行远程复制文件。
本书读者
? Linux系统管理员与网络管理员;
? Linux系统运维人员;
? Shell编程初学者;
? Linux系统初学者;
? 希望提高Shell编程水平的人员;
? 高等院校和专业培训机构Linux课程教学的师生;
? 需要一本案头必备查询手册的从业人员。
本书作者
本书第1~15章由平顶山学院的何伟娜创作,第16~23章由郝军创作。
源码下载
源码下载,请用微信扫描右边二维码,可按扫描出来的页面填写自己的邮箱,把链接转发到邮箱中下载。如果学习本书过程中发现问题,请联系booksaga@163.com,邮件主题为“Linux命令行与Shell脚本编程”。
作者
2021年4月