标题：大方村
基本信息
书名:
linux命令行和shell脚本编程宝典
书号:
作者:
[美]richardblum
图书简介
在linux系统中，命令和shell脚本是非常重要的内容，它们的功能非常强大，使用它们可以完成各种操作。本书分为5部分。第1部分介绍linuxshell的基础知识；第2部分介绍shell脚本；第3部分介绍shell脚本编程的高级内容；第4部分介绍如何使用linux环境中的各种shell编写shell脚本；第5部分演示如何在实际情况中使用shell脚本。
本书非常全面地介绍了linux命令行和shell命令，并且提供了很多实践教程和实例应用程序信息，为学习的内容提供了相关环境，是linux的爱好者以及linux系统管理员的首选。
书籍目录
目录:
第1部分linux命令行
第1章linuxshell入门3
1.1什么是linux3
1.1.1深入研究linux内核4
1.1.2gnu实用程序9
1.1.3linux桌面环境10
1.2linux发行版13
1.2.1核心linux发行版13
1.2.2特定linux发行版14
1.2.3linuxlivecd14
1.3小结15
第2章了解shell17
2.1终端模拟17
2.1.1图形功能18
2.1.2键盘20
2.2terminfo数据库21
2.3linux控制台23
2.4xterm终端24
2.4.1命令行参数24
2.4.2xterm主菜单25
2.4.3vt选项菜单26
2.4.4vt字体菜单28
2.5konsole终端29
2.5.1命令行参数29
2.5.2会话30
2.5.3菜单栏31
2.6gnome终端34
2.6.1命令行参数34
2.6.2选项卡35
2.6.3菜单栏35
2.7小结37
第3章基本的bashshell命令38
3.1启动shell38
3.2shell提示符39
3.3bash手册40
3.4文件系统导航41
3.4.1linux文件系统41
3.4.2浏览目录43
3.5文件和目录列表44
3.5.1基本列表44
3.5.2修改显示的信息45
3.5.3完整的参数列表46
3.5.4过滤列表输出48
3.6文件处理48
3.6.1创建文件48
3.6.2复制文件49
3.6.3链接文件50
3.6.4重命名文件51
3.6.5删除文件52
3.7目录处理53
3.7.1创建目录53
3.7.2删除目录53
3.8查看文件内容54
3.8.1查看文件统计数据54
3.8.2查看文件类型54
3.8.3查看整个文件55
3.8.4查看部分文件57
3.9小结58
第4章更多bashshell命令59
4.1监控程序59
4.1.1进程查看59
4.1.2实时进程监控64
4.1.3停止进程66
4.2监控磁盘空间67
4.2.1挂载介质68
4.2.2使用df命令70
4.2.3使用du命令71
4.3操作数据文件71
4.3.1数据排序72
4.3.2搜索数据74
4.3.3压缩数据75
4.3.4归档数据78
4.4小结79
第5章使用linux环境变量80
5.1什么是环境变量80
5.1.1全局环境变量80
5.1.2本地环境变量81
5.2设置环境变量83
5.2.1设置本地环境变量83
5.2.2设置全局环境变量84
5.3移除环境变量84
5.4默认的shell环境变量85
5.5设置path环境变量87
5.6定位系统环境变量88
5.6.1登录shell88
5.6.2交互式shell90
5.6.3非交互式shell92
5.7变量数组92
5.8使用命令别名93
5.9小结94
第6章理解linux文件权限96
6.1linux安全性96
6.1.1/etc/passwd文件96
6.1.2/etc/shadow文件98
6.1.3添加新用户98
6.1.4删除用户100
6.1.5修改用户100
6.2使用linux用户组102
6.2.1/etc/group文件103
6.2.2创建新用户组103
6.2.3修改用户组104
6.3解码文件权限104
6.3.1使用文件权限符号105
6.3.2默认文件权限105
6.4修改安全设置107
6.4.1修改权限107
6.4.2修改所有者108
6.5共享文件108
6.6小结109
第7章使用编辑器111
7.1vim编辑器111
7.1.1vim基本用法111
7.1.2编辑数据113
7.1.3复制和粘贴113
7.1.4搜索和替换114
7.2emacs编辑器114
7.2.1在控制台中使用emacs114
7.2.2在xwindows中使用emacs118
7.3kde系列编辑器119
7.3.1kwrite编辑器119
7.3.2kate编辑器121
7.4gnome编辑器124
7.4.1启动gedit124
7.4.2基本gedit特性125
7.4.3设置首选项125
7.5小结128
第2部分shell脚本的基础知识
第8章基本脚本编译131
8.1使用多条命令131
8.2创建脚本文件131
8.3显示消息133
8.4使用变量134
8.4.1环境变量134
8.4.2用户变量135
8.4.3反引号136
8.5重定向输入输出137
8.5.1输出重定向137
8.5.2输入重定向137
8.6管道138
8.7数学计算140
8.7.1expr命令140
8.7.2使用括号141
8.7.3浮点解决方案142
8.8退出脚本145
8.8.1核对退出状态145
8.8.2退出命令146
8.9小结147
第9章使用结构化命令148
9.1使用if-then语句148
9.2if-then-else语句150
9.3嵌套if语句150
9.4test命令151
9.4.1数值比较151
9.4.2字符串比较152
9.4.3文件比较155
9.5复合条件检查161
9.6if-then的高级特征161
9.6.1使用双圆括号162
9.6.2使用双方括号162
9.7case命令163
9.8小结164
第10章更多结构化命令165
10.1for命令165
10.1.1读取列表中的值165
10.1.2读取列表中的复杂值166
10.1.3从变量读取列表168
10.1.4读取命令中的值168
10.1.5改变字段分隔符169
10.1.6使用通配符读取目录170
10.2c式的for命令171
10.2.1c语言中的for命令171
10.2.2使用多个变量172
10.3while命令173
10.3.1while的基本格式173
10.3.2使用多条测试命令174
10.4until命令175
10.5嵌套循环176
10.6文件数据的循环178
10.7控制循环178
10.7.1break命令179
10.7.2continue命令181
10.8处理循环的输出183
10.9小结184
第11章处理用户输入185
11.1命令行参数185
11.1.1读取参数185
11.1.2读取程序名称187
11.1.3测试参数188
11.2特殊的参数变量188
11.2.1参数计数188
11.2.2获取所有数据190
11.3移位190
11.4处理选项191
11.4.1找出选项191
11.4.2使用getopt命令194
11.4.3更高级的getopts命令196
11.5标准化选项197
11.6获取用户输入198
11.6.1基本读取198
11.6.2计时199
11.6.3默读200
11.6.4读取文件200
11.7小结201
第12章显示数据202
12.1了解输入和输出202
12.1.1标准文件描述符202
12.1.2重定向错误204
12.2在脚本中重定向输出205
12.2.1临时重定向205
12.2.2永久重定向206
12.3在脚本中重定向输入207
12.4创建自己的重定向207
12.4.1创建输出文件描述符207
12.4.2重定向文件描述符208
12.4.3创建输入文件描述符208
12.4.4创建读取/写入文件描述符209
12.4.5关闭文件描述符210
12.5列出开放文件描述符210
12.6禁止命令输出212
12.7使用临时文件212
12.7.1创建本地临时文件213
12.7.2在/temp中创建临时文件213
12.7.3创建临时目录214
12.8记录消息215
12.9小结216
第13章脚本控制217
13.1处理信号217
13.1.1linux信号回顾217
13.1.2生成信号218
13.1.3捕获信号219
13.1.4捕获脚本退出220
13.1.5移除捕获220
13.2以后台模式运行脚本221
13.2.1以后台模式运行221
13.2.2运行多个后台作业222
13.2.3退出终端222
13.3在不使用控制台的情况下运行脚本222
13.4作业控制223
13.4.1查看作业223
13.4.2重新启动停止的作业225
13.5变得更好225
13.5.1nice命令226
13.5.2renice命令226
13.6准确无误地运行227
13.6.1使用at命令调度作业227
13.6.2使用batch命令229
13.6.3调度定期脚本229
13.7从头开始230
13.7.1在启动时启动脚本231
13.7.2随新shell一起启动232
13.8小结232
第3部分高级shell脚本编程
第14章创建函数235
14.1基本脚本函数235
14.1.1创建函数235
14.1.2使用函数236
14.2返回值237
14.2.1默认退出状态237
14.2.2使用return命令238
14.2.3使用函数输出239
14.3在函数中使用变量239
14.3.1向函数传递参数240
14.3.2在函数中处理变量241
14.4数组变量与函数243
14.4.1向函数传递数组243
14.4.2从函数返回数组244
14.5函数递归245
14.6创建库246
14.7在命令行中使用函数247
14.7.1在命令行创建函数247
14.7.2在.bashrc文件中定义函数248
14.8小结249
第15章在脚本中添加颜色250
15.1创建文本菜单250
15.1.1创建菜单布局250
15.1.2创建菜单函数251
15.1.3添加菜单逻辑252
15.1.4将其全部组合在一起252
15.1.5使用select命令253
15.2添加颜色254
15.2.1ansi转义码254
15.2.2显示ansi转义码255
15.2.3在脚本中使用颜色256
15.3制作窗口257
15.3.1dialog软件包257
15.3.2dialog选项261
15.3.3在脚本中使用dialog命令263
15.4获取图形265
15.4.1kde环境265
15.4.2gnome环境267
15.5小结270
第16章sed和gawk介绍271
16.1文本处理271
16.1.1sed编辑器271
16.1.2gawk程序273
16.2sed编辑器基础知识278
16.2.1更多替换选项278
16.2.2使用地址279
16.2.3删除行281
16.2.4插入和附加文本282
16.2.5更改行283
16.2.6变换命令284
16.2.7打印命令温习284
16.2.8将文件用于sed286
16.3小结288
第17章正则表达式289
17.1正则表达式是什么289
17.1.1正则表达式的定义289
17.1.2正则表达式的类型290
17.2定义bre模式290
17.2.1纯文本290
17.2.2特殊字符291
17.2.3定位符292
17.2.4点字符293
17.2.5字符类294
17.2.6否定字符类295
17.2.7使用范围296
17.2.8特殊字符类296
17.2.9星号297
17.3扩展的正则表达式298
17.3.1问号298
17.3.2加号299
17.3.3使用大括号299
17.3.4管道符号300
17.3.5将表达式分组300
17.4正则表达式实战301
17.4.1计算目录文件301
17.4.2验证电话号码302
17.4.3解析电子邮件地址303
17.5小结304
第18章高级sed编程306
18.1多行命令306
18.1.1next命令306
18.1.2多行删除命令309
18.1.3多行打印命令310
18.2保留空间310
18.3否定命令311
18.4更改命令流313
18.4.1分支313
18.4.2测试314
18.5模式替换315
18.5.1与号315
18.5.2替换个别单词315
18.6在脚本中使用sed316
18.6.1使用包装器316
18.6.2重定向sed输出317
18.7创建sed工具317
18.7.1双倍行距318
18.7.2对可能有空行的文件使用双倍行距318
18.7.3对文件中的行记数319
18.7.4打印最后几行319
18.7.5删除行320
18.7.6删除html标记322
18.8小结323
第19章高级gawk编程324
19.1使用变量324
19.1.1内置变量324
19.1.2用户定义的变量328
19.2使用数组329
19.2.1定义数组变量329
19.2.2在数组变量中递归330
19.2.3删除数组变量330
19.3使用模式331
19.3.1正则表达式331
19.3.2匹配操作符331
19.3.3数学表达式332
19.4结构化命令332
19.4.1if语句333
19.4.2while语句334
19.4.3do-while语句335
19.4.4for语句335
19.5格式化打印335
19.6内置函数337
19.6.1数学函数337
19.6.2字符串函数338
19.6.3时间函数339
19.7用户定义的函数340
19.7.1定义函数340
19.7.2使用自己的函数340
19.7.3创建函数库341
19.8小结341
第4部分可选的linuxshell
第20章ashshell345
20.1什么是ashshell345
20.2原始ashshell346
20.2.1原始ash命令行参数346
20.2.2原始ash内置命令347
20.2.3ashshell文件349
20.3dashshell349
20.3.1dash命令行参数349
20.3.2dash环境变量350
20.3.3dash内置命令352
20.4在dash中编写脚本355
20.4.1创建ash和dash脚本355
20.4.2失效的特性355
20.5小结359
第21章tcshshell360
21.1什么是tcshshell360
21.2tcashshell的组成部分360
21.2.1tcsh命令行参数361
21.2.2tcsh文件361
21.2.3tcsh登录文件362
21.2.4shell启动文件362
21.2.5退出文件363
21.2.6tcsh环境变量364
21.2.7shell变量364
21.2.8环境变量367
21.2.9在tcsh中设置变量369
21.2.10使用set命令369
21.2.11使用setenv命令369
21.2.12tcsh内置命令370
21.3在tcsh中编写脚本372
21.3.1处理变量372
21.3.2数组变量372
21.3.3处理数学运算372
21.3.4结构化命令373
21.3.5if语句373
21.3.6foreach语句375
21.3.7while语句375
21.3.8switch命令375
21.4小结376
第22章kornshell378
22.1kornshell的历史378
22.2ksh93shell的组成部分378
22.2.1命令行参数379
22.2.2默认文件380
22.2.3环境变量380
22.2.4内置命令385
22.3在ksh93shell中编写脚本387
22.3.1数学运算387
22.3.2结构化命令389
22.3.3命令重定向391
22.3.4规程函数391
22.4小结392
第23章zshshell393
23.1zshshell的历史393
23.2zshshell的组成部分393
23.2.1shell选项394
23.2.2zshshell文件396
23.2.3环境变量398
23.2.4内置命令401
23.3使用zsh编写脚本405
23.3.1数学运算405
23.3.2结构化命令406
23.3.3函数406
23.4小结408
第5部分高级主题
第24章使用数据库411
24.1mysql数据库411
24.1.1安装mysql411
24.1.2完成mysql配置413
24.1.3mysql客户端接口414
24.1.4创建mysql数据库对象417
24.2postgresql数据库419
24.2.1安装postgresql419
24.2.2postgresql命令接口421
24.2.3创建postgresql数据库对象422
24.3处理表424
24.3.1创建表424
24.3.2插入和删除数据425
24.3.3查询数据426
24.4在脚本中使用数据库427
24.4.1连接到数据库427
24.4.2向服务器发送命令428
24.4.3格式化数据431
24.5小结432
第25章使用web433
25.1lynx程序433
25.1.1安装lynx434
25.1.2lynx命令行434
25.1.3lynx配置文件438
25.1.4lynx环境变量439
25.1.5从lynx捕获数据439
25.2curl程序441
25.2.1安装curl441
25.2.2curl命令行442
25.2.3研究curl444
25.3使用zsh连接网络445
25.3.1tcp模块445
25.3.2客户端/服务器模型446
25.3.3使用zsh进行客户端/服务器编程446
25.4小结449
第26章使用电子邮件450
26.1linux电子邮件基础知识450
26.1.1linux中的电子邮件450
26.1.2邮件传输代理451
26.1.3邮件分发代理452
26.1.4邮件用户代理452
26.2设置服务器454
26.2.1sendmail455
26.2.2postfix456
26.3使用mailx发送消息459
26.4mutt程序461
26.4.1安装mutt461
26.4.2mutt命令行462
26.4.3使用mutt462
26.5小结463
第27章管理员使用的shell脚本465
27.1监视系统统计信息465
27.1.1监视磁盘空闲空间465
27.1.2谁在霸占磁盘资源467
27.1.3监视cpu和内存使用情况469
27.2执行备份474
27.2.1归档数据文件474
27.2.2脱机存储备份文件477
27.3小结478
附录abash命令快速指南479
a.1内置命令479
a.2bash命令480
a.3环境变量481
附录bsed和gawk快速指南484
b.1sed编辑器484
b.1.1启动sed编辑器484
b.1.2sed命令484
b.2gawk程序487
b.2.1gawk命令格式487
b.2.2使用gawk487
b.2.3gawk变量488
b.2.4gawk程序功能489
附录cshell版本比较491
c.1变量491
c.1.1环境变量491
c.1.2用户定义的变量491
c.1.3数组变量492
c.2结构化命令492
c.2.1if-then、while和until语句492
c.2.2for语句493
c.3数学计算493[1]