书籍详情

UNIX shell范例精解(第4版)

UNIX shell范例精解(第4版)

作者:(美)奎格莉(Quigley,E.) 著,李化,张国强 译

出版社:清华大学出版社

出版时间:2007-05-01

ISBN:9787302145899

定价:¥118.00

购买这本书可以去
内容简介
  在本书的再版中,Quigley对她的经典著作进行了全新的改版,增加了当前shell程序员所需的最新内容——使用bash进行Linux shell编程。.本书汇聚了Quigley 21年来的 shell编程教学经验。书中不仅展示了能帮助读者快速入门的大量精选范例,还系统地讲解了UNIX与GNU/Linux上的awk、sed及grep等内容。在Quigley的指导下,即使是shell初学者也可以学会UNIX/Linux上所有主流shell的编程知识,包括5种shell的交互式命令及脚本编程,从而领会作者的编程思路。本书可作为shell编程的入门教程,也是系统管理员、程序设计人员的必备参考。本版新增内容使用bash进行Linux shell编程shell编程的快速入门shell脚本的调试最新UNIX和GNU /Linux版本的awk、sed和grep命令系统管理员进行shell编程的相关知识,对关键的UNIX /Linux shell脚本的分析 全新内容shell编程基础知识——shell的概念、作用及工作原理为应用程序选择合适的shell近5万名UNIX /Linux系统管理员、开发人员以及高级用户在本书前几个版本的引导下,步入了shell编程专家的行列。因此,即使读者是shell编程方面的新手,也可以通过学习本书而成为这方面的专家。若读者已对shell比较精通,那么本书将成为您寻找可靠的解决方案及代码资源的实用参考。...
作者简介
  Ellie Quigley 著名的“Perl多媒体电脑教室”的创始人、杰出的讲师,以讲授Perl和UNIX shell编程课程而享誉硅谷。她的著作包括Perl by Example,Third Edition(Prentice Hall PTR,2001)、UNIX Shells by example和Linux Shells by Example(Prentice Hall PTR,2000)。在她的公司网站(www.ellieq.com)上还可以找到有关UNIX、Perl、C/C++、Java和系统管理的在线培训课程。
目录
第1章  UNIX/Linux shell简介    1
1.1  UNIX与Linux及其历史    1
1.1.1  UNIX简介    1
1.1.2  为什么选择Linux    2
1.2  shell的定义与功能    3
1.2.1  UNIX shell    4
1.2.2  Linux的shell    4
1.3  shell的历史    6
1.3.1  shell的作用    7
1.3.2  shell的职责    7
1.4  系统启动与登录shell    7
1.4.1  解析命令行    8
1.4.2  命令类型    8
1.5  进程与shell    10
1.5.1  哪些进程正在运行?    10
1.5.2  系统调用    11
1.5.3  创建进程    12
1.6  环境与继承    15
1.6.1  所有权    15
1.6.2  为文件创建掩码    15
1.6.3  修改权限与所有者    16
1.6.4  工作目录    18
1.6.5  变量    19
1.6.6  重定向与管道    20
1.6.7  shell和信号    25
1.7  在脚本中执行命令    26
第2章  shell编程快速入门    27
2.1  shell脚本简介    27
2.2  脚本实例:主要shell的比较    27
2.2.1  开始之前    27
2.2.2  示例说明    28
2.3  C shell与TC shell的语法和
     结构    28
2.4  Bourne shell的语法和结构    34
2.5  Korn shell结构    41
2.6  Bash shell结构    49
第3章  正则表达式与模式匹配    57
3.1  正则表达式    57
3.1.1  定义和示例    57
3.1.2  正则表达式元字符    58
3.2  组合正则表达式元字符    63
第4章  grep家族    69
4.1  grep命令    69
4.1.1  grep的含义    69
4.1.2  grep如何工作    70
4.1.3  元字符    70
4.1.4  grep的退出状态    72
4.2  使用正则表达式的grep实例    72
4.3  grep的选项    77
4.4  grep与管道    79
4.5  egrep(扩展的grep)    80
4.5.1  egrep示例    81
4.5.2  egrep回顾    83
4.6  fgrep(固定的grep或
快速的grep)    83
4.7  Linux与GNU grep    84
4.8  带正则表达式的GNU
    基本grep(grep -G)    87
4.9  grep –E或egrep
    (GNU扩展grep)    88
4.9.1  grep –E和egrep实例    89
4.9.2  grep变体的不规则形式    92
4.10  固定的grep(grep –F和fgrep)    95
4.11  递归的grep(rgrep,grep -R)    95
4.12  带选项的GNU grep    95
4.13  带选项的grep
(UNIX和GNU)    97
第5章  流编辑器sed    105
5.1  sed简介    105
5.2  sed的不同版本    105
5.3  sed的工作过程    106
5.4  正则表达式    106
5.5  定址    107
5.6  命令与选项    108
5.6.1  用sed修改文件    109
5.6.2  GNU sed的选项    109
5.7  报错信息和退出状态    110
5.8  元字符    110
5.9  sed范例    111
5.9.1  打印:p命令    112
5.9.2  删除:d命令    113
5.9.3  替换:s命令    114
5.9.4  指定行的范围:逗号    116
5.9.5  多重编辑:e命令    117
5.9.6  读文件:r命令    118
5.9.7  写文件:w命令    119
5.9.8  追加:a命令    119
5.9.9  插入:i命令    120
5.9.10  修改:c命令    121
5.9.11  获取下一行:n命令    121
5.9.12  转换:y命令    122
5.9.13  退出:q命令    122
5.9.14  暂存和取用:h命令
和g命令    123
5.9.15  暂存和互换:h命令
       和x命令    126
5.10  sed脚本编程    126
5.10.1  sed脚本范例    127
5.10.2  回顾    129
第6章  awk实用程序    131
6.1  什么是awk、nawk、gawk    131
6.1.1  awk简介    131
6.1.2  awk版本    131
6.2  awk的格式    132
6.2.1  从文件输入    132
6.2.2  从命令输入    133
6.3  awk工作原理    134
6.4  格式化输出    135
6.4.1  print函数    135
6.4.2  OFMT变量    136
6.4.3  printf函数    136
6.5  文件中的awk命令    139
6.6  记录与字段    140
6.6.1  记录    140
6.6.2  字段    141
6.6.3  字段分隔符    141
6.7  模式与操作    143
6.7.1  模式    143
6.7.2  操作    144
6.8  正则表达式    145
6.8.1  匹配整行    146
6.8.2  匹配操作符    146
6.9  脚本文件中的awk命令    148
6.10  复习    149
6.10.1  简单的模式匹配    149
6.10.2  简单的操作    150
6.10.3  模式与操作组合的
正则表达式    152
6.10.4  输入字段分隔符    154
6.10.5  编写awk脚本    156
6.11  比较表达式    157
6.11.1  关系运算符    158
6.11.2  条件表达式    159
6.11.3  算术运算    159
6.11.4  逻辑操作符和复合模式    160
6.11.5  范围模式    161
6.11.6  验证数据合法性    161
6.12  复习    162
6.12.1  相等性测试    163
6.12.2  关系运算符    164
6.12.3  逻辑运算符    165
6.12.4  逻辑非运算符    165
6.12.5  算术运算符    166
6.12.6  范围运算符    168
6.12.7  条件运算符    168
6.12.8  赋值运算符    169
6.13  变量    170
6.13.1  数值变量和字符串变量    170
6.13.2  用户自定义变量    171
6.13.3  BEGIN模式    174
6.13.4  END模式    175
6.14  重定向和管道    175
6.14.1  输出重定向    175
6.14.2  输入重定向(getline)    175
6.15  管道    177
6.16  回顾    179
6.16.1  递增和递减运算符    179
6.16.2  内置变量    180
6.16.3  BEGIN模式    183
6.16.4  END模式    184
6.16.5  包含BEGIN和END
       模式的awk脚本    185
6.16.6  printf函数    186
6.16.7  重定向与管道    187
6.16.8  打开和关闭管道    188
6.17  条件语句    190
6.17.1  if语句    190
6.17.2  if/else语句    190
6.17.3  if/else和else if语句    191
6.18  循环    192
6.18.1  while循环    192
6.18.2  for循环    193
6.18.3  循环控制    193
6.19  程序控制语句    194
6.19.1  next语句    194
6.19.2  exit语句    194
6.20  数组    194
6.20.1  关联数组的下标    195
6.20.2  处理命令行参数(nawk)    200
6.21  awk的内置函数    202
6.22  内置算术函数    205
6.22.1  整数函数    205
6.22.2  随机数发生器    206
6.23  用户自定义函数(nawk)    207
6.24  复习    208
6.25  杂项    213
6.25.1  固定字段    214
6.25.2  多行记录    216
6.25.3  生成格式信函    217
6.25.4  与shell交互    219
6.26  awk内置函数    221
6.26.1  字符串函数    221
6.26.2  gawk的时间函数    224
6.26.3  命令行参数    226
6.26.4  读输入(getline)    227
6.26.5  控制函数    228
6.26.6  用户自定义函数    229
6.26.7  awk/gawk命令行选项    229
第7章  交互式的Bourne shell    233
7.1  简介    233
7.2  环境    234
7.2.1  初始化文件    234
7.2.2  提示符    237
7.2.3  搜索路径    238
7.2.4  hash命令    238
7.2.5  dot命令    239
7.3  命令行    239
7.3.1  退出状态    240
7.3.2  含多条命令的命令行    240
7.3.3  命令的条件执行    241
7.3.4  在后台执行的命令    241
7.4  元字符(通配符)    242
7.5  文件名替换    242
7.5.1  星号    243
7.5.2  问号    243
7.5.3  方括号    244
7.5.4  转义元字符    244
7.6  变量    245
7.6.1  局部变量    245
7.6.2  设置局部变量    245
7.6.3  环境变量    247
7.6.4  列出已设置的变量    248
7.6.5  复位变量    249
7.6.6  打印变量的值:echo命令    250
7.6.7  变量扩展修饰符    251
7.6.8  位置参数    253
7.6.9  其他特殊变量    254
7.7  引用    255
7.7.1  反斜杠    256
7.7.2  单引号    256
7.7.3  双引号    257
7.8  命令替换    257
7.9  函数入门    258
7.9.1  定义函数    258
7.9.2  列出和复位函数    259
7.10  标准I/O和重定向    259
7.11  管道    264
7.12  here文档与重定向输入    265
第8章  Bourne shell编程    269
8.1  简介    269
8.2  读取用户输入    271
8.3  算术运算    272
8.3.1  整数运算与expr命令    273
8.3.2  浮点运算    273
8.4  位置参量和命令行参数    274
8.4.1  set命令与位置参量    275
8.4.2  $*和$@有何区别    277
8.5  条件结构和流控制    278
8.5.1  测试退出状态:test命令    279
8.5.2  if命令    280
8.5.3  exit命令和?变量    282
8.5.4  检查空值    283
8.5.5  if/else命令    284
8.5.6  if/elif/else命令    285
8.5.7  文件测试    287
8.5.8  null命令    287
8.5.9  case命令    289
8.5.10  用here文档和case
       命令生成菜单    290
8.6  循环命令    291
8.6.1  for命令    291
8.6.2  词表中的$*和$@变量    293
8.6.3  while命令    295
8.6.4  until命令    297
8.6.5  循环控制命令    298
8.6.6  嵌套循环和循环控制    302
8.6.7  I/O重定向和子shell    304
8.6.8  在后台执行循环    306
8.6.9  exec命令和循环    307
8.6.10  IFS和循环    308
8.7  函数    309
8.7.1  清除函数    310
8.7.2  函数的参数和返回值    310
8.7.3  函数与dot命令    312
8.8  捕获信号    314
8.8.1  重置信号    315
8.8.2  忽略信号    316
8.8.3  列出陷阱    316
8.8.4  函数中的信号陷阱    317
8.8.5  调试    318
8.9  命令行    319
8.9.1  用getopts处理命令行选项    319
8.9.2  eval命令和命令行解析    324
8.10  shell的调用选项    325
8.10.1  set命令和选项    326
8.10.2  shell的内置命令    326
第9章  交互式C shell与TC shell    335
9.1  简介    335
9.2  环境    336
9.2.1  初始化文件    336
9.2.2  搜索路径    338
9.2.3  rehash命令    339
9.2.4  hashstat命令    339
9.2.5  source命令    339
9.2.6  shell提示符    340
9.3  C/TC shell命令行    341
9.3.1  退出状态    341
9.3.2  命令编组    341
9.3.3  命令的条件执行    342
9.3.4  后台命令    343
9.3.5  命令行历史    343
9.4  别名    347
9.4.1  列出别名    347
9.4.2  创建别名    348
9.4.3  删除别名    348
9.4.4  别名环    349
9.5  操作目录栈    349
9.6  作业控制    351
9.6.1  &号和后台作业    351
9.6.2  暂停键序列和后台作业    352
9.6.3  jobs命令    352
9.6.4  前台和后台命令    353
9.7  shell元字符    353
9.8  文件名替换    354
9.8.1  星号    355
9.8.2  问号    355
9.8.3  方括号    356
9.8.4  花括号    356
9.8.5  转义元字符    357
9.8.6  ~号扩展    357
9.8.7  文件名补全:变量filec    358
9.8.8  用noglob关闭元字符    358
9.9  重定向与管道    359
9.9.1  重定向输入    359
9.9.2  here文档    360
9.9.3  重定向输出    361
9.9.4  将输出追加到已有文件    362
9.9.5  重定向输出和报错信息    362
9.9.6  分离输出与报错信息    363
9.9.7  变量noclobber    364
9.10  变量    365
9.10.1  花括号    366
9.10.2  局部变量    366
9.10.3  环境变量    369
9.10.4  数组    371
9.10.5  专用变量    373
9.11  命令替换    375
9.12  引用    377
9.12.1  反斜杠    378
9.12.2  单引号    378
9.12.3  双引号    379
9.12.4  引用的游戏    379
9.13  交互式TC shell的新特性    381
9.13.1  tcsh的版本    382
9.13.2  shell提示符    382
9.14  TC shell命令行    385
9.14.1  命令行与退出状态    385
9.14.2  TC shell命令行历史    386
9.14.3  内置命令行编辑器    393
9.15   TC shell命令、文件名
      与变量补齐    399
9.15.1  autolist变量    399
9.15.2  fignore变量    400
9.15.3  shell变量complete    401
9.15.4  编程补全    401
9.16  TC shell拼写校正    405
9.17  TC shell别名    406
9.17.1  列出别名    406
9.17.2  创建别名    407
9.17.3  删除别名    408
9.17.4  别名循环    408
9.17.5  特殊的tcsh别名    408
9.18  TC shell作业控制    409
9.18.1  jobs命令与listjobs变量    409
9.18.2  前台与后台命令    410
9.18.3  作业调度    411
9.19  在TC shell中显示变量的值    412
9.19.1  echo命令    412
9.19.2  printf命令    413
9.19.3  花括号与变量    414
9.19.4  大小写转换    415
9.20  TC shell内置命令    416
9.20.1  特殊的内置T/TC
       shell变量    424
9.20.2  TC shell命令行开关    429
第10章  C shell与TC shell编程    433
10.1  简介    433
10.2  读取用户输入    435
10.2.1  变量$<    435
10.2.2  根据输入的字符串
       创建词表    436
10.3  算术运算    436
10.3.1  算术运算符    436
10.3.2  浮点算术运算    438
10.4  脚本调试    438
10.5  命令行参数    440
10.6  条件结构与流控制    442
10.6.1  测试表达式    442
10.6.2  优先级和组合规则    443
10.6.3  if语句    444
10.6.4  测试未设置或值为
空的变量    445
10.6.5  if/else语句    445
10.6.6  逻辑表达式    446
10.6.7  if语句和单条命令    447
10.6.8  if/else if语句    447
10.6.9  退出状态和变量status    448
10.6.10  从shell脚本中退出    448
10.6.11  使用别名创建
错误信息    449
10.6.12  在脚本中使用变量
status    450
10.6.13  在条件结构中对
        命令求值    450
10.6.14  goto命令    451
10.6.15  C shell文件测试    452
10.6.16  test命令与文件测试    453
10.6.17  条件结构的嵌套    454
10.6.18  TC shell文件测试    455
10.6.19  内置命令filetest(tcsh)    456
10.6.20  新增的TC shell文件
        测试操作    457
10.6.21  switch命令    459
10.6.22  here文档和菜单    461
10.7  循环命令    463
10.7.1  foreach循环    463
10.7.2  while循环    465
10.7.3  repeat命令    466
10.7.4  循环控制命令    466
10.8  中断处理    470
10.9  setuid脚本    471
10.10  保存脚本    471
10.11  内置命令    472
第11章  交互式Korn shell    481
11.1  简介    481
11.2  环境    482
11.2.1  初始化文件    482
11.2.2  提示符    486
11.2.3  搜索路径    487
11.2.4  句点命令    487
11.3  命令行    488
11.3.1  命令执行的次序    488
11.3.2  退出状态    489
11.3.3  含多条命令的命令行
和命令组    490
11.3.4  命令的条件执行    490
11.3.5  后台执行的命令    490
11.3.6  命令行历史    491
11.3.7  命令行编辑    494
11.4  文件名扩展    497
11.5  别名    497
11.5.1  别名列表    498
11.5.2  创建别名    499
11.5.3  删除别名    499
11.5.4  别名定位    499
11.6  作业控制    500
11.7  元字符    501
11.8  文件名替换(通配符)    502
11.8.1  星号    503
11.8.2  问号    503
11.8.3  方括号    504
11.8.4  转义元字符    505
11.8.5  代字符号和连字符扩展    505
11.8.6  新增的ksh元字符    506
11.8.7  noglob变量    507
11.9  变量    507
11.9.1  局部变量    507
11.9.2  环境变量    509
11.9.3  列出已设置的变量    512
11.9.4  复位变量    514
11.9.5  显示变量的值    514
11.9.6  转义序列    516
11.9.7  变量表达式和扩
       展修饰符    517
11.9.8  变量子字符串扩展    519
11.9.9  变量属性:typeset命令    520
11.9.10  位置参数    521
11.9.11  其他特殊变量    523
11.10  引用    524
11.10.1  反斜杠    524
11.10.2  单引号    524
11.10.3  双引号    525
11.11  命令替换    525
11.12  函数    527
11.12.1  函数的定义    527
11.12.2  函数和别名    528
11.12.3  列出函数    529
11.12.4  取消函数的定义    529
11.13  标准I/O和重定向    530
11.13.1  exec命令和重定向    531
11.13.2  重定向与子shell    532
11.14  管道    533
11.15  time命令    535
11.15.1  time命令    535
11.15.2  TMOUT变量    536
第12章  Korn shell编程    537
12.1  简介    537
12.2  读取用户输入    539
12.2.1  read命令和文件描述符    541
12.2.2  从整个文件中读取数据    542
12.3  算术运算    542
12.3.1  整型数值    543
12.3.2  使用不同的基数    544
12.3.3  列出所有整型变量    544
12.3.4  算术运算符和let命令    545
12.4  位置参量和命令行参数    547
12.5  分支结构和流程控制    549
12.5.1  测试退出状态和$?变量    550
12.5.2  老的test命令    551
12.5.3  新的test命令    552
12.5.4  带有二元操作符的
文件测试    553
12.5.5  逻辑操作符    553
12.5.6  文件测试    554
12.5.7  if命令    555
12.5.8  使用老式风格的
       Bourne test    556
12.5.9  使用新式风格的
Korn test    557
12.5.10  使用旧式风格的带数字
        表达式的Bourne test    557
12.5.11  let命令和数字测试    557
12.5.12  if/else命令    558
12.5.13  if/elif/else命令    559
12.5.14  exit命令    560
12.5.15  null命令    561
12.5.16  case命令    562
12.6  循环命令    564
12.6.1  for命令    564
12.6.2  词表中的变量$*和$@    566
12.6.3  while 命令    567
12.6.4  until命令    569
12.6.5  select命令和菜单    570
12.6.6  循环控制命令    573
12.6.7  嵌套循环和循环控制    576
12.6.8  I/O 重定向和循环    577
12.6.9  在后台运行循环    578
12.6.10  exec命令和循环    579
12.6.11  IFS和循环    580
12.7  数组    581
12.8  函数    583
12.8.1  定义函数    583
12.8.2  列出和取消函数定义    584
12.8.3  局部变量和返回值    584
12.8.4  导出函数    586
12.8.5  typeset命令和函数选项    587
12.9  trap命令    588
12.9.1  伪信号    589
12.9.2  复位信号    589
12.9.3  忽略信号    590
12.9.4  列出信号    590
12.9.5  陷入和函数    592
12.10  协作进程    593
12.11  调试    596
12.12  命令行    598
12.13  安全性    603
12.13.1  特权脚本    603
12.13.2  受限shell    603
12.14  内置命令    603
12.15  Korn shell调用参数    607
第13章  交互式bash shell    619
13.1  简介    619
13.1.1  bash版本    619
13.1.2  启动    620
13.2  环境    621
13.2.1  初始化文件    621
13.2.2  用内置的set和shopt
       命令设置bash选项    629
13.2.3  提示符    632
13.2.4  搜索路径    634
13.2.5  hash命令    634
13.2.6  source或dot命令    635
13.3  命令行    636
13.3.1  处理命令的顺序    636
13.3.2  内置命令和help命令    637
13.3.3  改变命令行处理的顺序    637
13.3.4  退出状态    638
13.3.5  含多条命令的命令行    639
13.3.6  命令编组    640
13.3.7  命令的条件执行    640
13.3.8  在后台执行的命令    640
13.4  作业控制    641
13.5  命令行快捷方式    643
13.5.1  命令和文件名补全    643
13.5.2  历史    644
13.5.3  从历史文件访问命令    644
13.5.4  命令行编辑    650
13.6  别名    654
13.6.1  列出别名    654
13.6.2  创建别名    654
13.6.3  删除别名    655
13.7  操作目录栈    655
13.7.1  内置命令dirs    655
13.7.2  pushd命令和popd命令    655
13.8  元字符(通配符)    657
13.9  文件名替换(globbing)    657
13.9.1  星号    658
13.9.2  问号    658
13.9.3  方括号    659
13.9.4  花括号    659
13.9.5  转义元字符    660
13.9.6  代字符号和连字符扩展    661
13.9.7  控制通配符(globbing)    661
13.9.8  扩展的文件名globbing
       (bash 2.x)    662
13.10  变量    663
13.10.1  变量类型    663
13.10.2  命名惯例    663
13.10.3  内置命令declare    664
13.10.4  局部变量和作用域    664
13.10.5  环境变量    666
13.10.6  复位变量    671
13.10.7  显示变量值    671
13.10.8  变量扩展修饰符    673
13.10.9  子串的变量扩展    676
13.10.10  位置参量    678
13.10.11  其他特殊变量    679
13.11  引用    680
13.11.1  反斜杠    680
13.11.2  单引号    681
13.11.3  双引号    682
13.12  命令替换    682
13.13  算术扩展    685
13.14  扩展顺序    685
13.15  数组    685
13.16  函数    687
13.16.1  定义函数    688
13.16.2  列出和清除函数    690
13.17  标准I/O和重定向    690
13.18  管道    694
13.19  shell调用选项    697
13.19.1  set命令和选项    697
13.19.2  shopt命令和选项    699
13.20  shell内置命令    700
第14章  bash shell编程    705
14.1  简介    705
14.2  读取用户输入    707
14.2.1  变量    707
14.2.2  read命令    707
14.3  算术运算    710
14.3.1  整数运算(declare
       和let命令)    710
14.3.2  浮点数运算    712
14.4  位置参量和命令行参数    712
14.4.1  位置参量    712
14.4.2  set命令与位置参量    714
14.5  条件结构和流程控制    717
14.5.1  退出状态    717
14.5.2  内置命令test与let    717
14.5.3  if命令    722
14.5.4  if/else命令    726
14.5.5  if/elif/else命令    727
14.5.6  文件测试    729
14.5.7  null命令    731
14.5.8  case命令    733
14.6  循环命令    735
14.6.1  for命令    735
14.6.2  词表中的$*和@变量    737
14.6.3  while命令    738
14.6.4  until命令    741
14.6.5  select命令和菜单    742
14.6.6  循环控制命令    746
14.6.7  I/O重定向与子shell    752
14.6.8  在后台执行循环    754
14.6.9  IFS和循环    754
14.7  函数    755
14.7.1  清除函数    756
14.7.2  导出函数    756
14.7.3  函数的参数和返回值    756
14.7.4  函数与source
(或dot)命令    759
14.8  捕获信号    762
14.8.1  重置信号    763
14.8.2  忽略信号    764
14.8.3  列出陷阱    764
14.8.4  函数中的信号陷阱    765
14.9  调试    766
14.10  命令行    768
14.10.1  用getopts处理命令
        行选项    768
14.10.2  eval命令和命令行
        解析    773
14.11  bash的选项    774
14.11.1  shell调用选项    774
14.11.2  set命令及其选项    775
14.11.3  shopt命令及其选项    776
14.12  shell的内置命令    778
14.13  bash shell的习题    780
第15章  调试shell脚本    787
15.1  简介    787
15.2  风格问题    787
15.3  错误类型    788
15.3.1  运行时错误    788
15.3.2  命名惯例    788
15.3.3  参数不足    789
15.3.4  路径问题    790
15.3.5  shbang行    791
15.3.6  别名问题    792
15.4  可能导致语法错误的原因    793
15.4.1  未定义变量与误写变量    793
15.4.2  未完成的编程语句    795
15.4.3  5种shell中常见的
       错误信息    806
15.4.4  逻辑错误与健壮性    814
15.5  使用shell选项与set命令
     进行跟踪    821
15.5.1  调试Bourne shell脚本    821
15.5.2  调试C/TC shell脚本    822
15.5.3  调试Korn shell脚本    825
15.5.4  调试bash脚本    827
15.6  小结    830
第16章  系统管理员与shell    831
16.1  简介    831
16.2  超级用户    831
16.3  使用su命令变为超级用户    832
16.3.1  以根用户身份运行脚本    834










16.3.2  以root身份运行的
       脚本(setuid程序)    835
16.4  引导脚本    837
16.4.1  相关术语    837
16.4.2  一个引导脚本的例子
            —— cron工具    841
16.4.3  编写一个可移植的脚本    845
16.4.4  用户指定初始化文件    848
16.4.5  系统范围内的初始化
       文件    849
16.5  小结    855
附录A  常用的UNIX/Linux实用程序    857
附录B  各种shell的比较    899



猜您喜欢

读书导航