| 
 新書推薦:
 
  《 
			即用是体:阳明学深度解读
			》
 售價:HK$ 
			280.8
 
  《 
			山河在:一部鲜活的抗战史(1931—1945)
			》
 售價:HK$ 
			269.0
 
  《 
			《庄子》中的100个哲理故事
			》
 售價:HK$ 
			92.0
 
  《 
			极限聊斋:王蒙神侃聊斋(精装珍藏版)
			》
 售價:HK$ 
			93.2
 
  《 
			2025-2028帆船竞赛规则
			》
 售價:HK$ 
			115.6
 
  《 
			华章大历史042——帝国的骨架:先秦、秦汉地缘政治结构变迁大势
			》
 售價:HK$ 
			115.6
 
  《 
			香遇中国:中华香史五千年
			》
 售價:HK$ 
			127.4
 
  《 
			见字如面:奏折里的雍正
			》
 售價:HK$ 
			75.9
 
 
 | 
         
          | 編輯推薦: |   
          | 本书面向初学者,使用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月
 |    |