《Linux命令行和shell脚本编程宝典》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)RichardBlum著;苏丽,张妍婧,侯晓敏等译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2009
  • ISBN:9787115197771
  • 页数:494 页
图书介绍:本书涵盖了最流行的Linux shell。这本综合指南说明了如何在每种shell中使用命令来创建脚本,并展示了shell脚本的实际应用程序,包括从Web站点检索信息以及通过e-mail发送自动报告。

第1部分 Linux命令行 3

第1章 Linuxshell入门 3

1.1什么是Linux 3

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.3LinuxLiveCD 14

1.3小结 15

第2章 了解shell 17

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启动shell 38

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登录shell 88

5.6.2交互式shell 90

5.6.3非交互式shell 92

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在控制台中使用emacs 114

7.2.2在XWindows中使用emacs 118

7.3KDE系列编辑器 119

7.3.1KWrite编辑器 119

7.3.2Kate编辑器 121

7.4GNOME编辑器 124

7.4.1启动gedit 124

7.4.2基本gedit特性 125

7.4.3设置首选项 125

7.5小结 128

第2部分 shell脚本的基础知识 131

第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脚本编程 235

第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将文件用于sed 286

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在脚本中使用sed 316

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 345

第20章 ashshell 345

20.1什么是ashshell 345

20.2原始ashshell 346

20.2.1原始ash命令行参数 346

20.2.2原始ash内置命令 347

20.2.3ashshell文件 349

20.3dashshell 349

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章 tcshshell 360

21.1什么是tcshshell 360

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章 Kornshell 378

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章 zshshell 393

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部分 高级主题 411

第24章 使用数据库 411

24.1MySQL数据库 411

24.1.1安装MySQL 411

24.1.2完成MySQL配置 413

24.1.3MySQL客户端接口 414

24.1.4创建MySQL数据库对象 417

24.2PostgreSQL数据库 419

24.2.1安装PostgreSQL 419

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章 使用Web 433

25.1Lynx程序 433

25.1.1安装Lynx 434

25.1.2Lynx命令行 434

25.1.3Lynx配置文件 438

25.1.4Lynx环境变量 439

25.1.5从Lynx捕获数据 439

25.2cURL程序 441

25.2.1安装cURL 441

25.2.2cURL命令行 442

25.2.3研究curl 444

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.1sendmail 455

26.2.2Postfix 456

26.3使用Mailx发送消息 459

26.4Mutt程序 461

26.4.1安装Mutt 461

26.4.2Mutt命令行 462

26.4.3使用Mutt 462

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

附录A bash命令快速指南 479

A.1内置命令 479

A.2bash命令 480

A.3环境变量 481

附录B sed和gawk快速指南 484

B.1sed编辑器 484

B.1.1启动sed编辑器 484

B.1.2sed命令 484

B.2gawk程序 487

B.2.1gawk命令格式 487

B.2.2使用gawk 487

B.2.3gawk变量 488

B.2.4gawk程序功能 489

附录C shell版本比较 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