• 当前位置: 主页 > Linux安装教程 > 环境部署 >

    Linux命令行与Shell脚本编程大全(第2版)

    时间:2019-06-12 03:05来源:网络整理 作者:Linux先生 举报 点击:
    ·亚马逊书店五星推荐 ·轻松全面掌握命令行和shell ·黑客进阶必读 目录 目 录 第一部分 Linux 命令行 第1章 初识Linux shell2 1.1 什么是Linux2 1.1.1 深入

    ·亚马逊书店五星推荐
    ·轻松全面掌握命令行和shell
    ·黑客进阶必读

    目录

    目  录

    第一部分 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






    相关文章

    saidmu

    有看过第一版的么?适不适合新手看?内容怎么样?

    saidmu  发表于 2012-09-18 15:40:47

    m1a0

    会出电子版的吗?

    m1a0  发表于 2012-11-22 10:42:40

    wufengseu

    还算优秀的书(第5次印刷)。
    虽然作者很细心,但有少部分语句翻译的很别扭,不像中文句子。
    发现的错误中明显的两个(提交到勘误里的功能已名存实亡了):
    P360 第三行 select ..."Display logged on users" 的后面, 需加一个反斜杠符号 \用于换行.
    P452 倒数第10行字段分隔符部分写错. 将awk CF: '$1 !~ /rich/ {print $1, $NF}' /etc/passwd
    修改为awk -F: '$1 !~ /rich/ {print $1, $NF}' /etc/passwd

    wufengseu  发表于 2014-07-14 11:14:40

    一起搭帐篷

    第33页与第35页插图相同,明显有一外插图错误。第33面插图应该是关于VT选项菜单的插图,请更正。
    刚看到35页,觉得这本书非常好,浅显易懂。

    一起搭帐篷  发表于 2013-07-11 09:06:42

    推荐内容