首页 > Linux命令行与shell脚本编程大全:第2版

Linux命令行与shell脚本编程大全:第2版

《Linux命令行与shell脚本编程大全:第2版》

基本信息

作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍]

译者: 武海峰

丛书名: 图灵程序设计丛书

出版社:人民邮电出版社

ISBN:9787115288899

上架时间:2012-8-15

出版日期:2012 年8月

开本:16开

页码:1

版次:1-1

所属分类: 计算机 > 操作系统 > Linux





更多关于 》》》《Linux命令行与shell脚本编程大全:第2版》

内容简介

书籍

计算机书籍

  《linux命令行与shell脚本编程大全:第2版》是一本关于linux 命令行与shell 脚本编程的全面教程。全书分为四部分:第一部分介绍linuxshell 命令行;第二部分介绍shell 脚本编程基础;第三部分深入探讨shell 脚本编程的高级内容;第四部分介绍如何在现实环境中使用shell 脚本。本书不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。

  《linux命令行与shell脚本编程大全:第2版》内容全面,语言简练,示例丰富,适合于linux 系统管理员及linux 爱好者阅读参考。

目录

《linux命令行与shell脚本编程大全:第2版》

第一部分 linux 命令行

第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 185

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脚本编程基础

第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 嵌套if 225

11.4 test命令 226

11.4.1 数值比较 227

11.4.2 字符串比较 228

11.4.3 文件比较 232

11.5 复合条件测试 239

11.6 if-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.1 c语言的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脚本编程

第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.1 sed编辑器 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脚本编程主题

第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

24.4 小结 533

第25章 使用e-mail 534

25.1 linux e-mail基础 534

25.1.1 linux中的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 postfix 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



本图书信息来源于:中国互动出版网

转载于:https://www.cnblogs.com/china-pub/archive/2012/08/17/2644146.html

更多相关:

  • nan 是not a number ,inf是无穷大 numpy.nan_to_num(x): 使用0代替数组x中的nan元素,使用有限的数字代替inf元素...

  • 简介 Simple Reference  基础CUDA示例,适用于初学者, 反映了运用CUDA和CUDA runtime APIs的一些基本概念.Utilities Reference  演示如何查询设备能力和衡量GPU/CPU 带宽的实例程序。Graphics Reference  图形化示例展现的是 CUDA, OpenGL,...

  • 在做开发的过程中难免需要给内核及下载的一些源码打补丁,所以我们先学习下Linux下使用如如何使用diff制作补丁以及如何使用patch打补丁。...

  • 我在调研ATS 4.2.3挂载SSD的过程中,遇到很多坑,特此详细记录我摸索的主要过程,以便大家以后避免之。 基本思路可以完全照搬参考文献[2][3] 下面的安装假定是以root用户身份进行的,Linux服务器已经安装好系统,磁盘已经做好分区。 首先需要认识我们的Linux服务器的硬件配置和软件情况 硬件配置: DELL...

  • 该博文整理一些在使用stl编程过程中遇到的小经验: 1.在多线程环境下面打印调试,如何使用cout及时刷新到屏幕上? 在C中我们经常这样使用: printf("Hello World "); fflush(stdout); 如果使用stl,我们可以这样使用: cout << "Hello World" << endl <...

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...

  • 在DOS窗口执行了一些列命令完成某项工作后,如果要查看都执行了那些命令,该如何办呢?(前提:DOS窗口未关闭的情况下)     一、方法一:使用↑↓箭头上下翻看执行过的命令,此方式适宜执行命令较少的情况; 二、方法二:使用快捷键; F7快捷键查看所有执行过的命令 F3:调出上一条执行过的命令,调出后直接回车即可执行; F...

  • 在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢?下面笔者分享几种在linux下用过的清屏方法。 1、clear命令、这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。 2、Ctrl+l(小写的L)、这是一个清屏的快捷键,这个是笔者...

  • LINUX下用CTRL+R快速搜索HISTORY历史命令,快速索引到之前使用过的命令行语句 前提是,搜索已经使用的命令,否则是查不出来结果的。 ctrl+r 用途:反向搜索执行过的命令。(reverse-i-search) 1、任何目录下按住ctrl + r 2、输入历史命令中的字符串 ,比如 输入shut 会检索...

  • 刚开始接触linux,总有些简单的问题不知道怎么搞定,先将目前汇总的解决方法叫做"linux入门-1",后续在使用过程中逐步总结。   1. 连接 ADSL : sudo pon dsl-provider 断开 ADSL: sudo poff 查看 ADSL 状态: plog 2. dpkg 命令 dpkg 是 Debia...

  • 文章目录NVME 和 AHCI 性能比较NVME-CLI nvme工具使用1. 安装2. 命令综述3. 基本命令演示4. NVME 固件设备升级...