出版时间:2010-3 出版社:电子工业出版社 作者:卧龙小三 页数:533 译者:梁昌泰
Tag标签:无
前言
2002年,我曾在台南县对全县中、小学校的网管讲授Shell程序设计课程。当时关于Shell的书籍和参考资料并不多(至今仍然如此),只好自编一份入门讲义,供上课的学员参考。课程结束后,我把它放到网络上,让其他同学也能参考。没想到,这份讲义,由于写得十分清楚、易懂,受到许多人的欢迎。这几年来,陆续接到很多网络上朋友的来信,希望我能进一步把Shell程序设计的入门讲义写成更详细的工具书,不过,由于个人工作上的关系,一直没有实现。今年,机缘巧合,各方面的条件和时机恰好配合,所以,这本书就出现在这里啦! 许多人可能不了解,Shell其实是操作系统的重要组件之一。当我们管理一台主机时,在系统核心和用户之间的接口就是Shell,我们几乎必须时刻面对它。Shell能解译使用者输入的命令并执行命令。这些命令本身,通常用来访问文件系统、建立行程、管理行程、操作输出入设备、管理内存,以及操作和网络有关的应用。因此,对Shell的操控能力,可以说大约就等于是主机的管理能力,所以,想要对主机管理有更深一层认识的人,不可不熟悉Shell。 笔者常说:凡是可以交给计算机做的事,不要由人来做(因为,人会累,计算机不会累)。主机管理的上乘之道,就在于能够充分实践这句话。换言之,就是把工作予以自动化。那么,主机管理者如何把工作自动化呢?关键就在于他是否具备Shell程序设计的能力。我们可以说:对Shell的操控能力和Shell程序设计的能力,是每一位主机管理者应具备的基本知能。唯有如此,这样的管理人员才具备强大的生产力(有生产力的管理者,才能偷懒,有时间做自己喜欢做的事,比如:思考如何创新)。 这几年来,由于自由软件运动蓬勃发展,一般人接触Linux/BSD等系统的机会多了,较几年前来说,真是不可同日而语。但许多人在登录主机之后,却往往不知道要做什么,或如何运用它来解决问题,实在是很可惜。本书希望能带领读者了解Shell的重要性,熟悉Shell的运用方法,建立自动化管理主机的能力,迅速、轻松地解决问题。
内容概要
操作系统Shell编程一直是系统管理员必备高级技能之一。主机管理的上乘之道,就在于尽量让计算机去完成所有的琐事。要达到这个境界,管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,笔者拥有丰富的主机管理实务经验,以及多年的教学经验,能引领读者轻松跨越Bash Shell程序设计的门槛,摆脱菜鸟劳碌的命运,达到轻松管理,主机不出包的境界。 本书完整涵盖Bash 3.x的各项功能,并介绍最新Bash 4.0的重要功能;由简入繁、循序渐进,建立扎实的Bash Shell程序设计基础;各章提供许多范例,充分展示Bash Shell程序设计的技巧;带领读者学习如何设计自动化程序,轻松解决问题,增进工作效率;还包含许多管理实务的技巧,可快速提升读者主机管理的能力。 本书适合系统管理员、网络管理员、架构师及普通学习者参考学习。 主机管理的上乘之道,就在于尽量让电脑去完成所有的琐事。要达到这个境界,管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,卧龙小三拥有丰富的主机管理实务经验,以及多年的教学经验,相信这本《实战Linux Shell编程与服务器管理》必能引领读者轻松跨越Bash Shell程序设计的门槛,摆脱菜鸟劳碌的命运,达到轻松管理,主机不出包的境界。 ■ 完整涵盖Bash 3.x的各项功能,并介绍最新Bash 4.0的重要功能。 ■ 由简入繁、循序渐进,建立扎实的Bash Shell程序设计基础。 ■ 各章提供许多范例,充分展示Bash Shell程序设计的技巧。 ■ 带领读者学习如何设计自动化程序,轻松解决问题,增进工作效率。 ■ 还包含许多管理实务的技巧,可快速提升读者主机管理的能力。
书籍目录
Chapter 1 Shell简介1.1 Shell是什么 21.2 Shell的历史简介 41.3 Bash Shell的功能 51.4 第一个Bash Shell程序:“哈啰!Bash Shell!” 61.5 第一个有用的Bash Shell 7Chapter 2 布署Bash Shell的环境2.1 在Linux平台布署Bash Shell的环境 102.2 升级B2D的Bash版本 102.3 自行编译最新版的Bash 112.4 切换使用新版的Bash Shell 13chsh的用法 132.5 在FreeBSD平台布署Bash Shell的环境 152.6 在OpenBSD平台布署Bash Shell的环境 162.7 在Windows平台布署Bash Shell的环境 18Chapter 3 基础概念介绍3.1 登录、注销 22登录主机 22注销主机、结束终端程序 233.2 文件、目录 23文件 23目录 263.3 通配符与转义字符 30通配符 30转义字符 313.4 字符集合 333.5 括号扩展 343.6 系统默认开启的文件 353.7 标准输入/输出转向 35转向输出 36转向附加 36转向输入 37转向输入和转向输出合用 37利用转向输出做简易编辑 383.8 管道 383.9 前台工作、后台工作 40Chapter 4 Bash Shell程序的结构4.1 Shell程序的组成 424.2 设定执行权限 444.3 执行Bash Script的方法 444.4 Bash Script排错的方法 454.5 Bash Script执行的原理 47login Shell 474.6 Bash Shell的启动配置文件 50Bash不同的运行模式 50Chapter 5 基本操作介绍5.1 内置命令 565.2 命令行程序 715.3 执行多个命令的方法 885.4 记录命令的执行过程 905.5 命令行编辑的方法 915.6 Bash分析命令行的方式 98Chapter 6 变量与字符串操作6.1 变量是什么 1026.2 变量的命名 1036.3 设定变量 1046.4 取得变量值 1056.5 取消与清空变量 1096.6 变量和引号 1106.7 变量的有效范围 1126.8 环境变量 113输出变量 113取消环境变量值 1156.9 Bash的内置变量 1156.10 调整变量的属性 125只读变量:使用readonly命令 125只读变量:使用declare命令 126调整变量的属性 1276.11 别名 128建立别名 128替换别名 129取消别名 1306.12 自定义环境 130以一般账号的角色工作时 130以系统管理员的角色工作时 1336.13 数组 133数组的用法 134取出数组所有的元素 135取得数组元素的个数 135取消数组或数组元素 1366.14 Here Document 136用Here Document设定变量 136控制Here Document的格式 138利用Here Document做多行批注 139利用Here Document,打包C(或其他程序语言)的原始码 140Chapter 7 高级变量7.1 变量扩展:测试存在性及空值 144“变量存在”的定义 144测试变量“存在与否”的基本用法 145测试变量“不存在”或其值为空:“传回”一个默认值 146测试变量“不存在”或其值为空:给变量设一个默认值 148测试变量是否“不存在”或其值为空:提示错误信息 149测试变量的“存在性” 1517.2 变量扩展:取字符串切片、字符串长度 152取字符串切片 152计算字符串长度 1557.3 变量扩展:对比样式 156由字符串前面对比,删除相符者 156由字符串后面对比,删除相符者 158取代或删除部分字符串 159把对比符合的字符串删除 160要求样式在句首或句尾 1607.4 变量扩展:取变量名称列表、数组索引列表 162取变量名称列表 162取数组索引列表 1627.5 命令替换 1637.6 算术扩展 165Chapter 8 算术运算8.1 简介 1688.2 算术扩展 1698.3 使用外部程序expr做算术运算 1748.4 使用$[]做算术运算 1778.5 使用内置命令declare、let做算术运算 178declare的用法 178let的用法 179Chapter 9 流程控制9.1 命令的结束状态 1829.2 if条件判断 183简易的if语法:if-then-else 183if的完整语法 1849.3 条件测试的写法 1879.4 条件判断式的真假值 195关于文件属性的判断式 195关于字符串的条件判断式 197关于算式的条件判断式 199关于Bash选项的条件判断式 2009.5 case条件判断 200case的语法 200高级样式 2029.6 for循环 204for的语法 204for无穷循环 2079.7 while循环 207while的语法 207使用while循环,读取文件内容 209while无穷循环 2109.8 until循环 211until的语法 211until无穷循环 2129.9 select命令 2129.10 break和continue 214break命令 214continue命令 2169.11 综合运用 216Chapter 10 函数10.1 函数的用法 220函数的语法 220函数的结束状态 22210.2 函数与变量的作用范围 224函数的作用范围 224变量的作用范围 22510.3 位置参数 226传递参数 226命令行的位置参数 229移动位置参数 229指定位置参数值 230取用命令行的选项和参数 23310.4 建立函数库 23510.5 递归函数 23710.6 实例应用 238Chapter 11 转向11.1 文件代码 24411.2 操作文件 244开启文件 244关闭文件 245复制文件代码,建立文件连接 24511.3 转向的用法 247转向输入 247转向输出 248转向附加 250标准错误伴随标准输出做转向 250Here Document转向 251Chapter 12 trap——陷阱触发12.1 信号(signal) 254进程编号PID 254信号列表 255传送信号的方法 256常用的信号 25712.2 trap的运用 260trap的语法1 260trap的语法2 261trap的语法3 261trap的语法4 262Chapter 13 sed和awk入门13.1 正则表达式 264何谓正则表达式 26413.2 sed的用法 266实例应用 26813.3 awk的用法 271实例应用 272Chapter 14 进程管理和工作控制14.1 进程管理 276ps命令 276top命令 281htop命令 283传送信号 284调整进程的优先级 284nice命令 285renice命令 286PRI和NI 28714.2 工作控制 287以实例说明工作控制 287常用的工作控制命令 29014.3 进程替换 292Chapter 15 历史指令15.1 历史指令的功能 296history命令 297fc命令 29815.2 历史指令扩展 298Chapter 16 使用Shell Script撰写文字和图形接口程序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) 32216.2 使用xdialog撰写图形接口程序 323显示信息(msgbox) 323多选一对话框(radiolist) 324单行输入对话框(inputbox) 325双行输入对话框(2inputsbox) 326三行输入对话框(3inputsbox) 328下拉列表对话框(combobox) 329重设大小范围的对话框(rangebox) 329两个滚动条的对话框 3303个滚动条的对话框 330spinbox对话框 331编辑对话框(editbox) 331Chapter 17 文件操作17.1 取得目录内容:文件列表 334利用ls取得目录内容 33417.2 判断文件是否存在 33617.3 建立文件 338建立一般文件 338建立目录 340建立区块设备文件 341建立字符设备文件 343建立FIFO文件 343建立Socket文件 345建立符号链接文件 34517.4 取得文件的属性 34617.5 对比文件的差异 352diff的其他用法 35517.6 搜寻文件内容 35817.7 建立临时文件 36117.8 复制文件 36317.9 大、小写文件名互换 36617.10 转换编码 371转换编码的工具 372大量转换编码 373Chapter 18 主机系统管理18.1 账号管理 37618.2 DNS自动产生器 38918.3 DHCP自动产生器 40218.4 检测主机存在 407Chapter 19 Bash在TCP/IP方面的运用19.1 Bash网络转向 416wget.sh程序说明 418Echo服务器 41919.2 自动登录FTP 42119.3 自动登录SSH 424Chapter 20 主机安全管理20.1 收集主机信息 428列出主机IP 428找出主机名 428列出核心信息 430列出内存使用情况 430列出磁盘种类 432列出磁盘容量 433列出磁盘用量 435列出主机系统平均负载 437列出系统中的隐藏文件/有特殊权限的文件 438列出占用磁盘空间较多的目录 44020.2 主机服务信道 441基本概念 441通信状态 443管理主机服务信道 44420.3 限制连接来源 446使用TCP Wrapper 446自动建立hosts.allow和hosts.deny 44920.4 限制连接来源:使用iptables 452关于Netfilter 452关于iptables 452iptables的语法 453iptables的用例 454自动建立iptables配置文件 45520.5 文件完整性审核 465关于checksum 465使用md5sum 466使用sha1sum 466使用Shell自制文件完整性的审核工具 46720.6 邮件通知 470邮件方法 470监测分区磁盘空间使用量 471安排邮件内容的格式 475使用Bash Shell邮件和附件 478二进制文件编码/译码的方法 479邮寄附件 480Chapter 21 备份21.1 使用tar做备份 488基本用法 489使用tar做完整备份 492完整备份和差异性备份 493使用tar进行差异性备份 494还原备份文件的方法 49421.2 使用磁带备份 495操作磁带的方法 495建立常用函数 50121.3 使用cpio做备份 502关于cpio 502基本操作法 503使用cpio备份到磁带 504使用cpio备份到远程的主机 50421.4 使用dump/restore做备份/恢复 505关于dump和restore 505/etc/fstab和dump的关系 505dump和文件属性 505dump的基本操作 506备份至磁带 50921.5 使用cp、dd做备份 509使用cp 509使用dd 51021.6 使用光盘做备份 51321.7 使用rsync做备份 514关于rsync 514设定rsync server 515设定rsync client 517安全性 519rsync设定产生器 520附录 Bash 4新功能
编辑推荐
架构、流程、管理 系统维护 备份还原 安全管理 主机管理的上乘之道,就在于尽量让电脑去完成所有的琐事。要达到这个境界,管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,卧龙小三拥有丰富的主机管理实务经验,以及多年的教学经验,相信这本《实战Linux Shell编程与服务器管理》必能引领读者轻松跨越Bash Shell程序设计的门槛,摆脱菜鸟劳碌的命运,达到轻松管理,主机不出包的境界。 《实战Linux Shell编程与服务器管理》特点: 完整涵盖Bash 3.x的各项功能,并介绍最新Bash 4.0的重要功能。 由简入繁、循序渐进,建立扎实的Bash Shell程序设计基础。 各章提供许多范例,充分展示Bash Shell程序设计的技巧。 带领读者学习如何设计自动化程序,轻松解决问题,增进工作效率。 还包含许多管理实务的技巧,可快速提升读者主机管理的能力。
图书封面
图书标签Tags
无
评论、评分、阅读与下载