由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]Linux命令行与Shell脚本编程 何伟娜 清华大学出版社 Linux操作系统程序设计
¥ ×1
书名: | Linux命令行与Shell脚本编程 |
出版社: | 清华大学出版社 |
出版日期 | 2021 |
ISBN号: | 9787302582229 |
现在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开发经验,开发过通信计费等多种服务端项目。 |
|
本书面向初学者,使用Ubuntu Server 20系统,以简明和入门为主旨,系统讲解Shell编程开发以及Linux系统管理的基本知识,从而提高读者的Linux系统管理水平,并掌握利用脚本进行自动化运维的技能。 |
|
第1章 初识Linux和Shell 1 1.1 Linux系统基础 1 1.1.1 Linux系统的发展 1 1.1.2 Linux系统和Windows系统的 区别 2 1.1.3 Linux的启动过程 3 1.2 Linux文件系统基础 6 1.2.1 必须了解的节点inode 6 1.2.2 Linux系统文件结构 7 1.3 学会Linux系统的基本使用 10 1.3.1 系统的登录与退出 10 1.3.2 系统的基本配置 12 1.4 初识Shell 13 1.4.1 什么是Shell 13 1.4.2 Shell在Linux系统中的 作用 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 在Linux系统中如何获取 帮助 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 实时监测进程——top命令 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 探索Linux文件系统 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 nano编辑器 132 8.2.1 检查nano软件包 132 8.2.2 nano编辑器的基本操作 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 Linux信号控制 327 20.1.1 Linux信号机制简介 327 20.1.2 使用Shell脚本操作 信号 329 20.2 进程的控制 331 20.2.1 后台运行符介绍 331 20.2.2 运行进程的控制 333 20.2.3 nohup命令的使用 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 Linux系统中的数据库 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月 |
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格