新書推薦:
《
刻意练习不生气
》
售價:HK$
39.2
《
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
》
售價:HK$
109.8
《
安全感是内心长出的盔甲
》
售價:HK$
67.0
《
快人一步:系统性能提高之道
》
售價:HK$
110.9
《
算法图解(第2版)
》
售價:HK$
78.2
《
科学的奇幻之旅
》
售價:HK$
77.3
《
画艺循谱:晚明的画谱与消闲
》
售價:HK$
143.4
《
新民说·现实政治史:从马基雅维利到基辛格
》
售價:HK$
99.7
|
編輯推薦: |
精通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 shell2
1.1 什么是Linux2
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 LiveCD14
1.3 小结15
第2章 走进shell16
2.1 进入命令行16
2.1.1 控制台终端17
2.1.2 图形化终端17
2.2 通过Linux控制台终端访问CLI18
2.3 通过图形化终端仿真访问CLI20
2.4 使用GNOME Terminal仿真器21
2.4.1 访问GNOME Terminal21
2.4.2 菜单栏22
2.5 使用Konsole Terminal仿真器25
2.5.1 访问Konsole Terminal25
2.5.2 菜单栏26
2.6 使用xterm终端仿真器29
2.6.1 访问xterm30
2.6.2 命令行参数30
2.7 小结32
第3章 基本的bash shell命令33
3.1 启动shell33
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章 理解shell86
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 登录shell115
6.6.2 交互式shell进程119
6.6.3 非交互式shell120
6.6.4 环境变量持久化121
6.7 数组变量121
6.8 小结122
第7章 理解Linux文件权限124
7.1 Linux的安全性124
7.1.1 etcpasswd文件124
7.1.2 etcshadow文件126
7.1.3 添加新用户127
7.1.4 删除用户129
7.1.5 修改用户130
7.2 使用Linux组132
7.2.1 etcgroup文件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中的LVM155
8.3.3 使用Linux LVM156
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 在控制台中使用emacs190
10.3.3 在GUI环境中使用emacs195
10.4 KDE系编辑器196
10.4.1 KWrite编辑器196
10.4.2 Kate编辑器200
10.5 GNOME编辑器202
10.5.1 启动gedit203
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 嵌套if235
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 使用更高级的getopts302
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和gawk401
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 在脚本中使用sed458
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章 使用其他shell495
23.1 什么是dash shell495
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 shell502
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 使用MySQL543
25.1.2 在脚本中使用数据库552
25.2 使用Web555
25.2.1 安装Lynx556
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
|
|