编辑推荐
精通Linux命令行与shell脚本编程,尽在本书中
本书是关于Linux命令行和shell命令的全面参考资料,涵盖详尽的动手教程和实际应用指南,并提供相关参考信息和背景资料,带你从Linux命令行基础入手,直到写出自己的shell。
时隔四年后的这一版本,针对Linux的新特性和实践,进行了全面更新。
使用简单的shell脚本工具实现任务自动化
创建shell脚本,全面理解shell的用途
管理文件系统与软件包
使用nano、KDE及GNOME等编辑器
学习结构化命令、文本处理及正则表达式
创建与电子邮件、数据库及Web相关的实用脚本
优化环境、微调脚本
内容简介
这是一本关于Linux命令行与shell脚本编程的全方位教程,主要包括四大部分:Linux命令行,shell脚本编程基础,高级shell脚本编程,如何创建实用的shell脚本。本书针对Linux系统的新特性进行了全面更新,不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。通过本书的学习,你将轻松写出自己的shell脚本。
作者简介
Ricahard Blum,已在IT行业打拼20余年,担任过UNIX、Linux、Novell和Windows Server的系统及网络管理员,在Linux和开源软件领域著作颇丰。他还是一名网络课程讲师,美国多所大学和学院都采用他的Linux基础课程。
Christine Bresnahan,系统管理员,已经在IT行业工作了30余年,通过CompTIA Linux+、LPIC-1、Linux Essentials认证。目前在印第安纳波利斯市常春藤技术社区学院担任兼职教授,讲授Linux系统管理、Linux安全和Windows安全、Python编程等课程。
目录
第一部分 Linux 命令行
第1 章 初识Linux shell 2
1.1 什么是Linux 2
1.1.1 深入探究Linux 内核 3
1.1.2 GNU 工具 6
1.1.3 Linux 桌面环境 8
1.2 Linux 发行版 12
1.2.1 核心Linux 发行版 13
1.2.2 特定用途的Linux 发行版 13
1.2.3 Linux LiveCD 14
1.3 小结 15
第2 章 走进shell 16
2.1 进入命令行 16
2.1.1 控制台终端 17
2.1.2 图形化终端 17
2.2 通过Linux 控制台终端访问CLI 18
2.3 通过图形化终端仿真访问CLI 20
2.4 使用GNOME Terminal 仿真器 21
2.4.1 访问GNOME Terminal 21
2.4.2 菜单栏 22
2.5 使用Konsole Terminal 仿真器 25
2.5.1 访问Konsole Terminal 25
2.5.2 菜单栏 26
2.6 使用xterm 终端仿真器 29
2.6.1 访问xterm 30
2.6.2 命令行参数 30
2.7 小结 32
第3 章 基本的bash shell 命令 33
3.1 启动shell 33
3.2 shell 提示符 34
3.3 bash 手册 34
3.4 浏览文件系统 37
3.4.1 Linux 文件系统 37
3.4.2 遍历目录 40
3.5 文件和目录列表 42
3.5.1 基本列表功能 42
3.5.2 显示长列表 44
3.5.3 过滤输出列表 45
3.6 处理文件 46
3.6.1 创建文件 47
3.6.2 复制文件 47
3.6.3 制表键自动补全 50
3.6.4 链接文件 50
3.6.5 重命名文件 52
3.6.6 删除文件 54
3.7 处理目录 55
3.7.1 创建目录 55
3.7.2 删除目录 55
3.8 查看文件内容 58
3.8.1 查看文件类型 58
3.8.2 查看整个文件 59
3.8.3 查看部分文件 61
3.9 小结 63
第4 章 更多的bash shell 命令 64
4.1 监测程序 64
4.1.1 探查进程 64
4.1.2 实时监测进程 70
4.1.3 结束进程 72
4.2 监测磁盘空间 73
4.2.1 挂载存储媒体 73
4.2.2 使用df 命令 76
4.2.3 使用du 命令 77
4.3 处理数据文件 78
4.3.1 排序数据 78
4.3.2 搜索数据 81
4.3.3 压缩数据 83
4.3.4 归档数据 84
4.4 小结 85
第5 章 理解shell 86
5.1 shell 的类型 86
5.2 shell 的父子关系 88
5.2.1 进程列表 91
5.2.2 别出心裁的子shell 用法 93
5.3 理解shell 的内建命令 96
5.3.1 外部命令 96
5.3.2 内建命令 97
5.4 小结 101
第6 章 使用Linux 环境变量 103
6.1 什么是环境变量 103
6.1.1 全局环境变量 104
6.1.2 局部环境变量 105
6.2 设置用户定义变量 106
6.2.1 设置局部用户定义变量 106
6.2.2 设置全局环境变量 107
6.3 删除环境变量 109
6.4 默认的shell 环境变量 110
6.5 设置PATH 环境变量 113
6.6 定位系统环境变量 114
6.6.1 登录shell 115
6.6.2 交互式shell 进程 119
6.6.3 非交互式shell 120
6.6.4 环境变量持久化 121
6.7 数组变量 121
6.8 小结 122
第7 章 理解Linux 文件权限 124
7.1 Linux 的安全性 124
7.1.1 /etc/passwd 文件 124
7.1.2 /etc/shadow 文件 126
7.1.3 添加新用户 127
7.1.4 删除用户 129
7.1.5 修改用户 130
7.2 使用Linux 组 132
7.2.1 /etc/group 文件 133
7.2.2 创建新组 133
7.2.3 修改组 134
7.3 理解文件权限 135
7.3.1 使用文件权限符 135
7.3.2 默认文件权限 136
7.4 改变安全性设置 138
7.4.1 改变权限 138
7.4.2 改变所属关系 139
7.5 共享文件 140
7.6 小结 142
第8 章 管理文件系统 143
8.1 探索Linux 文件系统 143
8.1.1 基本的Linux 文件系统 143
8.1.2 日志文件系统 145
8.1.3 写时复制文件系统 147
8.2 操作文件系统 147
8.2.1 创建分区 147
8.2.2 创建文件系统 151
8.2.3 文件系统的检查与修复 153
8.3 逻辑卷管理 154
8.3.1 逻辑卷管理布局 154
8.3.2 Linux 中的LVM 155
8.3.3 使用Linux LVM 156
8.4 小结 162
第9 章 安装软件程序 163
9.1 包管理基础 163
9.2 基于Debian 的系统 164
9.2.1 用aptitude 管理软件包 164
9.2.2 用aptitude 安装软件包 166
9.2.3 用aptitude 更新软件 168
9.2.4 用aptitude 卸载软件 169
9.2.5 aptitude 仓库 169
9.3 基于Red Hat 的系统 171
9.3.1 列出已安装包 171
9.3.2 用yum 安装软件 173
9.3.3 用yum 更新软件 174
9.3.4 用yum 卸载软件 174
9.3.5 处理损坏的包依赖关系 175
9.3.6 yum 软件仓库 176
9.4 从源码安装 177
9.5 小结 180
第10 章 使用编辑器 181
10.1 vim 编辑器 181
10.1.1 检查vim 软件包 181
10.1.2 vim 基础 183
10.1.3 编辑数据 185
10.1.4 复制和粘贴 185
10.1.5 查找和替换 186
10.2 nano 编辑器 187
10.3 emacs 编辑器 188
10.3.1 检查emacs 软件包 189
10.3.2 在控制台中使用emacs 190
10.3.3 在GUI 环境中使用emacs 195
10.4 KDE 系编辑器 196
10.4.1 KWrite 编辑器 196
10.4.2 Kate 编辑器 200
10.5 GNOME 编辑器 202
10.5.1 启动gedit 203
10.5.2 基本的gedit 功能 203
10.5.3 设定偏好设置 204
10.6 小结 206
第二部分 shell 脚本编程基础
第11 章 构建基本脚本 210
11.1 使用多个命令 210
11.2 创建shell 脚本文件 211
11.3 显示消息 212
11.4 使用变量 214
11.4.1 环境变量 214
11.4.2 用户变量 215
11.4.3 命令替换 216
11.5 重定向输入和输出 218
11.5.1 输出重定向 218
11.5.2 输入重定向 219
11.6 管道 220
11.7 执行数学运算 222
11.7.1 expr 命令 223
11.7.2 使用方括号 224
11.7.3 浮点解决方案 225
11.8 退出脚本 228
11.8.1 查看退出状态码 228
11.8.2 exit 命令 229
11.9 小结 231
第12 章 使用结构化命令 232
12.1 使用if-then 语句 232
12.2 if-then-else 语句 235
12.3 嵌套if 235
12.4 test 命令 238
12.4.1 数值比较 240
12.4.2 字符串比较 242
12.4.3 文件比较 246
12.5 复合条件测试 254
12.6 if-then 的高级特性 255
12.6.1 使用双括号 255
12.6.2 使用双方括号 256
12.7 case 命令 257
12.8 小结 258
第13 章 更多的结构化命令 260
13.1 for 命令 260
13.1.1 读取列表中的值 261
13.1.2 读取列表中的复杂值 262
13.1.3 从变量读取列表 263
13.1.4 从命令读取值 264
13.1.5 更改字段分隔符 265
13.1.6 用通配符读取目录 266
13.2 C 语言风格的for 命令 268
13.2.1 C 语言的for 命令 268
13.2.2 使用多个变量 269
13.3 while 命令 270
13.3.1 while 的基本格式 270
13.3.2 使用多个测试命令 271
13.4 until 命令 272
13.5 嵌套循环 274
13.6 循环处理文件数据 276
13.7 控制循环 277
13.7.1 break 命令 277
13.7.2 continue 命令 280
13.8 处理循环的输出 282
13.9 实例 283
13.9.1 查找可执行文件 284
13.9.2 创建多个用户账户 285
13.10 小结 286
第14 章 处理用户输入 287
14.1 命令行参数 287
14.1.1 读取参数 287
14.1.2 读取脚本名 289
14.1.3 测试参数 291
14.2 特殊参数变量 292
14.2.1 参数统计 292
14.2.2 抓取所有的数据 294
14.3 移动变量 295
14.4 处理选项 296
14.4.1 查找选项 297
14.4.2 使用getopt 命令 300
14.4.3 使用更高级的getopts 302
14.5 将选项标准化 305
14.6 获得用户输入 306
14.6.1 基本的读取 306
14.6.2 超时 307
14.6.3 隐藏方式读取 308
14.6.4 从文件中读取 309
14.7 小结 309
第15 章 呈现数据 311
15.1 理解输入和输出 311
15.1.1 标准文件描述符 311
15.1.2 重定向错误 313
15.2 在脚本中重定向输出 315
15.2.1 临时重定向 315
15.2.2 永久重定向 316
15.3 在脚本中重定向输入 317
15.4 创建自己的重定向 317
15.4.1 创建输出文件描述符 318
15.4.2 重定向文件描述符 318
15.4.3 创建输入文件描述符 319
15.4.4 创建读写文件描述符 320
15.4.5 关闭文件描述符 321
15.5 列出打开的文件描述符 322
15.6 阻止命令输出 323
15.7 创建临时文件 324
15.7.1 创建本地临时文件 324
15.7.2 在/tmp 目录创建临时文件 325
15.7.3 创建临时目录 326
15.8 记录消息 327
15.9 实例 328
15.10 小结 330
第16 章 控制脚本 331
16.1 处理信号 331
16.1.1 重温Linux 信号 331
16.1.2 生成信号 332
16.1.3 捕获信号 334
16.1.4 捕获脚本退出 335
16.1.5 修改或移除捕获 335
16.2 以后台模式运行脚本 338
16.2.1 后台运行脚本 338
16.2.2 运行多个后台作业 340
16.3 在非控制台下运行脚本 341
16.4 作业控制 342
16.4.1 查看作业 342
16.4.2 重启停止的作业 344
16.5 调整谦让度 345
16.5.1 nice 命令 345
16.5.2 renice 命令 346
16.6 定时运行作业 346
16.6.1 用at 命令来计划执行作业 347
16.6.2 安排需要定期执行的脚本 349
16.6.3 使用新shell 启动脚本 352
16.7 小结 353
第三部分 高级shell 脚本编程
第17 章 创建函数 356
17.1 基本的脚本函数 356
17.1.1 创建函数 357
17.1.2 使用函数 357
17.2 返回值 359
17.2.1 默认退出状态码 359
17.2.2 使用return 命令 360
17.2.3 使用函数输出 361
17.3 在函数中使用变量 362
17.3.1 向函数传递参数 362
17.3.2 在函数中处理变量 364
17.4 数组变量和函数 366
17.4.1 向函数传数组参数 366
17.4.2 从函数返回数组 368
17.5 函数递归 369
17.6 创建库 370
17.7 在命令行上使用函数 371
17.7.1 在命令行上创建函数 372
17.7.2 在.bashrc 文件中定义函数 372
17.8 实例 374
17.8.1 下载及安装 374
17.8.2 构建库 374
17.8.3 shtool 库函数 376
17.8.4 使用库 376
17.9 小结 377
第18 章 图形化桌面环境中的脚本编程 378
18.1 创建文本菜单 378
18.1.1 创建菜单布局 379
18.1.2 创建菜单函数 380
18.1.3 添加菜单逻辑 380
18.1.4 整合shell 脚本菜单 381
18.1.5 使用select 命令 382
18.2 制作窗口 384
18.2.1 dialog 包 384
18.2.2 dialog 选项 389
18.2.3 在脚本中使用dialog 命令 391
18.3 使用图形 393
18.3.1 KDE 环境 393
18.3.2 GNOME 环境 396
18.4 小结 400
第19 章 初识sed 和gawk 401
19.1 文本处理 401
19.1.1 sed 编辑器 401
19.1.2 gawk 程序 404
19.2 sed 编辑器基础 410
19.2.1 更多的替换选项 410
19.2.2 使用地址 411
19.2.3 删除行 414
19.2.4 插入和附加文本 415
19.2.5 修改行 417
19.2.6 转换命令 418
19.2.7 回顾打印 419
19.2.8 使用sed 处理文件 421
19.3 小结 423
第20 章 正则表达式 424
20.1 什么是正则表达式 424
20.1.1 定义 424
20.1.2 正则表达式的类型 425
20.2 定义BRE 模式 426
20.2.1 纯文本 426
20.2.2 特殊字符 427
20.2.3 锚字符 428
20.2.4 点号字符 430
20.2.5 字符组 430
20.2.6 排除型字符组 432
20.2.7
Linux命令行与shell脚本编程大全(第3版) 下载 mobi epub pdf txt 电子书 格式
评分
☆☆☆☆☆
和此卖家交流,不由得精神为之一振,自觉七经八脉为之一畅,我在京东买了这么多年,所谓阅商无数,但与卖家您交流,我只想说,老板你实在是太好了,你的高尚情操太让人感动了,本人对此卖家之仰慕如滔滔江水连绵不绝,海枯石烂,天崩地裂,永不变心。交易成功后,我的心情是久久不能平静,自古英雄出少年,卖家年纪轻轻,就有经天纬地之才,定国安邦之智,而今,天佑我大中华,沧海桑田5000年,神州平地一声雷,飞沙走石,大雾迷天,朦胧中,只见顶天立地一金甲天神立于天地间,花见花开,人见人爱,这位英雄手持双斧,二目如电,一斧下去,混沌初开,二斧下去,女娲造人,三斧下去,小生倾倒。得此大英雄,实乃国之幸也,民之福,人之初也,怎不叫人喜极而泣……看着交易成功,我竟产生出一种无以名之的悲痛感——啊,这么好的卖家,如果将来我再也遇不到了,那我该怎么办?直到我毫不犹豫地把卖家的店收藏了,我内心的那种激动才逐渐平静下来,可是我立刻想到,这么好的卖家,倘若别人看不到,那么不是浪费心血吗?经过痛苦的思想斗争,我终于下定决心,牺牲小我,奉献大我。我要以此评价奉献给世人赏阅,我要给好评……评到所有人都看到为止!
评分
☆☆☆☆☆
还以为比编程思想还要厚…。内容还没看,包装很好,书的质量很棒,翻开的瞬间就能感受到
评分
☆☆☆☆☆
还不错的书,刚入职需要用
评分
☆☆☆☆☆
服务器架设篇
评分
☆☆☆☆☆
非常感谢京东商城给予的优质的服务,从仓储管理、物流配送等各方面都是做的非常好的。送货及时,配送员也非常的热情,有时候不方便收件的时候,也安排时间另行配送。同时京东商城在售后管理上也非常好的,以解客户忧患,排除万难。给予我们非常好的购物体验。 Thank you very much for the excellent service provided by Jingdong mall, and it is very good to do in warehouse management, logistics, distribution and so on. Delivery in a timely manner, distribution staff is also very enthusiastic, and sometimes inconvenient to receive the time, but also arranged for time to be delivered. At the same time in the mall management Jingdong cust
评分
☆☆☆☆☆
服务器架设篇
评分
☆☆☆☆☆
送。同时京东商城在售后管理上也非常好的,以解客户忧
评分
☆☆☆☆☆
非常感谢京东商城给予的优质的服务,从仓储管理、物流
评分
☆☆☆☆☆
书印刷很不错,内容写的也不错。作者还在官网有提供官方电子版。