新書推薦:
《
黄金、石油和牛油果:16件商品中的拉丁美洲发展历程
》
售價:NT$
395.0
《
母亲的选择:看不见的移民保姆与女性工作
》
售價:NT$
340.0
《
城邦政治与灵魂政治——柏拉图《理想国》中的政治哲学研究
》
售價:NT$
590.0
《
3分钟漫画墨菲定律:十万个为什么科普百科思维方式心理学 胜天半子人定胜天做事与成事的权衡博弈之道
》
售價:NT$
249.0
《
1911:危亡警告与救亡呼吁
》
售價:NT$
349.0
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:NT$
340.0
《
思考的框架3 巴菲特芒格马斯克推崇的思维方式 风靡华尔街的思维训练法 沙恩·帕里什 著
》
售價:NT$
295.0
|
編輯推薦: |
本书面向初学者,使用Ubuntu Server 20系统,以简明和入门为主旨,系统讲解Shell编程开发以及Linux系统管理的基本知识,从而提高读者的Linux系统管理水平,并掌握利用脚本进行自动化运维的技能。
|
內容簡介: |
现在Linux系统的应用越来越广泛,而在Linux系统下的自动化运维工作也越来越多,使用Shell脚本可以通过自动化运维来提高运维效率。本书是一本纯粹的Linux系统管理与Shell编程入门书,目的是帮助读者理解Linux系统,并学会使用Shell脚本来完成Linux下各种复杂的运维工作。 本书共23章,内容包括初识Linux和Shell、走进Shell、Bash Shell基础命令、更多的Bash Shell命令、变量和环境变量、使用特殊符号、管理文件系统、使用编辑器、结构化命令、Shell中的循环结构、创建函数、处理数据的输入、处理数据的输出、图形化Shell编程、安装软件程序、正则表达式、grep命令、sed编程、gawk编程、脚本控制、Shell脚本系统管理实战、Shell脚本数据库操作实战、两个Shell脚本编程实战。 本书内容详尽、示例丰富,适合Linux初学者、Shell编程初学者、自动化运维脚本开发人员阅读,可作为Linux系统运维人员的参考书,也可作为高等院校和培训机构计算机相关专业的补充教材。
|
關於作者: |
何伟娜,平顶山学院副教授,西安电子科技大学硕士。本人主要从事大数据、深度学习方面的研究。
郝军,供职于国内的电信运营商,主要职务是开发各种移动运营相关的软件项目,长期在Linux平台下进行软件开发,有10余年的Java开发经验,开发过通信计费等多种服务端项目。
|
目錄:
|
1章 初识Linu和Shell 1
1.1 Linu系统基础 1
1.1.1 Linu系统的发展 1
1.1.2 Linu系统和Windows系统的区别 2
1.1.3 Linu的启动过程 3
1.2 Linu文件系统基础 6
1.2.1 **须了解的节点ide 6
1.2.2 Linu系统文件结构 7
1.3 学会Linu系统的基本使用 10
1.3.1 系统的登录与出 10
1.3.2 系统的基本配置 12
1.4 初识Shell 13
1.4.1 什么是Shell 13
1.4.2 Shell在Linu系统中的
作用 13
1.4.3 Shell的种类 14
1.5 小结 15
2章 走进Shell 16
2.1 Shell脚本语言概述 16
2.1.1 Shell脚本语言的定义 16
2.1.2 Shell终端的基本使用 17
2.1.3 Shell终端菜单的使用 17
2.2 Shell命令格式介绍 18
2.2.1 Shell命令格式 19
2.2.2 命令行界面介绍 19
2.2.3 在Linu系统中如何获取
帮助 20
2.3 一个Shell程序:Hello,
Bash Shell 22
2.3.1 创建Shell脚本 22
2.3.2 Shell脚本中的格式 26
2.3.3 如何执行Shell程序 26
2.4 小结 28
3章 Bash Shell基础命令 29
3.1 Shell命令使用基础 29
3.1.1 文件类型 29
3.1.2 对路径和相对路径 30
3.1.3 文件属性和文件权限 31
3.1.4 用户和用户组 32
3.1.5 特殊目录介绍 37
3.2 用户和用户组管理 38
3.2.1 用户管理常用命令 38
3.2.2 用户组管理常用命令 41
3.2.3 其他常用命令 43
3.3 文件和目录作 46
3.3.1 文件作常用命令 46
3.3.2 目录作常用命令 50
3.3.3 文件权限管理常用命令 54
3.3.4 查找文件常用命令 56
3.4 系统管理 57
3.4.1 网络作常用命令 57
3.4.2 磁盘信息查看常用命令 61
3.5 小结 62
4章 更多的Bash Shell命令 63
4.1 监测程序 63
4.1.1 探查进程——ps命令 63
4.1.2 实时监测进程——命令 64
4.1.3 结束进程——kill命令 66
4.1.4 查看内存空间——free命令 66
4.2 监测磁盘空间 67
4.2.1 挂载外部存储——
mount命令 67
4.2.2 卸载外部存储——
umount命令 68
4.2.3 显示剩余磁盘空间——
df命令 69
4.2.4 计算磁盘使用量——
du命令 69
4.3 处理数据文件 70
4.3.1 排序数据——sort命令 70
4.3.2 搜索数据——grep命令 71
4.3.3 压缩数据——gzip命令 73
4.3.4 打包数据——ar命令 74
4.4 小结 75
5章 变量和环境变量 77
5.1 变量的简单使用 77
5.1.1 变量的使用 77
5.1.2 变量的输入 79
5.1.3 变量的输出命令echo 84
5.2 Shell中特殊变量的使用 88
5.2.1 位置参数介绍 88
5.2.2 $@和$*的区别 89
5.3 环境变量的使用 90
5.3.1 Shell中的环境变量 90
5.3.2 环境变量的配置文件 93
5.3.3 全局环境变量和本地环境
变量 95
5.3.4 环境变量的设定 97
5.3.5 环境变量的取消 98
5.4 小结 99
6章 使用特殊符号 100
6.1 引号的使用 100
6.1.1 单引号的使用 101
6.1.2 双引号的使用 102
6.1.3 倒引号的使用 103
6.2 通配符和元字符 103
6.2.1 使用通配符 104
6.2.2 使用元字符 107
6.3 管道 110
6.4 其他特殊字符介绍 111
6.4.1 后台运行符 111
6.4.2 括号 112
6.4.3 分号 114
6.5 小结 115
7章 管理文件系统 116
7.1 探索Linu文件系统 116
7.1.1 日志文件系统 116
7.1.2 的基础知识 117
7.2 管理文件系统 117
7.2.1 创建分区 117
7.2.2 创建文件系统 121
7.2.3 文件系统的检查与修复 122
7.3 小结 122
8章 使用编辑器 123
8.1 vim编辑器 123
8.1.1 检查vim软件包 123
8.1.2 vim基础 125
8.1.3 编辑数据 127
8.1.4 复制和粘贴 130
8.1.5 查找和替换 131
8.2 na编辑器 132
8.2.1 检查na软件包 132
8.2.2 na编辑器的基本作 132
8.3 Emacs编辑器 134
8.3.1 检查Emacs软件包 134
8.3.2 使用Emacs 136
8.4 GNOME编辑器 138
8.4.1 启动Gedit 138
8.4.2 基本的Gedit功能 139
8.5 小结 141
9章 结构化命令 142
9.1 测试命令的使用 142
9.1.1 测试命令的基础结构 142
9.1.2 测试文件类型 144
9.1.3 测试字符串 148
9.1.4 测试数值 150
9.1.5 复合测试条件 151
9.2 if分支结构 153
9.2.1 if -then结构 153
9.2.2 if -then-else结构 154
9.2.3 嵌套结构 156
9.3 case多条件分支结构 159
9.3.1 case结构基础 159
9.3.2 在Shell脚本中使用
case结构 161
9.3.3 select命令的使用 162
9.4 小结 163
10章 Shell中的循环结构 164
10.1 for循环 164
10.1.1 使用for-in结构 164
10.1.2 C式for结构 168
10.2 while命令的使用 170
10.2.1 使用while结构 171
10.2.2 多条件的while结构 172
10.2.3 使用until命令 172
10.3 命令的嵌套 174
10.3.1 for命令的嵌套 174
10.3.2 while命令的嵌套 177
10.3.3 until命令的嵌套 179
10.4 循环控制符 180
10.4.1 使用break中断 180
10.4.2 使用continue命令 183
10.5 小结 184
11章 创建函数 185
11.1 脚本函数的基本用法 185
11.1.1 函数的创建与使用 185
11.1.2 函数的参数 187
11.2 函数的返回值 189
11.2.1 返回值基础 189
11.2.2 函数的默认返回值 190
11.2.3 return命令的使用 191
11.2.4 使用函数的返回值 192
11.3 函数中的全局变量和局部变量 193
11.3.1 全局变量 193
11.3.2 局部变量 194
11.4 数组与函数 195
11.4.1 数组作为函数参数 195
11.4.2 数组作为函数返回值 196
11.5 脚本函数递归 197
11.6 函数的嵌套调用 199
11.7 小结 200
12章 处理数据的输入 201
12.1 命令行参数 201
12.1.1 读取参数 202
12.1.2 读取脚本名 203
12.1.3 测试参数 204
12.2 特殊参数变量 206
12.2.1 参数统计 206
12.2.2 获取所有的参数 207
12.3 特殊的输入方式 208
12.3.1 移动变量 208
12.3.2 读取文件 209
12.4 将选项标准化 210
12.5 小结 211
13章 处理数据的输出 212
13.1 理解输入和输出 212
13.1.1 标准文件描述符 213
13.1.2 重定向 213
13.2 在脚本中重定向输出 214
13.2.1 重定向 214
13.2.2 追加重定向 215
13.2.3 重定向 216
13.3 在脚本中重定向输入 217
13.4 创建自己的重定向 218
13.4.1 创建输出文件描述符 219
13.4.2 创建输入文件描述符 219
13.4.3 关闭文件描述符 220
13.5 其他常用作 221
13.5.1 列出打开的文件
描述符 222
13.5.2 清空命令输出 223
13.5.3 记录消息 224
13.6 小结 225
14章 图形化Shell编程 226
14.1 创建文本菜单 226
14.1.1 创建菜单 226
14.1.2 创建子菜单函数 227
14.1.3 脚本的整合——实现一个
计算器 229
14.1.4 使用select命令实现
菜单 230
14.2 制作窗口 232
14.2.1 使用dialog包 232
14.2.2 dialog帮助选项 232
14.2.3 dialog命令的使用 234
14.2.4 常用窗口示例 238
14.3 颜色的使用 243
14.4 小结 246
15章 安装软件程序 247
15.1 包管理基础 247
15.2 基于Debian的系统 248
15.2.1 包仓库 248
15.2.2 搜索软件包 250
15.2.3 安装软件包 251
15.2.4 更新软件包 252
15.2.5 卸载软件包 252
15.3 基于Red Hat的系统 253
15.3.1 yum命令使用简介 253
15.3.2 列出已安装包 254
15.3.3 使用yum安装软件 256
15.3.4 使用yum更新软件 258
15.3.5 使用yum卸载软件 258
15.3.6 处理损坏的包依赖
关系 260
15.4 小结 260
16章 正则表达式 261
16.1 正则表达式基础 261
16.1.1 正则表达式的定义 261
16.1.2 正则表达式的分类 262
16.2 基本正则表达式的常用符号 263
16.2.1 使用点字符匹配
单字符 263
16.2.2 使用定位符 264
16.2.3 使用“*”匹配字符串中的
单字符或其重复序列 266
16.2.4 使用“”屏蔽一个特殊
字符的含义 267
16.3 扩展正则表达式的常用符号 267
16.3.1 使用“[]”匹配一个范围
或集合 268
16.3.2 使用“\\{\\}”匹配模式结果出现的次数 268
16.3.3 问号的使用 269
16.4 小结 270
17章 grep命令 271
17.1 grep的基础使用 271
17.1.1 grep命令的基本使用
方式 271
17.1.2 grep选项 273
17.1.3 行数 273
17.1.4 大小写敏感 274
17.1.5 显示非匹配行 276
17.1.6 查询多个文件或多个
关键字 277
17.2 grep和正则表达式 279
17.2.1 模式范围以及范围
组合 279
17.2.2 定位符的使用 280
17.2.3 字符匹配 281
17.2.4 模式出现机率 282
17.2.5 匹配特殊字符 283
17.3 grep命令的扩展使用 284
17.3.1 类名的使用 284
17.3.2 egrep命令的使用 285
17.3.3 fgrep命令的使用 287
17.4 grep命令使用示例 288
17.4.1 目录搜索——查找特定
目录或文字 288
17.4.2 使用ps命令检索特定的
进程 289
17.5 小结 289
18章 sed编程 291
18.1 认识sed 291
18.1.1 sed工作模式 291
18.1.2 sed常用指令 292
18.1.3 sed常用选项 293
18.1.4 sed地址范围 294
18.2 sed编辑器常用命令 295
18.2.1 替换命令的使用 296
18.2.2 删除命令的使用 297
18.2.3 文本的添加和替换 298
18.3 高级sed编程 300
18.3.1 同时处理多行数据 300
18.3.2 sed编辑器的空间 301
18.3.3 sed编辑器的反向 302
18.3.4 重定向sed的输出 303
18.4 小结 304
19章 gawk编程 305
19.1 gawk概述 305
19.1.1 gawk基本介绍 305
19.1.2 gawk基本使用 307
19.2 变量的使用 310
19.2.1 内置变量的使用 310
19.2.2 自定义变量的使用 312
19.2.3 数组的使用 313
19.3 结构的使用 314
19.3.1 条件结构的使用 314
19.3.2 循环结构的使用 317
19.3.3 循环结构控制语句 319
19.4 函数的使用 320
19.4.1 算术函数的使用 321
19.4.2 字符串处理函数的
使用 322
19.4.3 时间函数的使用 324
19.5 小结 326
20章 脚本控制 327
20.1 Linu信号控制 327
20.1.1 Linu信号机制简介 327
20.1.2 使用Shell脚本作
信号 329
20.2 进程的控制 331
20.2.1 后台运行符介绍 331
20.2.2 运行进程的控制 333
20.2.3 hup命令的使用 334
20.3 脚本运行的优先级 335
20.3.1 优先级介绍 335
20.3.2 使用nice指定优先级 336
20.3.3 使用renice重置
优先级 337
20.4 小结 338
21章 Shell脚本系统管理实战 339
21.1 系统监测 339
21.1.1 系统监控基础 339
21.1.2 Ubuntu自带的系统监控
工具 343
21.1.3 监控脚本的编写 344
21.2 计划任务的实现 345
21.2.1 at命令的使用 346
21.2.2 atq命令的使用 351
21.2.3 cron的使用 352
21.3 网络管理 354
21.3.1 网络配置 354
21.3.2 服务器的安装 358
21.4 日志管理 360
21.4.1 日志简介 360
21.4.2 守护进程syslogd 361
21.4.3 日志的备份作 364
21.4.4 日志的定时作 365
21.5 小结 366
22章 Shell脚本数据库作
实战 367
22.1 Linu系统中的数据库 367
22.1.1 SQLite简介 367
22.1.2 SQLite的图形化作 370
22.1.3 MySQL简介 372
22.2 SQL语句 375
22.2.1 SQL语言基本介绍 375
22.2.2 基本的SQL作 376
22.2.3 在Shell脚本中执行SQL
语句 378
22.3 实战:图书管理系统中数据库
作 379
22.3.1 数据库作基本流程 380
22.3.2 创建表 380
22.3.3 增加图书信息 381
22.3.4 修改图书信息 382
22.3.5 删除图书信息 383
22.4 小结 383
23章 两个Shell脚本编程实战 384
23.1 创建日志文件 384
23.1.1 功能分析 384
23.1.2 创建脚本 386
23.2 远程复制文件 387
23.2.1 功能分析 387
23.2.2 创建脚本 389
23.3 小结 390
|
內容試閱:
|
读懂本书
当前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月
|
|