实战Linux Shell编程与服务器管理

实战Linux Shell编程与服务器管理
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2010-03
版次: 1
ISBN: 9787121103285
定价: 59.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 533页
正文语种: 简体中文
44人买过
  •   操作系统Shell编程一直是系统管理员必备高级技能之一。主机管理的上乘之道,就在于尽量让计算机去完成所有的琐事。要达到这个境界,管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,笔者拥有丰富的主机管理实务经验,以及多年的教学经验,能引领读者轻松跨越BashShell程序设计的门槛,摆脱菜鸟劳碌的命运,达到轻松管理,主机不出包的境界。
      本书完整涵盖Bash3.x的各项功能,并介绍最新Bash4.0的重要功能;由简入繁、循序渐进,建立扎实的BashShell程序设计基础;各章提供许多范例,充分展示BashShell程序设计的技巧;带领读者学习如何设计自动化程序,轻松解决问题,增进工作效率;还包含许多管理实务的技巧,可快速提升读者主机管理的能力。
      本书适合系统管理员、网络管理员、架构师及普通学习者参考学习。
      主机管理的上乘之道,就在于尽量让电脑去完成所有的琐事。要达到这个境界,管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,卧龙小三拥有丰富的主机管理实务经验,以及多年的教学经验,相信这本《实战LinuxShell编程与服务器管理》必能引领读者轻松跨越BashShell程序设计的门槛,摆脱菜鸟劳碌的命运,达到轻松管理,主机不出包的境界。
      ■完整涵盖Bash3.x的各项功能,并介绍最新Bash4.0的重要功能。
      ■由简入繁、循序渐进,建立扎实的BashShell程序设计基础。
      ■各章提供许多范例,充分展示BashShell程序设计的技巧。
      ■带领读者学习如何设计自动化程序,轻松解决问题,增进工作效率。
      ■还包含许多管理实务的技巧,可快速提升读者主机管理的能力。 Chapter1Shell简介
    1.1Shell是什么2
    1.2Shell的历史简介4
    1.3BashShell的功能5
    1.4第一个BashShell程序:“哈啰!BashShell!”6
    1.5第一个有用的BashShell7

    Chapter2布署BashShell的环境
    2.1在Linux平台布署BashShell的环境10
    2.2升级B2D的Bash版本10
    2.3自行编译最新版的Bash11
    2.4切换使用新版的BashShell13
    chsh的用法13
    2.5在FreeBSD平台布署BashShell的环境15
    2.6在OpenBSD平台布署BashShell的环境16
    2.7在Windows平台布署BashShell的环境18

    Chapter3基础概念介绍
    3.1登录、注销22
    登录主机22
    注销主机、结束终端程序23
    3.2文件、目录23
    文件23
    目录26
    3.3通配符与转义字符30
    通配符30
    转义字符31
    3.4字符集合33
    3.5括号扩展34
    3.6系统默认开启的文件35
    3.7标准输入/输出转向35
    转向输出36
    转向附加36
    转向输入37
    转向输入和转向输出合用37
    利用转向输出做简易编辑38
    3.8管道38
    3.9前台工作、后台工作40

    Chapter4BashShell程序的结构
    4.1Shell程序的组成42
    4.2设定执行权限44
    4.3执行BashScript的方法44
    4.4BashScript排错的方法45
    4.5BashScript执行的原理47
    loginShell47
    4.6BashShell的启动配置文件50
    Bash不同的运行模式50

    Chapter5基本操作介绍
    5.1内置命令56
    5.2命令行程序71
    5.3执行多个命令的方法88
    5.4记录命令的执行过程90
    5.5命令行编辑的方法91
    5.6Bash分析命令行的方式98

    Chapter6变量与字符串操作
    6.1变量是什么102
    6.2变量的命名103
    6.3设定变量104
    6.4取得变量值105
    6.5取消与清空变量109
    6.6变量和引号110
    6.7变量的有效范围112
    6.8环境变量113
    输出变量113
    取消环境变量值115
    6.9Bash的内置变量115
    6.10调整变量的属性125
    只读变量:使用readonly命令125
    只读变量:使用declare命令126
    调整变量的属性127
    6.11别名128
    建立别名128
    替换别名129
    取消别名130
    6.12自定义环境130
    以一般账号的角色工作时130
    以系统管理员的角色工作时133
    6.13数组133
    数组的用法134
    取出数组所有的元素135
    取得数组元素的个数135
    取消数组或数组元素136
    6.14HereDocument136
    用HereDocument设定变量136
    控制HereDocument的格式138
    利用HereDocument做多行批注139
    利用HereDocument,打包C(或其他程序语言)的原始码140

    Chapter7高级变量
    7.1变量扩展:测试存在性及空值144
    “变量存在”的定义144
    测试变量“存在与否”的基本用法145
    测试变量“不存在”或其值为空:“传回”一个默认值146
    测试变量“不存在”或其值为空:给变量设一个默认值148
    测试变量是否“不存在”或其值为空:提示错误信息149
    测试变量的“存在性”151
    7.2变量扩展:取字符串切片、字符串长度152
    取字符串切片152
    计算字符串长度155
    7.3变量扩展:对比样式156
    由字符串前面对比,删除相符者156
    由字符串后面对比,删除相符者158
    取代或删除部分字符串159
    把对比符合的字符串删除160
    要求样式在句首或句尾160
    7.4变量扩展:取变量名称列表、数组索引列表162
    取变量名称列表162
    取数组索引列表162
    7.5命令替换163
    7.6算术扩展165

    Chapter8算术运算
    8.1简介168
    8.2算术扩展169
    8.3使用外部程序expr做算术运算174
    8.4使用$[]做算术运算177
    8.5使用内置命令declare、let做算术运算178
    declare的用法178
    let的用法179

    Chapter9流程控制
    9.1命令的结束状态182
    9.2if条件判断183
    简易的if语法:if-then-else183
    if的完整语法184
    9.3条件测试的写法187
    9.4条件判断式的真假值195
    关于文件属性的判断式195
    关于字符串的条件判断式197
    关于算式的条件判断式199
    关于Bash选项的条件判断式200
    9.5case条件判断200
    case的语法200
    高级样式202
    9.6for循环204
    for的语法204
    for无穷循环207
    9.7while循环207
    while的语法207
    使用while循环,读取文件内容209
    while无穷循环210
    9.8until循环211
    until的语法211
    until无穷循环212
    9.9select命令212
    9.10break和continue214
    break命令214
    continue命令216
    9.11综合运用216

    Chapter10函数
    10.1函数的用法220
    函数的语法220
    函数的结束状态222
    10.2函数与变量的作用范围224
    函数的作用范围224
    变量的作用范围225
    10.3位置参数226
    传递参数226
    命令行的位置参数229
    移动位置参数229
    指定位置参数值230
    取用命令行的选项和参数233
    10.4建立函数库235
    10.5递归函数237
    10.6实例应用238

    Chapter11转向
    11.1文件代码244
    11.2操作文件244
    开启文件244
    关闭文件245
    复制文件代码,建立文件连接245
    11.3转向的用法247
    转向输入247
    转向输出248
    转向附加250
    标准错误伴随标准输出做转向250
    HereDocument转向251

    Chapter12trap——陷阱触发
    12.1信号(signal)254
    进程编号PID254
    信号列表255
    传送信号的方法256
    常用的信号257
    12.2trap的运用260
    trap的语法1260
    trap的语法2261
    trap的语法3261
    trap的语法4262

    Chapter13sed和awk入门
    13.1正则表达式264
    何谓正则表达式264
    13.2sed的用法266
    实例应用268
    13.3awk的用法271
    实例应用272

    Chapter14进程管理和工作控制
    14.1进程管理276
    ps命令276
    top命令281
    htop命令283
    传送信号284
    调整进程的优先级284
    nice命令285
    renice命令286
    PRI和NI287
    14.2工作控制287
    以实例说明工作控制287
    常用的工作控制命令290
    14.3进程替换292

    Chapter15历史指令
    15.1历史指令的功能296
    history命令297
    fc命令298
    15.2历史指令扩展298

    Chapter16使用ShellScript撰写文字和图形接口程序
    16.1使用dialog撰写文本接口程序306
    是或否对话框(yesno)309
    多选一对话框(radiolist)310
    选单对话框(menu)312
    单行输入对话框(inputbox)314
    输入密码对话框(passwordbox)315
    显示进度对话框(gauge)317
    核查列表对话框(checklist)320
    文件对话框(textbox)321
    信息对话框(infobox)321
    调整时间对话框(timebox)322
    倒数计时对话框(pause)322
    选择文本区对话框(fselect)322
    16.2使用xdialog撰写图形接口程序323
    显示信息(msgbox)323
    多选一对话框(radiolist)324
    单行输入对话框(inputbox)325
    双行输入对话框(2inputsbox)326
    三行输入对话框(3inputsbox)328
    下拉列表对话框(combobox)329
    重设大小范围的对话框(rangebox)329
    两个滚动条的对话框330
    3个滚动条的对话框330
    spinbox对话框331
    编辑对话框(editbox)331

    Chapter17文件操作
    17.1取得目录内容:文件列表334
    利用ls取得目录内容334
    17.2判断文件是否存在336
    17.3建立文件338
    建立一般文件338
    建立目录340
    建立区块设备文件341
    建立字符设备文件343
    建立FIFO文件343
    建立Socket文件345
    建立符号链接文件345
    17.4取得文件的属性346
    17.5对比文件的差异352
    diff的其他用法355
    17.6搜寻文件内容358
    17.7建立临时文件361
    17.8复制文件363
    17.9大、小写文件名互换366
    17.10转换编码371
    转换编码的工具372
    大量转换编码373

    Chapter18主机系统管理
    18.1账号管理376
    18.2DNS自动产生器389
    18.3DHCP自动产生器402
    18.4检测主机存在407

    Chapter19Bash在TCP/IP方面的运用
    19.1Bash网络转向416
    wget.sh程序说明418
    Echo服务器419
    19.2自动登录FTP421
    19.3自动登录SSH424

    Chapter20主机安全管理
    20.1收集主机信息428
    列出主机IP428
    找出主机名428
    列出核心信息430
    列出内存使用情况430
    列出磁盘种类432
    列出磁盘容量433
    列出磁盘用量435
    列出主机系统平均负载437
    列出系统中的隐藏文件/有特殊权限的文件438
    列出占用磁盘空间较多的目录440
    20.2主机服务信道441
    基本概念441
    通信状态443
    管理主机服务信道444
    20.3限制连接来源446
    使用TCPWrapper446
    自动建立hosts.allow和hosts.deny449
    20.4限制连接来源:使用iptables452
    关于Netfilter452
    关于iptables452
    iptables的语法453
    iptables的用例454
    自动建立iptables配置文件455
    20.5文件完整性审核465
    关于checksum465
    使用md5sum466
    使用sha1sum466
    使用Shell自制文件完整性的审核工具467
    20.6邮件通知470
    邮件方法470
    监测分区磁盘空间使用量471
    安排邮件内容的格式475
    使用BashShell邮件和附件478
    二进制文件编码/译码的方法479
    邮寄附件480

    Chapter21备份
    21.1使用tar做备份488
    基本用法489
    使用tar做完整备份492
    完整备份和差异性备份493
    使用tar进行差异性备份494
    还原备份文件的方法494
    21.2使用磁带备份495
    操作磁带的方法495
    建立常用函数501
    21.3使用cpio做备份502
    关于cpio502
    基本操作法503
    使用cpio备份到磁带504
    使用cpio备份到远程的主机504
    21.4使用dump/restore做备份/恢复505
    关于dump和restore505
    /etc/fstab和dump的关系505
    dump和文件属性505
    dump的基本操作506
    备份至磁带509
    21.5使用cp、dd做备份509
    使用cp509
    使用dd510
    21.6使用光盘做备份513
    21.7使用rsync做备份514
    关于rsync514
    设定rsyncserver515
    设定rsyncclient517
    安全性519
    rsync设定产生器520
    附录Bash4新功能
  • 内容简介:
      操作系统Shell编程一直是系统管理员必备高级技能之一。主机管理的上乘之道,就在于尽量让计算机去完成所有的琐事。要达到这个境界,管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,笔者拥有丰富的主机管理实务经验,以及多年的教学经验,能引领读者轻松跨越BashShell程序设计的门槛,摆脱菜鸟劳碌的命运,达到轻松管理,主机不出包的境界。
      本书完整涵盖Bash3.x的各项功能,并介绍最新Bash4.0的重要功能;由简入繁、循序渐进,建立扎实的BashShell程序设计基础;各章提供许多范例,充分展示BashShell程序设计的技巧;带领读者学习如何设计自动化程序,轻松解决问题,增进工作效率;还包含许多管理实务的技巧,可快速提升读者主机管理的能力。
      本书适合系统管理员、网络管理员、架构师及普通学习者参考学习。
      主机管理的上乘之道,就在于尽量让电脑去完成所有的琐事。要达到这个境界,管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,卧龙小三拥有丰富的主机管理实务经验,以及多年的教学经验,相信这本《实战LinuxShell编程与服务器管理》必能引领读者轻松跨越BashShell程序设计的门槛,摆脱菜鸟劳碌的命运,达到轻松管理,主机不出包的境界。
      ■完整涵盖Bash3.x的各项功能,并介绍最新Bash4.0的重要功能。
      ■由简入繁、循序渐进,建立扎实的BashShell程序设计基础。
      ■各章提供许多范例,充分展示BashShell程序设计的技巧。
      ■带领读者学习如何设计自动化程序,轻松解决问题,增进工作效率。
      ■还包含许多管理实务的技巧,可快速提升读者主机管理的能力。
  • 目录:
    Chapter1Shell简介
    1.1Shell是什么2
    1.2Shell的历史简介4
    1.3BashShell的功能5
    1.4第一个BashShell程序:“哈啰!BashShell!”6
    1.5第一个有用的BashShell7

    Chapter2布署BashShell的环境
    2.1在Linux平台布署BashShell的环境10
    2.2升级B2D的Bash版本10
    2.3自行编译最新版的Bash11
    2.4切换使用新版的BashShell13
    chsh的用法13
    2.5在FreeBSD平台布署BashShell的环境15
    2.6在OpenBSD平台布署BashShell的环境16
    2.7在Windows平台布署BashShell的环境18

    Chapter3基础概念介绍
    3.1登录、注销22
    登录主机22
    注销主机、结束终端程序23
    3.2文件、目录23
    文件23
    目录26
    3.3通配符与转义字符30
    通配符30
    转义字符31
    3.4字符集合33
    3.5括号扩展34
    3.6系统默认开启的文件35
    3.7标准输入/输出转向35
    转向输出36
    转向附加36
    转向输入37
    转向输入和转向输出合用37
    利用转向输出做简易编辑38
    3.8管道38
    3.9前台工作、后台工作40

    Chapter4BashShell程序的结构
    4.1Shell程序的组成42
    4.2设定执行权限44
    4.3执行BashScript的方法44
    4.4BashScript排错的方法45
    4.5BashScript执行的原理47
    loginShell47
    4.6BashShell的启动配置文件50
    Bash不同的运行模式50

    Chapter5基本操作介绍
    5.1内置命令56
    5.2命令行程序71
    5.3执行多个命令的方法88
    5.4记录命令的执行过程90
    5.5命令行编辑的方法91
    5.6Bash分析命令行的方式98

    Chapter6变量与字符串操作
    6.1变量是什么102
    6.2变量的命名103
    6.3设定变量104
    6.4取得变量值105
    6.5取消与清空变量109
    6.6变量和引号110
    6.7变量的有效范围112
    6.8环境变量113
    输出变量113
    取消环境变量值115
    6.9Bash的内置变量115
    6.10调整变量的属性125
    只读变量:使用readonly命令125
    只读变量:使用declare命令126
    调整变量的属性127
    6.11别名128
    建立别名128
    替换别名129
    取消别名130
    6.12自定义环境130
    以一般账号的角色工作时130
    以系统管理员的角色工作时133
    6.13数组133
    数组的用法134
    取出数组所有的元素135
    取得数组元素的个数135
    取消数组或数组元素136
    6.14HereDocument136
    用HereDocument设定变量136
    控制HereDocument的格式138
    利用HereDocument做多行批注139
    利用HereDocument,打包C(或其他程序语言)的原始码140

    Chapter7高级变量
    7.1变量扩展:测试存在性及空值144
    “变量存在”的定义144
    测试变量“存在与否”的基本用法145
    测试变量“不存在”或其值为空:“传回”一个默认值146
    测试变量“不存在”或其值为空:给变量设一个默认值148
    测试变量是否“不存在”或其值为空:提示错误信息149
    测试变量的“存在性”151
    7.2变量扩展:取字符串切片、字符串长度152
    取字符串切片152
    计算字符串长度155
    7.3变量扩展:对比样式156
    由字符串前面对比,删除相符者156
    由字符串后面对比,删除相符者158
    取代或删除部分字符串159
    把对比符合的字符串删除160
    要求样式在句首或句尾160
    7.4变量扩展:取变量名称列表、数组索引列表162
    取变量名称列表162
    取数组索引列表162
    7.5命令替换163
    7.6算术扩展165

    Chapter8算术运算
    8.1简介168
    8.2算术扩展169
    8.3使用外部程序expr做算术运算174
    8.4使用$[]做算术运算177
    8.5使用内置命令declare、let做算术运算178
    declare的用法178
    let的用法179

    Chapter9流程控制
    9.1命令的结束状态182
    9.2if条件判断183
    简易的if语法:if-then-else183
    if的完整语法184
    9.3条件测试的写法187
    9.4条件判断式的真假值195
    关于文件属性的判断式195
    关于字符串的条件判断式197
    关于算式的条件判断式199
    关于Bash选项的条件判断式200
    9.5case条件判断200
    case的语法200
    高级样式202
    9.6for循环204
    for的语法204
    for无穷循环207
    9.7while循环207
    while的语法207
    使用while循环,读取文件内容209
    while无穷循环210
    9.8until循环211
    until的语法211
    until无穷循环212
    9.9select命令212
    9.10break和continue214
    break命令214
    continue命令216
    9.11综合运用216

    Chapter10函数
    10.1函数的用法220
    函数的语法220
    函数的结束状态222
    10.2函数与变量的作用范围224
    函数的作用范围224
    变量的作用范围225
    10.3位置参数226
    传递参数226
    命令行的位置参数229
    移动位置参数229
    指定位置参数值230
    取用命令行的选项和参数233
    10.4建立函数库235
    10.5递归函数237
    10.6实例应用238

    Chapter11转向
    11.1文件代码244
    11.2操作文件244
    开启文件244
    关闭文件245
    复制文件代码,建立文件连接245
    11.3转向的用法247
    转向输入247
    转向输出248
    转向附加250
    标准错误伴随标准输出做转向250
    HereDocument转向251

    Chapter12trap——陷阱触发
    12.1信号(signal)254
    进程编号PID254
    信号列表255
    传送信号的方法256
    常用的信号257
    12.2trap的运用260
    trap的语法1260
    trap的语法2261
    trap的语法3261
    trap的语法4262

    Chapter13sed和awk入门
    13.1正则表达式264
    何谓正则表达式264
    13.2sed的用法266
    实例应用268
    13.3awk的用法271
    实例应用272

    Chapter14进程管理和工作控制
    14.1进程管理276
    ps命令276
    top命令281
    htop命令283
    传送信号284
    调整进程的优先级284
    nice命令285
    renice命令286
    PRI和NI287
    14.2工作控制287
    以实例说明工作控制287
    常用的工作控制命令290
    14.3进程替换292

    Chapter15历史指令
    15.1历史指令的功能296
    history命令297
    fc命令298
    15.2历史指令扩展298

    Chapter16使用ShellScript撰写文字和图形接口程序
    16.1使用dialog撰写文本接口程序306
    是或否对话框(yesno)309
    多选一对话框(radiolist)310
    选单对话框(menu)312
    单行输入对话框(inputbox)314
    输入密码对话框(passwordbox)315
    显示进度对话框(gauge)317
    核查列表对话框(checklist)320
    文件对话框(textbox)321
    信息对话框(infobox)321
    调整时间对话框(timebox)322
    倒数计时对话框(pause)322
    选择文本区对话框(fselect)322
    16.2使用xdialog撰写图形接口程序323
    显示信息(msgbox)323
    多选一对话框(radiolist)324
    单行输入对话框(inputbox)325
    双行输入对话框(2inputsbox)326
    三行输入对话框(3inputsbox)328
    下拉列表对话框(combobox)329
    重设大小范围的对话框(rangebox)329
    两个滚动条的对话框330
    3个滚动条的对话框330
    spinbox对话框331
    编辑对话框(editbox)331

    Chapter17文件操作
    17.1取得目录内容:文件列表334
    利用ls取得目录内容334
    17.2判断文件是否存在336
    17.3建立文件338
    建立一般文件338
    建立目录340
    建立区块设备文件341
    建立字符设备文件343
    建立FIFO文件343
    建立Socket文件345
    建立符号链接文件345
    17.4取得文件的属性346
    17.5对比文件的差异352
    diff的其他用法355
    17.6搜寻文件内容358
    17.7建立临时文件361
    17.8复制文件363
    17.9大、小写文件名互换366
    17.10转换编码371
    转换编码的工具372
    大量转换编码373

    Chapter18主机系统管理
    18.1账号管理376
    18.2DNS自动产生器389
    18.3DHCP自动产生器402
    18.4检测主机存在407

    Chapter19Bash在TCP/IP方面的运用
    19.1Bash网络转向416
    wget.sh程序说明418
    Echo服务器419
    19.2自动登录FTP421
    19.3自动登录SSH424

    Chapter20主机安全管理
    20.1收集主机信息428
    列出主机IP428
    找出主机名428
    列出核心信息430
    列出内存使用情况430
    列出磁盘种类432
    列出磁盘容量433
    列出磁盘用量435
    列出主机系统平均负载437
    列出系统中的隐藏文件/有特殊权限的文件438
    列出占用磁盘空间较多的目录440
    20.2主机服务信道441
    基本概念441
    通信状态443
    管理主机服务信道444
    20.3限制连接来源446
    使用TCPWrapper446
    自动建立hosts.allow和hosts.deny449
    20.4限制连接来源:使用iptables452
    关于Netfilter452
    关于iptables452
    iptables的语法453
    iptables的用例454
    自动建立iptables配置文件455
    20.5文件完整性审核465
    关于checksum465
    使用md5sum466
    使用sha1sum466
    使用Shell自制文件完整性的审核工具467
    20.6邮件通知470
    邮件方法470
    监测分区磁盘空间使用量471
    安排邮件内容的格式475
    使用BashShell邮件和附件478
    二进制文件编码/译码的方法479
    邮寄附件480

    Chapter21备份
    21.1使用tar做备份488
    基本用法489
    使用tar做完整备份492
    完整备份和差异性备份493
    使用tar进行差异性备份494
    还原备份文件的方法494
    21.2使用磁带备份495
    操作磁带的方法495
    建立常用函数501
    21.3使用cpio做备份502
    关于cpio502
    基本操作法503
    使用cpio备份到磁带504
    使用cpio备份到远程的主机504
    21.4使用dump/restore做备份/恢复505
    关于dump和restore505
    /etc/fstab和dump的关系505
    dump和文件属性505
    dump的基本操作506
    备份至磁带509
    21.5使用cp、dd做备份509
    使用cp509
    使用dd510
    21.6使用光盘做备份513
    21.7使用rsync做备份514
    关于rsync514
    设定rsyncserver515
    设定rsyncclient517
    安全性519
    rsync设定产生器520
    附录Bash4新功能
查看详情