《Linux命令行与shell脚本编程大全 原书第2版》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)布卢姆,(美)布雷斯纳汉著;武海峰译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2012
  • ISBN:9787115288899
  • 页数:620 页
图书介绍:本书介绍了Linux新版本的修改,并涵盖了默认bash shell脚本的替换shell脚本。新增了文件系统命令和软件安装命令的使用介绍。并通过极富实际意义的例子,介绍高级的shell脚本。此外,还介绍了在图形桌面环境中使用shell脚本编程的内容。

第一部分Linux命令行 2

第1章 初识Linux shell 2

1.1什么是Linux 2

1.1.1深入探究Linux内核 3

1.1.2 GNU工具链 10

1.1.3 Linux桌面环境 11

1.2 Linux发行版 16

1.2.1核心Linux发行版 16

1.2.2专业Linux发行版 17

1.2.3 Linux LiveCD 17

1.3小结 19

第2章 走进shell 20

2.1终端模拟 20

2.1.1图形功能 21

2.1.2键盘 24

2.2 terminfo数据库 25

2.3 Linux控制台 28

2.4 xterm终端 29

2.4.1命令行参数 30

2.4.2 xterm主菜单 31

2.4.3 VT选项菜单 32

2.4.4 VT字体菜单 34

2.5 Konsole终端 36

2.5.1命令行参数 36

2.5.2标签式窗口会话 37

2.5.3配置文件 38

2.5.4菜单栏 39

2.6 GNOME Terminal 43

2.6.1命令行参数 43

2.6.2标签 43

2.6.3菜单栏 44

2.7小结 47

第3章 基本的bash shell命令 48

3.1启动shell 48

3.2 shell提示符 49

3.3 bash手册 51

3.4浏览文件系统 52

3.4.1 Linux文件系统 52

3.4.2遍历目录 54

3.5文件和目录列表 56

3.5.1基本列表功能 56

3.5.2修改输出信息 57

3.5.3完整的参数列表 58

3.5.4过滤输出列表 60

3.6处理文件 61

3.6.1创建文件 61

3.6.2复制文件 61

3.6.3链接文件 63

3.6.4重命名文件 65

3.6.5删除文件 65

3.7处理目录 67

3.7.1创建目录 67

3.7.2删除目录 67

3.8查看文件内容 68

3.8.1查看文件统计信息 68

3.8.2查看文件类型 69

3.8.3查看整个文件 69

3.8.4查看部分文件 72

3.9小结 73

第4章 更多的bash shell命令 75

4.1监测程序 75

4.1.1探查进程 75

4.1.2实时监测进程 82

4.1.3结束进程 84

4.2监测磁盘空间 85

4.2.1挂载存储媒体 86

4.2.2使用df命令 89

4.2.3使用du命令 89

4.3处理数据文件 90

4.3.1排序数据 91

4.3.2搜索数据 94

4.3.3压缩数据 96

4.3.4归档数据 99

4.4小结 100

第5章 使用Linux环境变量 101

5.1什么是环境变量 101

5.1.1全局环境变量 102

5.1.2局部环境变量 103

5.2设置环境变量 106

5.2.1设置局部环境变量 106

5.2.2设置全局环境变量 107

5.3删除环境变量 107

5.4默认shell环境变量 108

5.5设置PATH环境变量 111

5.6定位系统环境变量 112

5.6.1登录shell 112

5.6.2交互式shell 116

5.6.3非交互式shell 118

5.7可变数组 118

5.8使用命令别名 119

5.9小结 120

第6章理解Linux文件权限 122

6.1 Linux的安全性 122

6.1.1 /etc/passwd文件 122

6.1.2 /etc/shadow文件 124

6.1.3添加新用户 125

6.1.4删除用户 127

6.1.5修改用户 128

6.2使用Linux组 130

6.2.1 /etc/group文件 131

6.2.2创建新组 131

6.2.3修改组 132

6.3理解文件权限 133

6.3.1使用文件权限符 133

6.3.2默认文件权限 134

6.4改变安全性设置 136

6.4.1改变权限 136

6.4.2改变所属关系 137

6.5共享文件 138

6.6小结 139

第7章 管理文件系统 141

7.1探索Linux文件系统 141

7.1.1基本的Linux文件系统 141

7.1.2日志文件系统 142

7.1.3扩展的Linux日志文件系统 143

7.2操作文件系统 145

7.2.1创建分区 145

7.2.2创建文件系统 147

7.2.3如果出错了 149

7.3逻辑卷管理器 150

7.3.1逻辑卷管理布局 150

7.3.2 Linux中的LVM 151

7.3.3使用Linux LVM 153

7.4小结 157

第8章 安装软件程序 158

8.1包管理基础 158

8.2基于Debian的系统 159

8.2.1用aptitude管理软件包 159

8.2.2用aptitude安装软件包 161

8.2.3用aptitude更新软件 163

8.2.4用aptitude卸载软件 164

8.2.5 aptitude库 164

8.3基于Red Hat的系统 166

8.3.1列出已安装包 166

8.3.2用yum安装软件 167

8.3.3用yum更新软件 168

8.3.4用yum卸载软件 169

8.3.5处理损坏的包依赖关系 169

8.3.6 yum软件库 171

8.4从源码安装 172

8.5小结 174

第9章 使用编辑器 176

9.1 Vim编辑器 176

9.1.1 Vim基础 176

9.1.2编辑数据 178

9.1.3复制和粘贴 179

9.1.4查找和替换 180

9.2 Emacs编辑器 180

9.2.1在控制台上使用Emacs 180

9.2.2在X Window中使用Emacs 180

9.3 KDE系编辑器 186

9.3.1 KWrite编辑器 186

9.3.2 Kate编辑器 190

9.4 GNOME编辑器 192

9.4.1启动gedit 192

9.4.2基本的gedit功能 193

9.4.3设定偏好设置 194

9.5小结 196

第二部分shell脚本编程基础 200

第10章 构建基本脚本 200

10.1使用多个命令 200

10.2创建shell脚本文件 201

10.3显示消息 202

10.4使用变量 203

10.4.1环境变量 204

10.4.2用户变量 205

10.4.3反引号 206

10.5重定向输入和输出 207

10.5.1输出重定向 208

10.5.2输入重定向 208

10.6管道 209

10.7执行数学运算 212

10.7.1 expr命令 212

10.7.2使用方括号 214

10.7.3浮点解决方案 215

10.8退出脚本 218

10.8.1查看退出状态码 218

10.8.2 exit命令 219

10.9小结 221

第11章 使用结构化命令 222

11.1使用if-then语句 222

11.2 if-then-else语句 224

11.3嵌套i f 225

11.4 test命令 226

11.4.1数值比较 227

11.4.2字符串比较 228

11.4.3文件比较 232

11.5复合条件测试 239

11.6if-then的高级特性 240

11.6.1使用双尖括号 240

11.6.2使用双方括号 241

11.7 case命令 242

11.8小结 243

第12章 更多的结构化命令 245

12.1 for命令 245

12.1.1读取列表中的值 246

12.1.2读取列表中的复杂值 247

12.1.3从变量读取列表 248

12.1.4从命令读取值 249

12.1.5更改字段分隔符 250

12.1.6用通配符读取目录 251

12.2 C语言风格的for命令 253

12.2.1C语言的for命令 253

12.2.2使用多个变量 255

12.3 while命令 255

12.3.1 while的基本格式 255

12.3.2使用多个测试命令 256

12.4 until命令 258

12.5嵌套循环 259

12.6循环处理文件数据 261

12.7控制循环 262

12.7.1 break命令 262

12.7.2 continue命令 265

12.8处理循环的输出 267

12.9小结 269

第13章 处理用户输入 270

13.1命令行参数 270

13.1.1读取参数 270

13.1.2读取程序名 272

13.1.3测试参数 274

13.2特殊参数变量 274

13.2.1参数计数 274

13.2.2抓取所有的数据 276

13.3移动变量 277

13.4处理选项 278

13.4.1查找选项 279

13.4.2使用getopt命令 282

13.4.3使用更高级的getopts 284

13.5将选项标准化 286

13.6获得用户输入 287

13.6.1基本的读取 287

13.6.2超时 289

13.6.3隐藏方式读取 290

13.6.4从文件中读取 290

13.7小结 291

第14章 呈现数据 293

14.1理解输入和输出 293

14.1.1标准文件描述符 293

14.1.2重定向错误 295

14.2在脚本中重定向输出 297

14.2.1临时重定向 297

14.2.2永久重定向 298

14.3在脚本中重定向输入 299

14.4创建自己的重定向 299

14.4.1创建输出文件描述符 300

14.4.2重定向文件描述符 300

14.4.3创建输入文件描述符 301

14.4.4创建读写文件描述符 302

14.4.5关闭文件描述符 303

14.5列出打开的文件描述符 304

14.6阻止命令输出 305

14.7创建临时文件 306

14.7.1创建本地临时文件 306

14.7.2在/tmP目录创建临时文件 308

14.7.3创建临时目录 308

14.8记录消息 309

14.9小结 310

第15章 控制脚本 312

15.1处理信号 312

15.1.1重温 Linux信号 312

15.1.2产生信号 313

15.1.3捕捉信号 314

15.1.4捕捉脚本的退出 315

15.1.5移除捕捉 316

15.2以后台模式运行脚本 317

15.2.1后台运行脚本 317

15.2.2运行多个后台作业 318

15.2.3退出终端 319

15.3在非控制台下运行脚本 319

15.4作业控制 320

15.4.1查看作业 320

15.4.2重启停止的作业 322

15.5调整谦让度 323

15.5.1 nice命令 323

15.5.2 renice命令 324

15.6定时运行作业 324

15.6.1用at命令来计划执行作业 325

15.6.2计划定期执行脚本 328

15.7启动时运行 330

15.7.1开机时运行脚本 330

15.7.2在新shell中启动 332

15.8小结 333

第三部分 高级shell脚本编程 336

第16章 创建函数 336

16.1基本的脚本函数 336

16.1.1创建函数 337

16.1.2使用函数 337

16.2返回值 339

16.2.1默认退出状态码 339

16.2.2使用return命令 340

16.2.3使用函数输出 341

16.3在函数中使用变量 342

16.3.1向函数传递参数 342

16.3.2在函数中处理变量 344

16.4数组变量和函数 346

16.4.1向函数传数组参数 346

16.4.2从函数返回数组 348

16.5函数递归 349

16.6创建库 350

16.7在命令行上使用函数 351

16.7.1在命令行上创建函数 352

16.7.2在.bashrc文件中定义函数 352

16.8小结 354

第17章 图形化桌面上的脚本编程 355

17.1创建文本菜单 355

17.1.1创建菜单布局 356

17.1.2创建菜单函数 356

17.1.3添加菜单逻辑 357

17.1.4整合shell脚本菜单 358

17.1.5使用select命令 359

17.2使用窗口 360

17.2.1 dialog包 361

17.2.2 dialog选项 366

17.2.3在脚本中使用dialog命令 368

17.3使用图形 369

17.3.1 KDE环境 369

17.3.2 GNOME环境 372

17.4小结 376

第18章 初识sed和gawk 377

18.1文本处理 377

18.1.1sed编辑器 377

18.1.2 gawk程序 380

18.2 sed编辑器基础 385

18.2.1更多的替换选项 385

18.2.2使用地址 387

18.2.3删除行 389

18.2.4插入和附加文本 391

18.2.5修改行 392

18.2.6转换命令 393

18.2.7回顾打印 394

18.2.8用sed和文件一起工作 396

18.3小结 398

第19章 正则表达式 399

19.1什么是正则表达式 399

19.1.1定义 399

19.1.2正则表达式的类型 400

19.2定义BRE模式 401

19.2.1纯文本 401

19.2.2特殊字符 402

19.2.3锚字符 403

19.2.4点字符 405

19.2.5字符组 405

19.2.6排除字符组 407

19.2.7使用区间 408

19.2.8特殊字符组 409

19.2.9星号 409

19.3扩展正则表达式 411

19.3.1问号 411

19.3.2加号 412

19.3.3使用花括号 412

19.3.4管道符号 413

19.3.5聚合表达式 414

19.4实用中的正则表达式 414

19.4.1目录文件计数 415

19.4.2验证电话号码 416

19.4.3解析邮件地址 417

19.5小结 419

第20章sed进阶 420

20.1多行命令 420

20.1.1 next命令 421

20.1.2多行删除命令 424

20.1.3多行打印命令 424

20.2保持空间 425

20.3排除命令 426

20.4改变流 428

20.4.1跳转 429

20.4.2测试 430

20.5模式替代 431

20.5.1 and符号 431

20.5.2替换单独的单词 432

20.6在脚本中使用sed 433

20.6.1使用包装脚本 433

20.6.2重定向sed的输出 434

20.7创建sed实用工具 434

20.7.1加倍行间距 434

20.7.2对可能含有空白行的文件加倍行间距 435

20.7.3给文件中的行编号 436

20.7.4打印末尾行 437

20.7.5删除行 437

20.7.6删除HTML标签 439

20.8小结 441

第21章gawk进阶 442

21.1使用变量 442

21.1.1内建变量 442

21.1.2自定义变量 447

21.2处理数组 449

21.2.1定义数组变量 449

21.2.2遍历数组变量 450

21.2.3删除数组变量 451

21.3使用模式 451

21.3.1正则表达式 451

21.3.2 匹 配操作符 452

21.3.3数学表达式 452

21.4结构化命令 453

21.4.1 if语句 453

21.4.2 while语句 455

21.4.3 do-while语句 456

21.4.4 for语句 457

21.5格式化打印 457

21.6内建函数 460

21.6.1数学函数 460

21.6.2字符串函数 461

21.6.3时间函数 463

21.7自定义函数 463

21.7.1定义函数 463

21.7.2使用自定义函数 464

21.7.3创建函数库 464

21.8小结 465

第22章 使用其他shell 467

22.1什么是dash shell 467

22.2 dash shell的特性 468

22.2.1 dash命令行参数 468

22.2.2 dash环境变量 469

22.2.3 dash内建命令 471

22.3 dash脚本编程 472

22.3.1创建dash脚本 473

22.3.2不能使用的功能 473

22.4 zsh shell 477

22.5 zsh shell的组成 478

22.5.1 shell选项 478

22.5.2内建命令 480

22.6 zsh脚本编程 485

22.6.1数学运算 485

22.6.2结构化命令 487

22.6.3函数 487

22.7小结 489

第四部分 高级shell脚本编程主题 492

第23章 使用数据库 492

23.1 MySQL数据库 492

23.1.1安装MySQL 492

23.1.2 MySQL客户端界面 494

23.1.3创建MySQL数据库对象 498

23.2 PostgreSQL数据库 500

23.2.1安装PostgreSQL 501

23.2.2 PostgreSQL命令行界面 501

23.2.3创建PostgreSQL数据库 对象 503

23.3使用数据表 505

23.3.1创建数据表 505

23.3.2插入和删除数据 507

23.3.3查询数据 508

23.4在脚本中使用数据库 509

23.4.1连接到数据库 509

23.4.2向服务器发送命令 511

23.4.3格式化数据 514

23.5小结 516

第24章 使用Web 517

24.1 Lynx程序 517

24.1.1安装Lynx 518

24.1.2 lynx命令行 518

24.1.3 Lynx配置文件 523

24.1.4 Lynx环境变量 524

24.1.5从Lynx中抓取数据 524

24.2 cURL程序 527

24.2.1安装cURL 527

24.2.2探索cURL 527

24.3使用zsh处理网络 528

24.3.1 TCP模块 528

24.3.2客户端/服务器模式 529

24.3.3使用zsh进行C/S编程 530

244小结 533

第25章 使用E-mail 534

25.1 Linux E-mail基础 534

25.1.1Linux中的E-mail 534

25.1.2邮件传送代理 535

25.1.3邮件投递代理 536

25.1.4邮件用户代理 537

25.2建立服务器 540

25.2.1 sendmail 541

25.2.2 Postfiix 543

25.3使用Mailx发送消息 545

25.4 Mutt程序 548

25.4.1安装Mutt 548

25.4.2 Mutt命令行 548

25.4.3使用Mutt 549

25.5小结 551

第26章 编写脚本实用工具 552

26.1监测磁盘空间 552

26.1.1需要的功能 552

26.1.2创建脚本 555

26.1.3运行脚本 556

26.2进行备份 557

26.3管理用户账户 563

26.3.1需要的功能 563

26.3.2创建脚本 569

26.4小结 575

第27章shell脚本编程进阶 576

27.1监测系统统计数据 576

27.1.1系统快照报告 576

27.1.2系统统计数据报告 582

27.2问题跟踪数据库 589

27.2.1创建数据库 589

27.2.2记录问题 591

27.2.3更新问题 594

27.2.4查找问题 599

27.3小结 602

附录A bash命令快速指南 604

附录B sed和gawk快速指南 611