shell电子书

关注公众号 jb51net

关闭
Shell脚本编程诀窍——适用于Linux、Bash等 中文pdf扫描版

Shell脚本编程诀窍——适用于Linux、Bash等 中文pdf扫描版

热门排行

简介

shell脚本编程诀窍——适用于linux、bash等》主要内容:shell是与unix和linux系统通信的主要方法,并通过使简单到中间任务的自动化,提供了一种直接的编程手段。在《shell脚本编程诀窍——适用于linux、bash等》中,精通unix、linux与shell脚本编程的专家steve parker分享了一组shell实用脚本编程诀窍。这些实用脚本编程诀窍可以拿来直接使用,或者很容易对其修改以适应各种环境与条件。本书一开始介绍了一些理论与原理,并且每个讨论的话题都包含了具有深刻意义的示例。介绍完理论之后开始深入讨论shell编程,内容涵盖所有的unix种类,但主要集中于linux与bash shell。至始至终,本书都在介绍一些可信的、用于实际用途的实用脚本编程诀窍,以及用来快速上手的工具。

主要内容

《shell脚本编程诀窍——适用于linux、bash等》汇总了许多很有用的shell实用脚本编程诀窍,能用来处理现实中的各种问题
《shell脚本编程诀窍——适用于linux、bash等》包含的实用脚本编程诀窍使用了文件与文本控制,以及通用的系统管理员任务
《shell脚本编程诀窍——适用于linux、bash等》是提供的实用脚本编程诀窍随时可使用或修改
《shell脚本编程诀窍——适用于linux、bash等》讨论了变量、if/then条件、循环、函数、管道与重定向等。
《shell脚本编程诀窍——适用于linux、bash等》

第ⅰ部分 基本概念
第1章 unix、gnu和linux的历史 3
1.1 unix 3
1.1.1 “一切皆文件”与管道 5
1.1.2 bsd 6
1.2 gnu 7
1.3 linux 10
1.4 本章小结 12
第2章 环境的搭建 13
2.1 操作系统 13
2.1.1 gnu/linux 13
2.1.2 bsd 15
2.1.3 商业unix 15
2.1.4 microsoft windows 15
2.2 编辑器 16
2.2.1 图形化文本编辑器 16
2.2.2 终端模拟器 19
2.2.3 非图形化文本编辑器 19
2.3 系统环境的搭建 21
2.3.1 shell配置文件 21
2.3.2 别名 23
2.3.3 vim设置 27
2.4 本章小结 28
第3章 变量 29
3.1 使用变量 29
3.1.1 类型 30
3.1.2 变量的赋值 30
3.1.3 位置参数 34
3.1.4 返回码 38
3.1.5 删除变量 41
3.2 预定义变量和标准变量 42
3.2.1 bash_env 43
3.2.2 bashopts 43
3.2.3 shellopts 44
3.2.4 bash_command 46
3.2.5 bash_source、funcname、lineno 和bash_lineno 47
3.2.6 shell 51
3.2.7 hostname 和hosttype 51
3.2.8 工作目录 51
3.2.9 pipestatus 51
3.2.10 timeformat 52
3.2.11 ppid 53
3.2.12 random 54
3.2.13 replay 54
3.2.14 seconds 55
3.2.15 bash_xtracefd 55
3.2.16 globignore 57
3.2.17 home 58
3.2.18 ifs 58
3.2.19 path 59
3.2.20 tmout 60
3.2.21 tmpdir 61
3.2.22 用户标识变量 61
3.3 本章小结 62
第4章 通配符扩展 63
4.1 文件名扩展(globbing) 63
4.1.1 bash的文件名扩展特性 66
4.1.2 shell选项 67
4.2 正则表达式和引用 71
4.2.1 正则表达式概述 72
4.2.2 引用 73
4.3 本章小结 77
第5章 条件执行 79
5.1 if/then 79
5.2 else 80
5.3 elif 81
5.4 test([) 83
5.4.1 测试标志 84
5.4.2 文件比较测试 91
5.4.3 字符串比较测试 92
5.4.4 正则表达式测试 94
5.4.5 数值测试 97
5.4.6 组合测试 98
5.5 case 101
5.6 本章小结 105
第6章 使用循环进行流控制 107
6.1 for循环 107
6.1.1 for循环的使用时机 108
6.1.2 向for提供数据 108
6.1.3 c风格的for循环 114
6.2 while循环 115
6.2.1 while循环的使用时机 116
6.2.2 while循环的用法 116
6.3 嵌套循环 122
6.4 循环的退出与继续 122
6.5 带case的while循环 126
6.6 until循环 127
6.7 select循环 129
6.8 本章小结 134
第7章 变量(续) 135
7.1 变量的用法 135
7.1.1 变量的类型 137
7.1.2 变量的长度 138
7.1.3 特殊字符串操作符 140
7.1.4 按照长度剪裁变量字符串 141
7.1.5 从字符串末尾剪裁 143
7.1.6 使用模式剪裁字符串 143
7.2 字符串查找 147
7.2.1 查找与替换 147
7.2.2 模式替换 149
7.2.3 模式删除 149
7.2.4 大小写转换 149
7.3 提供默认值 150
7.4 间接操作 153
7.5 使用source命令加载变量 155
7.6 本章小结 156
第8章 函数和库 157
8.1 函数 157
8.1.1 函数定义 157
8.1.2 函数输出 158
8.1.3 写入文件 160
8.1.4 整个函数的输出重定向 163
8.1.5 函数陷阱 167
8.1.6 递归函数 168
8.2 变量的作用域 173
8.3 库 177
8.3.1 库的创建与访问 179
8.3.2 库的结构 179
8.3.3 网络配置库 183
8.3.4 库的使用 187
8.4 getopts 187
8.4.1 错误处理 190
8.4.2 函数中的getopts 191
8.5 本章小结 194
第9章 数组 195
9.1 数组的赋值 195
9.1.1 一次一个 196
9.1.2 一次全部 196
9.1.3 按索引 197
9.1.4 从源中一次全部读取 197
9.1.5 从输入读取 199
9.2 数组的访问 201
9.2.1 用索引访问 201
9.2.2 数组的长度 202
9.2.3 用变量索引访问 203
9.2.4 从数组中选择元素 205
9.2.5 显示整个数组 206
9.3 关联数组 206
9.4 数组操作 207
9.4.1 数组的复制 207
9.4.2 向数组追加元素 209
9.4.3 从数组中删除元素 211
9.5 高级技术 212
9.6 本章小结 213
第10章 进程 215
10.1 ps命令 215
10.1.1 ps显示的行宽 216
10.1.2 精确分析进程表 217
10.2 killall 219
10.3 /proc虚拟文件系统 220
10.4 prtstat 221
10.5 i/o重定向 222
10.5.1 向已有文件追加输出 224
10.5.2 重定向的权限 225
10.6 exec 225
10.6.1 使用exec替换已有程序 225
10.6.2 使用exec修改重定向 226
10.7 管道 233
10.8 后台处理 233
10.8.1 wait命令 234
10.8.2 使用nohup防止进程挂起 235
10.9 /proc和/sys的其他特性 238
10.9.1 /proc/version 238
10.9.2 sysrq 238
10.9.3 /proc/meminfo 240
10.9.4 /proc/cpuinfo 241
10.9.5 /sys 241
10.9.6 /sys/devices/system/node 248
10.9.7 sysctl 250
10.10 本章小结 250
第11章 shell的选择与使用 251
11.1 bourne shell 251
11.2 kornshell 252
11.3 c shell 252
11.4 tenex c shell 252
11.5 z shell 253
11.6 bourne again shell 253
11.7 debian almquist shell 253
11.8 点文件 254
11.8.1 交互式登录shell 255
11.8.2 交互式非登录shell 256
11.8.3 非交互式shell 257
11.8.4 登出脚本 257
11.9 命令提示符 257
11.9.1 ps1提示符 257
11.9.2 ps2、ps3和ps4提示符 259
11.10 别名 260
11.10.1 节省时间 260
11.10.2 修改行为 261
11.11 history命令 262
11.11.1 回调命令 262
11.11.2 搜索历史 263
11.11.3 时间戳 263
11.12 tab补全 265
11.12.1 ksh 265
11.12.2 tcsh 266
11.12.3 zsh 266
11.12.4 bash 267
11.13 后台、前台与作业控制 268
11.13.1 后台进程 268
11.13.2 作业控制 268
11.13.3 nohup和disown 271
11.14 本章小结 272
第ⅱ部分 系统工具使用与扩展诀窍
第12章 文件操作 275
12.1 stat 275
12.2 cat 277
12.2.1 行号标记 277
12.2.2 处理空白行 278
12.2.3 非打印字符 279
12.3 cat的反转词tac 280
12.4 重定向 281
12.4.1 重定向输出:单个大于符号(]) 281
12.4.2 追加:双大于符号(]]) 282
12.4.3 输入重定向:单个小于符号([) 284
12.4.4 here文档:双小于符号([[ eof) 286
12.5 dd 289
12.6 df 291
12.7 mktemp 292
12.8 join 293
12.9 install 294
12.10 grep 296
12.10.1 grep标志 297
12.10.2 grep正则表达式 298
12.11 split 299
12.12 tee 301
12.13 touch 302
12.14 find 303
12.15 find -exec 306
12.16 本章小结 310
第13章 文本操作 311
13.1 cut 311
13.2 echo 312
13.2.1 dial1脚本 312
13.2.2 dial2脚本 315
13.3 fmt 316
13.4 head和tail 319
13.4.1 奖牌脚本 319
13.4.2 世界杯脚本 320
13.5 od 324
13.6 paste 328
13.7 pr 331
13.8 printf 332
13.9 shuf 334
13.9.1 掷骰子 334
13.9.2 发牌 335
13.9.3 旅行线路 336
13.10 sort 338
13.10.1 按照键进行排序 338
13.10.2 按照日期与时间对日志文件排序 340
13.10.3 对人类可读的数值进行排序 342
13.11 tr 343
13.12 uniq 346
13.13 wc 348
13.14 本章小结 349
第14章 系统管理工具 351
14.1 basename 351
14.2 date 353
14.2.1 date的典型用法 353
14.2.2 date的一些更有趣的用法 357
14.3 dirname 358
14.4 factor 360
14.5 id、groups与getent 362
14.6 logger 365
14.7 md5sum 366
14.8 mkfifo 368
14.8.1 主与从 369
14.8.2 颠倒顺序 371
14.9 联网 373
14.9.1 telnet 373
14.9.2 netcat 374
14.9.3 ping 376
14.9.4 编写ssh与scp脚本 378
14.9.5 openssl 381
14.10 nohup 387
14.11 seq 388
14.11.1 整数序列 389
14.11.2 浮点数序列 391
14.12 sleep 391
14.13 timeout 392
14.13.1 关闭脚本 394
14.13.2 网络超时 396
14.14 uname 398
14.15 uuencode 399
14.16 xargs 400
14.17 yes 403
14.18 本章小结 404
第ⅲ部分 系统管理的实用脚本
第15章 shell特性 407
15.1 实用脚本15-1:安装初始化脚本 407
15.1.1 用到的技术 407
15.1.2 概念 408
15.1.3 潜在的陷阱 408
15.1.4 脚本结构 408
15.1.5 脚本代码 410
15.1.6 调用结果 411
15.1.7 小结 412
15.2 实用脚本15-2:rpm报告 412
15.2.1 用到的技术 412
15.2.2 概念 412
15.2.3 潜在的陷阱 413
15.2.4 脚本结构 413
15.2.5 脚本代码 414
15.2.6 调用结果 417
15.2.7 小结 418
15.3 实用脚本15-3:postinstall脚本 418
15.3.1 用到的技术 418
15.3.2 概念 419
15.3.3 潜在的陷阱 419
15.3.4 脚本结构 420
15.3.5 脚本代码 421
15.3.6 调用结果 423
15.3.7 小结 423
第16章 系统管理 425
16.1 实用脚本16-1:初始化脚本 425
16.1.1 用到的技术 426
16.1.2 概念 426
16.1.3 潜在的陷阱 427
16.1.4 脚本结构 428
16.1.5 脚本代码 429
16.1.6 调用结果 430
16.1.7 小结 431
16.2 实用脚本16-2:cgi脚本 431
16.2.1 用到的技术 431
16.2.2 概念 431
16.2.3 潜在的陷阱 432
16.2.4 脚本结构 433
16.2.5 脚本代码 436
16.2.6 调用结果 439
16.2.7 小结 442
16.3 实用脚本16-3:配置文件 443
16.3.1 用到的技术 443
16.3.2 概念 443
16.3.3 潜在的陷阱 443
16.3.4 脚本结构 443
16.3.5 脚本代码 444
16.3.6 调用结果 445
16.3.7 小结 445
16.4 实用脚本16-4:锁 445
16.4.1 用到的技术 446
16.4.2 概念 446
16.4.3 潜在的陷阱 446
16.4.4 脚本结构 448
16.4.5 脚本代码 450
16.4.6 调用结果 452
16.4.7 小结 455
第17章 演示 457
17.1 实用脚本17-1:太空游戏 457
17.1.1 用到的技术 457
17.1.2 概念 457
17.1.3 潜在的陷阱 460
17.1.4 脚本结构 460
17.1.5 脚本代码 461
17.1.6 调用结果 466
17.1.7 小结 468
第18章 数据存储与检索 469
18.1 实用脚本18-1:分析html 469
18.1.1 用到的技术 469
18.1.2 概念 469
18.1.3 潜在的陷阱 470
18.1.4 脚本结构 470
18.1.5 脚本代码 471
18.1.6 调用结果 472
18.1.7 小结 474
18.2 实用脚本18-2:csv格式化 474
18.2.1 用到的技术 474
18.2.2 概念 475
18.2.3 潜在的陷阱 475
18.2.4 脚本结构 475
18.2.5 脚本代码 477
18.2.6 调用结果 479
18.2.7 小结 480
第19章 数值 481
19.1 实用脚本19-1:斐波那契数列 481
19.1.1 用到的技术 481
19.1.2 概念 482
19.1.3 潜在的陷阱 482
19.1.4 方法一的结构 483
19.1.5 方法一的脚本 483
19.1.6 方法一的调用结果 484
19.1.7 方法二的结构 484
19.1.8 方法二的脚本 485
19.1.9 方法二的调用结果 486
19.1.10 方法三的结构 487
19.1.11 方法三的脚本 488
19.1.12 方法三的调用结果 488
19.1.13 小结 490
19.2 实用脚本19-2:pxe启动 490
19.2.1 用到的技术 490
19.2.2 概念 490
19.2.3 潜在的陷阱 491
19.2.4 脚本结构 491
19.2.5 脚本代码 492
19.2.6 调用结果 495
19.2.7 小结 497
第20章 进程 499
20.1 实用脚本20-1:进程控制 499
20.1.1 用到的技术 499
20.1.2 概念 499
20.1.3 潜在的陷阱 501
20.1.4 脚本结构 501
20.1.5 脚本代码 503
20.1.6 调用结果 509
20.1.7 小结 514
第21章 国际化 515
21.1 实用脚本21-1:国际化 515
21.1.1 用到的技术 516
21.1.2 概念 516
21.1.3 潜在的陷阱 517
21.1.4 脚本结构 518
21.1.5 脚本代码 518
21.1.6 调用结果 522
21.1.7 小结 524
第ⅳ部分 参考信息
附录 补充材料 527
术语表 531

大家还下载了