出版社: 人民邮电出版社
出品方: 图灵教育
译者: 门佳 / 武海峰
出版年: 2016-8
页数: 605
定价: 109.00元
装帧: 平装
丛书: 图灵程序设计丛书·Linux/UNIX系列
ISBN: 9787115429674
内容简介 · · · · · ·
这是一本关于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编程等课程。
译者简介:
门佳
资深GNU/Linux用户,喜欢溯本求源,挖掘技术背后的细节。作为技术爱好者,对编译技术、Linux系统编程、Perl、网络协议分析、Web开发等均有涉猎,译有《Lin...
作者简介:
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编程等课程。
译者简介:
门佳
资深GNU/Linux用户,喜欢溯本求源,挖掘技术背后的细节。作为技术爱好者,对编译技术、Linux系统编程、Perl、网络协议分析、Web开发等均有涉猎,译有《Linux Shell脚本攻略》《TCP Sockets编程》《精通JavaScript》等书。
武海峰
美团大众点评EP团队创建者和负责人,关注移动互联应用和安全,热爱开源软件和GNU/Linux。坚信只有同时对用户使用场景和底层实现技术有深入理解才能成为可靠的Gatekeeper。目前正致力于提升新美大的研发质量和交付速度。
目录 · · · · · ·
第1章 初识Linux shell 2
1.1 什么是Linux 2
1.1.1 深入探究Linux内核 3
1.1.2 GNU工具 6
1.1.3 Linux桌面环境 8
· · · · · · (更多)
第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 区间 433
20.2.8 特殊的字符组 434
20.2.9 星号 434
20.3 扩展正则表达式 436
20.3.1 问号 436
20.3.2 加号 437
20.3.3 使用花括号 437
20.3.4 管道符号 438
20.3.5 表达式分组 439
20.4 正则表达式实战 439
20.4.1 目录文件计数 440
20.4.2 验证电话号码 441
20.4.3 解析邮件地址 443
20.5 小结 444
第21章 sed进阶 445
21.1 多行命令 445
21.1.1 next命令 446
21.1.2 多行删除命令 449
21.1.3 多行打印命令 449
21.2 保持空间 450
21.3 排除命令 451
21.4 改变流 454
21.4.1 分支 454
21.4.2 测试 455
21.5 模式替代 456
21.5.1 &符号 457
21.5.2 替代单独的单词 457
21.6 在脚本中使用sed 458
21.6.1 使用包装脚本 458
21.6.2 重定向sed的输出 459
21.7 创建sed实用工具 460
21.7.1 加倍行间距 460
21.7.2 对可能含有空白行的文件加倍行间距 460
21.7.3 给文件中的行编号 461
21.7.4 打印末尾行 462
21.7.5 删除行 463
21.7.6 删除HTML标签 466
21.8 小结 467
第22章 gawk进阶 469
22.1 使用变量 469
22.1.1 内建变量 469
22.1.2 自定义变量 474
22.2 处理数组 476
22.2.1 定义数组变量 476
22.2.2 遍历数组变量 477
22.2.3 删除数组变量 478
22.3 使用模式 478
22.3.1 正则表达式 478
22.3.2 匹配操作符 479
22.3.3 数学表达式 480
22.4 结构化命令 480
22.4.1 if语句 480
22.4.2 while语句 482
22.4.3 do-while语句 483
22.4.4 for语句 484
22.5 格式化打印 484
22.6 内建函数 487
22.6.1 数学函数 487
22.6.2 字符串函数 488
22.6.3 时间函数 490
22.7 自定义函数 490
22.7.1 定义函数 490
22.7.2 使用自定义函数 491
22.7.3 创建函数库 491
22.8 实例 492
22.9 小结 493
第23章 使用其他shell 495
23.1 什么是dash shell 495
23.2 dash shell的特性 496
23.2.1 dash命令行参数 496
23.2.2 dash环境变量 497
23.2.3 dash内建命令 499
23.3 dash脚本编程 500
23.3.1 创建dash脚本 500
23.3.2 不能使用的功能 500
23.4 zsh shell 502
23.5 zsh shell的组成 503
23.5.1 shell选项 503
23.5.2 内建命令 504
23.6 zsh脚本编程 508
23.6.1 数学运算 508
23.6.2 结构化命令 509
23.6.3 函数 510
23.7 小结 510
第四部分 创建实用的脚本
第24章 编写简单的脚本实用工具 514
24.1 归档 514
24.2 管理用户账户 523
24.2.1 需要的功能 523
24.2.2 创建脚本 530
24.2.3 运行脚本 535
24.3 监测磁盘空间 537
24.3.1 需要的功能 537
24.3.2 创建脚本 540
24.3.3 运行脚本 541
24.4 小结 542
第25章 创建与数据库、Web及电子
邮件相关的脚本 543
25.1 MySQL数据库 543
25.1.1 使用MySQL 543
25.1.2 在脚本中使用数据库 552
25.2 使用Web 555
25.2.1 安装Lynx 556
25.2.2 lynx命令行 557
25.2.3 Lynx配置文件 558
25.2.4 从Lynx中获取数据 559
25.3 使用电子邮件 561
25.4 小结 564
第26章 一些小有意思的脚本 565
26.1 发送消息 565
26.1.1 功能分析 565
26.1.2 创建脚本 568
26.2 获取格言 573
26.2.1 功能分析 574
26.2.2 创建脚本 577
26.3 编造借口 583
26.3.1 功能分析 583
26.3.2 创建脚本 586
26.4 小结 587
附录A bash命令快速指南 589
附录B sed和gawk快速指南 597
· · · · · · (收起)
"Linux命令行与shell脚本编程大全(第3版)"试读 · · · · · ·
本章内容 什么是Linux Linux内核的组成 探索Linux桌面 了解Linux发行版 在深入研究如何使用Linux命令行和shell之前,最好先了解一下什么是Linux、它的历史及运作方式。本章将带你逐步了解什么是Linux,并介绍命令行和shell在Linux整体架构中的位置。 1.1 什么是Linux 如果你以前从未接触过Linux,可能就不清楚为什么..
丛书信息
· · · · · ·
喜欢读"Linux命令行与shell脚本编程大全(第3版)"的人也喜欢 · · · · · ·
- UNIX环境高级编程(第3版) 9.7
- 算法(第4版) 9.4
- 操作系统导论 9.4
- 深入理解Nginx(第2版) 8.7
- MySQL技术内幕 8.4
- Unix & Linux大学教程 9.5
- Effective Python 8.7
- Vim实用技巧(第2版) 9.3
- 深入浅出Docker 7.8
Linux命令行与shell脚本编程大全(第3版)的书评 · · · · · · ( 全部 17 条 )
非常适合linux初学者
没办法,人家是圣经呢
这篇书评可能有关键情节透露
看了前面一些,还没看完,确实是包罗万象,介绍得十分详细,对于有时间而且初次接触的读者,确实很有帮助,很多东西只有明白它的来龙去脉,才会有较深入的理解。虽然费时费力,但也算是一种积累~ 第一章介绍了Linux等等的历史,写得很好懂,也很全,从历史到各个发行版本,都... (展开)> 更多书评 17篇
论坛 · · · · · ·
第二版和第三版有什么区别吗 | 来自如父如子 | 2020-12-15 23:25:23 |
这本书的其他版本 · · · · · · ( 全部8 )
-
Wiley (2008)7.9分 24人读过
-
人民邮电出版社 (2012)8.4分 287人读过
-
人民邮电出版社 (2009)8.2分 76人读过
-
人民邮电出版社 (2022)9.3分 75人读过
以下书单推荐 · · · · · · ( 全部 )
- 豆瓣9分以上计算机图书 (晚安,本杰明)
- 3.Linux.入门 (葡萄)
- 书单 | 回牛 | 书架所有 (回牛)
- 评分9分以上的计算机图书 (子苓)
- 一个计算机爱好者的自我修养 (热心市民钟先生)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有1874人想读,手里有一本闲着?
订阅关于Linux命令行与shell脚本编程大全(第3版)的评论:
feed: rss 2.0
0 有用 Juniberg 2021-11-24 00:09:20
非常适合我这种傻里傻气的读者
0 有用 青豆 2022-03-29 11:43:06
很不错,比那本台湾人写的大部头好看。
0 有用 1984 2022-04-30 10:20:46
以后务必买一本纸质书。作为字典使用。不错
1 有用 热心市民钟先生 2022-11-17 08:39:08 浙江
看到一半,出了第四版……
13 有用 虾卤 2018-04-09 09:34:02
前面的基础知识和鸟哥私房菜有一部分重复,后面的shell编程细节平常用不到,没仔细看,总得来说质量不错,把shell的使用写清楚了,对新手会很有帮助。
0 有用 purpleHaze 2024-03-02 15:48:36 浙江
基础知识大都覆盖了,适合有编程经验的入门书
0 有用 发条陈 2024-02-07 16:56:56 浙江
看完此书已有一年(想想工作已经一年多,真快啊),补标。 23年下半年,刚参加工作,不知天高地厚上班摸鱼,通读此书。之后被领导敲打,开始内卷,便再没有上班时间看书的经历了。 很多时候,shell确实要比python方便得多,对于工作效率的提高非常显著。本书适合入门,看完之后可以开启自训练飞轮。
0 有用 来生たくみ 2023-06-12 23:10:10 四川
把shell的部分看完了,感觉不错。
0 有用 Bigger Fish 2023-03-14 23:51:03 陕西
看了shell编程的一点内容,很基础,后面可以当作工具书来翻
0 有用 异史氏 2023-03-13 18:19:15 江苏
个人觉得看看《Linux命令行大全》就好,至少讲变量扩展这部分《Linux命令行大全》更好,也更接近学习者的思路