第3版 UNIX/Linux套用、编程与系统管理


第3版 UNIX/Linux套用、编程与系统管理

文章插图
UNIX/Linux套用、编程与系统管理(第3版)【第3版 UNIX/Linux套用、编程与系统管理】《UNIX/Linux套用、编程与系统管理(第3版)》是2014年清华大学出版社出版的图书,作者是(美)达斯(Das, S.) 。
基本介绍书名:UNIX/Linux套用、编程与系统管理(第3版)
作者:(美)达斯(Das, S.)
译者:贾洪峰 / 李莉
ISBN:9787302355847 
页数:740
定价:99元
出版社:清华大学出版社 
出版时间:2014-4-1
装帧:平装
出版信息作者:[美] Sumitabha Das 着 贾洪峰 李莉 译定价:99元印次:1-1ISBN:9787302355847出版日期:2014.04.01印刷日期:2014.04.16内容简介《UNIX/Linux套用、编程与系统管理(第3版)》兼顾用户和程式设计师的思路来编写,是终极的UNIX/Linux教材 。本书既有教学工具又有详尽的参考资料,非常适合于任何UNIX或Linux相关课程 。与类似教材不同的是,本书设定了一个强大的教学框架,能够使入门级的学生牢固地掌握基本概念,而高级主题章节能激发更有经验的读者超越基础知识 。《UNIX/Linux套用、编程与系统管理(第3版)》兼顾用户和程式设计师的思路来编写,是终极的UNIX/Linux教材 。本书既有教学工具又有详尽的参考资料,非常适合于任何UNIX或Linux相关课程 。与类似教材不同的是,本书设定了一个强大的教学框架,能够使入门级的学生牢固地掌握基本概念,而高级主题章节能激发更有经验的读者超越基础知识 。书中提供了近千道练习和自测题,用于让学生测试和巩固他们对知识的理解 。UNIX是计算机发展历史上最成功的作业系统家族 。它诞生于贝尔实验室,尔后迅速成为世界上作业系统的主流并延续至今 。Linux派生于UNIX,并且在小型机和桌面计算机领域成为和微软的Windows并驾齐驱的作业系统家族 。图书目录第I部分UNIX之用户篇第1章UNIX简介 31.1作业系统 41.2UNIX作业系统 51.3了解你的计算机 51.4系统管理员 71.5登录和注销 71.5.1登录 71.5.2 注销 81.6实践练习 91.6.1用date和who查看系统信息 91.6.2用ps查看进程 101.6.3 处理档案 111.6.4 处理目录 121.7UNIX的成功之路 141.7.1 伯克利:第二学派 141.7.2 UNIX的分化 151.7.3 网际网路 151.7.4Windows的威胁 151.8POSIX和单一UNIX规範 161.9Linux和GNU 161.10UNIX体系结构 171.10.1 分工:Kernel和shell 171.10.2档案和进程 181.10.3 系统调用 191.11UNIX的功能 191.11.1 多用户系统 191.11.2多任务系统 201.11.3应用程式库 201.11.4 构建基块方法 201.11.5 模式匹配 211.11.6 程式设计实用工具 211.11.7文档 211.12小结 221.13自测题 221.14习题 23第2章熟悉UNIX命令 252.1命令基础 262.1.1PATH:定位命令 262.1.2命令的存放位置 272.2命令结构 282.3命令套用的灵活性 302.4man:在线上帮助 312.4.1导航与查找 332.4.2用man-k和man-f获取更多帮助 332.5man文档 332.5.1了解man页 342.5.2用man来理解man 352.6echo:显示讯息 372.7printf:echo的替代命令 392.8script:记录会话 392.9以mailx命令使用电子邮件 402.9.1传送邮件 402.9.2接收邮件 412.9.3mailx内部命令 422.10passwd:改变密码 432.11uname:显示计算机名和作业系统 442.12who:了解用户 452.13date:显示系统日期 452.14stty:在出错时 462.15XWindow系统 482.15.1终端模拟器 482.15.2档案管理器 492.16小结 502.17自测题 512.18习题 52第3章档案系统 553.1档案 563.1.1普通(常规)档案 563.1.2目录档案 563.1.3设备档案 573.2档案名称中有什幺 573.3档案系统的层次结构 583.4UNIX档案系统 593.5随命令一起使用绝对路径名 603.6HOME变数和~:主目录 613.7pwd和cd:在档案系统中导航 613.8相对路径名(.和..) 633.9mkdir:创建目录 643.10rmdir:删除目录 653.11ls:列出档案 663.12cp:複製档案 693.13mv:重命名档案 703.14rm:删除档案 713.15cat:显示和串联档案 733.16more:UNIX分页器 743.17pico:基本文本编辑 763.17.1导航 773.17.2文本编辑 773.18wc:计算行数、字数和字元数 773.19lp:列印档案 783.20od:查看不可列印字元 803.21dos2unix、unix2dos和Tofrodos:在DOS和UNIX之间转换 803.22tar:存档程式 813.23gzip:压缩程式 823.24zip:压缩和存档程式 843.25使用这些命令的其他方式 853.26小结 853.27自测题 863.28习题 86第4章档案属性 894.1重温ls(-l):列出档案属性 894.2档案许可权 914.3chmod:改变档案许可权 92 4.3.1相对许可权 934.3.2绝对赋予许可权 944.3.3递推操作(-R) 954.4目录 964.4.1读许可权 964.4.2写许可权 964.4.3执行许可权 984.5umask:默认的档案与目录许可权 984.6档案系统和inode 994.7ln:创建硬连结 1014.8再论ln:创建符号连结 1034.9档案所有权 1054.9.1chown:改变档案所有权 1064.9.2chgrp:改变用户组所有者 1064.9.3如何处理入侵者 1074.10修改时间与访问时间 1084.11find:定位档案 1084.11.1选择準则 1104.11.2find操作符(!,-o和-a) 1124.11.3操作部分的操作符 1124.12小结 1134.13自测题 1134.14习题 114第5章vi/vim编辑器 1175.1vi基础 1185.2一些提示 1205.3输入模式——输入和替换文本 1215.3.1插入和追加文本(i和a) 1225.3.2在行的两端插入和追加文本(I和A) 1225.3.3新建一行(o和O) 1235.3.4替换文本(r、s、R和S) 1245.3.5输入控制字元([Ctrl-v]) 1255.4保存文本并退出——ex模式 1265.4.1保存工作(:w) 1275.4.2保存并退出(:x和:wq) 1275.4.3中止编辑(:q) 1275.4.4写入选定行 1285.4.5退出到shell(:sh和[Ctrl-z]) 1295.5从崩溃中恢复(:recover和-r) 1295.6导航 1305.6.14个方向上的相对移动(h、j、k和l) 1315.6.2滚动([Ctrl-f]、[Ctrl-b]、[Ctrl-d]和[Ctrl-u]) 1315.6.3单词导航(b、e和w) 1325.6.4移到行的末端(0、|和$) 1325.6.5绝对移动(G) 1335.7编辑文本,不使用操作符 1335.7.1删除文本(x、X和dd) 1335.7.2移动文本(p) 1345.7.3合併行(J) 1345.7.4改变大小写(~) 1355.8纠正C程式 1355.9用操作符编辑文本 1365.9.1删除和移动文本(d、p和P) 1375.9.2複製文本(y、p和P) 1385.9.3修改文本(c) 1395.10在档案之间複製和移动文本 1395.11撤消之前的编辑 指令(u和U) 1405.12查找模式(/和?) 1415.13重複上一条命令(.) 1425.14替代-查找并替换(:s) 1435.15set:定製vi 1445.16map:映射键盘的按键 1465.17abbr:文本输入的缩写 1475.18小结 1475.19自测题 1485.20习题 149第6章shell 1516.1作为命令处理器的shell 1526.2shell提供的功能 1526.3模式匹配——通配符 1536.3.1*和? 1546.3.2字元类 1556.3.3匹配句点 1566.3.4综述 1576.4转义与引用 1576.4.1转义 1586.4.2引用 1596.4.3在echo中进行转义 1596.5重定向 1606.5.1标準输入 1606.5.2标準输出 1626.5.3档案描述符 1636.5.4标準错误 1646.5.5过滤器——使用标準输入与标準输出 1656.6集体处理 1656.6.1複製描述符 1666.6.2命令分组 1666.7/dev/null和/dev/tty:两个独立的档案 1676.8管道 1686.9tee:创建一个T型三通 1706.10命令替换 1716.11shell变数 1726.11.1引用和转义的影响 1736.11.2使用shell变数的场合 1746.12shell脚本 1756.13shell对命令行的处理 1756.14有关通配符的更多信息 1766.15xargs:构建动态命令行 1776.16小结 1776.17自测题 1786.18习题 179第7章进程 1817.1进程基础 1827.2shell和init 1827.3ps:显示进程属性 1837.4系统进程和init 1847.5进程创建机制 1877.6继承的进程属性 1887.7不能使用单独进程的情景 1907.8进程状态与殭尸进程(Zombie) 1907.9信号处理 1917.10在后台运行作业 1937.10.1&:不注销 1947.10.2nohup:安全注销 1947.11作业控制 1957.12at和batch:推后执行 1987.12.1at:一次执行 1987.12.2batch:在批伫列中执行作业 1997.12.3限制at和batch的使用 199 7.13cron和crontab:定期运行作业 1997.14小结 2027.15自测题 2037.16习题 203第8章shell—定製环境 2058.1shell 2058.2环境变数 2078.3常见环境变数 2088.4别名 2128.5命令历史记录 2138.5.1访问之前的命令 2148.5.2 在先前命令中进行替换 2158.5.3使用上一条命令中的参数($_) 2158.5.4历史记录变数 2168.6行内命令编辑 2178.7~替换 2188.8使用set选项 2198.9初始化脚本 2208.9.1登录脚本 2218.9.2rc档案 2218.10Cshell 2228.10.1局部变数和环境变数 2228.10.2别名 2248.10.3历史记录 2258.10.4 其他shell变数 2258.10.5初始化脚本 2268.11目录栈操作 2268.12小结 2288.13自测题 2298.14习题 229第9章简单过滤器 2319.1pr:对档案进行编页 2329.2对比档案 2339.3cmp:逐位元组对比 2349.4comm:哪些共同内容 2359.5diff:将一个档案转换为另一档案 2369.6head:显示一个档案的开头 2369.7tail:显示档案的末尾 2379.8cut:垂直划分档案 2389.9paste:贴上档案 2409.10sort:对档案进行排序 2409.11uniq:定位重複行和非重複行 2449.12tr:变换字元 2459.13套用过滤器 2479.13.1列出当前目录中5个最大的档案 2489.13.2创建一份单词使用情况列表 2499.13.3找出两个密码档案之间的差别 2499.14小结 2519.15自测题 2519.16习题 252第10章使用正则表达式的过滤器——grep和sed 25510.1示例资料库 25610.2grep:查找模式 25610.2.1grep中的引用 25710.2.2grep失败的场合 25810.3grep选项 25810.4基本正则表达式(BRE)——简介 26010.4.1字元类 26210.4.2* 26210.4.3句点 26310.4.4指定模式位置(^和$) 26410.4.5元字元失去其意义的 情景 26510.5扩展正则表达式(ERE)和egrep 26510.5.1+和? 26610.5.2匹配多种模式(|、(和)) 26610.6sed:流编辑器 26710.7行定址 26910.8sed选项 27010.9上下文定址 27110.10将选定行写入档案(w) 27210.11文本编辑 27210.11.1插入和改变行(i、a、c) 27210.11.2删除行(d) 27310.12替换(s) 27410.12.1在替换中使用正则表达式 27510.12.2记忆模式(//) 27510.13基本正则表达式回顾 27610.13.1重複模式(&) 27710.13.2间隔正则表达式(IRE) 27710.13.3标记正则表达式(TRE) 27710.14套用IRE和TRE 27810.14.1处理电话簿 27810.14.2用POSIX兼容的函式替换过时的函式 27910.14.3变换URL中的路径名 28010.15小结 28110.16自测题 28110.17习题 282第11章联网工具 28511.1TCP/IP基础知识 28611.2解析主机名和IP位址 28711.2.1/etc/hosts:主机档案 28711.2.2域名系统(DNS) 28811.3客户端-伺服器:网路应用程式如何通信 29011.4ping:检查网路 29111.5telnet:远程登录 29211.6ftp:档案传输协定 29311.6.1基本档案与目录处理 29311.6.2传送档案 29411.6.3匿名FTP 29511.7密码学基础 29611.7.1对称密钥算法 29611.7.2非对称密钥算法 29711.8SSH:安全shell 29711.8.1主机验证 29711.8.2rhosts/shosts验证机制 29811.8.3採用对称算法的用户验证 29811.8.4使用SSH代理进行非互动式登录 30011.9SSH协定 30111.9.1远程登录与执行命令(ssh和slogin) 30111.9.2用sftp和scp进行档案传输 30211.10网际网路邮件 30311.11MIME:处理邮件中的二进制附属档案 30511.12在TCP/IP网路上使用XWindow 30611.12.1显示器 30611.12.2使用DISPLAY变数 30711.12.3使用-display选项 307 11.13HTTP和全球资讯网 30711.13.1统一资源定位符(URL) 30811.13.2HTTP:Web的协定 30911.13.3运行外部程式 30911.13.4HTML:网页的语言 31011.13.5Web浏览器 31111.14Web上的多媒体:重温MIME 31111.15小结 31211.16自测题 31311.17习题 314第II部分UNIX之程式设计师篇第12章用awk进行过滤和程式设计 31712.1awk预备知识 31812.2使用print和printf 32012.3数字处理 32112.4变数和表达式 32212.5比较与逻辑运算符 32412.5.1字元串和数值比较 32412.5.2~和!~:正则表达式运算符 32512.5.3逻辑运算符 32712.6-f选项:将awk程式存储在档案中 32712.7BEGIN和END节 32812.8位置参数 32912.9数组 32912.9.1关联(哈希)数组 33012.9.2ENVIRON[]:环境数组 33112.10内置变数 33112.11函式 33312.12控制流——if语句 33512.13for循环 33612.14while循环 33812.15结论 33912.16小结 34012.17自测题 34012.18习题 341第13章shell程式设计 34513.1shell脚本 34613.1.1script.sh:一个简单脚本 34613.1.2She-Bang行 34713.2read:使脚本变为互动式的 34813.3使用命令行参数 34813.4exit和$?:命令的退出状态 35013.5逻辑运算符&&和||——条件执行 35113.6if条件句 35113.7使用test和[]对表达式求值 35313.7.1数值比较 35313.7.2[]:test的捷径 35413.7.3字元串比较 35513.7.4档案属性检验 35513.7.5使用複合条件 35713.8两个重要的程式设计习惯 35713.8.1以互动式、非互动式执行一项任务 35713.8.2用不同名称调用脚本($0) 35913.9case条件句 35913.10expr、bc和basename:计算与字元串处理 36113.10.1用expr进行计算 36213.10.2用bc进行浮点计算 36213.10.3用expr处理字元串 363 13.10.4basename:改变档案名称扩展 36413.11示例程式1:自动选择上一个C程式 36513.12for:用列表进行循环 36613.12.1列表的来源 36613.12.2使用for的重要套用 36713.13while:循环 36713.13.1在循环中处理重定向 36813.13.2使用while等待档案 36913.13.3找出用户占用的空间 37013.13.4break和continue 37113.14示例脚本2:向备份档案提供数字扩展名 37113.15用set和shift处理位置参数 37313.15.1按名称杀死进程 37413.15.2shift:左移位置参数 37413.15.3IFS变数:set的默认分隔设定 37513.16示例脚本3:已下载档案的目录 37613.17Here文档(<<) 37813.18shell函式 37913.19trap:脚本如何处理信号 38013.20eval:两次求值 38113.21exec语句 38213.22小结 38213.23自测题 38313.24习题 384第14章perl——高级操纵器 38714.1perl预备知识 38814.2变数和常数 38914.3运算符 39114.3.1比较与逻辑运算符 39114.3.2串联运算符和重複运算符(.和x) 39214.4标準条件句与循环 39214.4.1if条件句 39314.4.2while、do-while和for循环 39314.5从命令行参数读取档案 39414.5.1用单行代码读取档案 39514.5.2在脚本中读取档案 39514.6当前行号($.)和範围运算符(..) 39614.7$_:默认变数 39614.8字元串处理函式 39714.9列表和数组 39914.10foreach:循环遍历一个列表 40114.11两个重要的列表函式 40214.11.1split:分割到列表或数组中 40214.11.2join:联接列表 40414.12dec2bin.pl:将十进制数变换为二进制 40414.13关联数组 40514.14使用正则表达式 40714.14.1识别空白、数位和单词 40714.14.2IRE的TRE功能 40814.15用s和tr函式替换 40914.16档案处理 41114.17档案测试 412 14.18子例程 41314.19用perl进行CGI程式设计——概述 41414.19.1查询字元串 41414.19.2GET和POST:请求方法 41514.20小结 41514.21自测题 41614.22习题 417第15章C语言简介 42115.1C语言 42215.2first_prog.c:理解我们的第一个C程式 42315.2.1预处理器部分 42415.2.2主体 42415.2.3main:独一无二的函式 42515.3printf和scanf:两个重要函式 42615.3.1printf:列印到终端 42615.3.2scanf:由键盘输入 42715.4变数和常数 42715.5基本数据类型 42815.5.1整型 42815.5.2浮点类型 42915.5.3字元类型 43015.6sizeof.c:确定基本数据类型的大小 43115.7符号常量:有名称的常量 43215.8数组 43215.9arrays.c:列印数组元素 43315.10结构 43415.11运算符和表达式 43515.11.1位运算符 43615.11.2自动变换 43615.11.3隐式变换 43715.12type_conversion.c:演示类型变换 43815.13求值顺序 44015.13.1运算符优先权 44015.13.2运算符结合性 44115.14控制流回顾 44115.14.1用switch进行决策 44215.14.2用do-while重複 44315.14.3break和continue 44315.15函式 44415.16first_func.c:两个参数和返回值 44515.17函式实参、形参和局部变数 44615.17.1按值传递 44715.17.2swap_failure.c:形参与局部变数的可见性 44815.17.3以数组为函式实参 44915.17.4以结构作为函式实参 45015.18指针 45015.19pointers.c:指针的基本功能 45215.20指针属性 45315.20.1指针运算 45315.20.2其他属性 45415.21指针和函式 45515.21.1解决交换问题 45515.21.2用指针返回多个值 45615.22指针和其他数据类型 45615.22.1指针和数组 45615.22.2指针和字元串 457 15.22.3字元串数组 45815.22.4指针和结构 45815.23小结 45915.24自测题 46015.25习题 461第16章程式开发工具 46316.1处理拥有多个源档案的C应用程式 46316.1.1包含多个源档案的应用程式 46416.1.2编译和连结应用程式 46616.1.3为什幺需要.o档案 46716.2make:使程式保持最新 46816.2.1删除冗余 47016.2.2make的其他功能:清理与备份 47016.2.3宏 47116.3ar:生成库(档案) 47216.3.1使用库 47316.3.2用make维护档案 47416.4静态库和共享库 47416.5用SCCS、RCS和CVS实现版本控制 47516.6SCCS会话 47616.6.1admin:创建一个SCCS档案 47716.6.2get:签出 47716.6.3delta:签入 47816.6.4unget:如果改变主意 48016.7活动与历史信息 48116.7.1sact:显示活动状态 48116.7.2prs:显示SCCS历史 48116.8继续以SCCS编辑 48216.8.1get-r:改变默认的编号顺序 48216.8.2处理多个版本 48316.8.3rmdel和comb:删除和合併版本 48416.8.4使用标识关键字 48516.9控制对SCCS的访问许可权 48616.9.1控制用户访问 48616.9.2控制发布版本 48616.10版本控制系统(RCS) 48716.10.1用ci创建RCS档案 48816.10.2co和ci:签出和签入 48816.10.3指定修订 48916.10.4rlog和rcs:其他RCS功能 49016.11并发版本系统(CVS) 49216.11.1建立存储库 49316.11.2导入档案 49316.11.3签出 49416.11.4编辑和签入 49416.11.5合併和解决冲突 49516.11.6设定标记并导出存储库 49616.11.7其他功能 49616.12用gdb调试程式 49716.12.1启动gdb 50016.12.2使用断点 50116.12.3单步执行程式 50216.12.4再赋值 50316.12.5设定观察点 50416.12.6gdb的其他功能 50516.13小结 50616.14自测题 506 16.15习题 507第17章系统程式设计I——档案 50917.1系统调用的基础知识 51017.1.1系统调用剖析 51017.1.2系统调用与库函式的对比 51017.2errno和perror:处理错误 51117.3open:打开和创建档案 51317.4close:关闭档案 51517.5read:读取档案 51617.6write:写档案 51617.7ccp.c:複製档案 51717.8lseek:定位偏移指针 51917.9truncate和ftruncate:截短档案 52117.10umask:在创建期间修改档案许可权 52217.11目录导航 52317.12读取目录 52417.13修改目录中的项目 52617.13.1mkdir和rmdir:创建和删除目录 52617.13.2link和symlink:创建硬连结和符号连结 52617.13.3unlink:删除连结 52717.13.4rename:对档案、目录或符号连结重命名 52717.14读取Inode:structstat和stat 52817.14.1attributes.c:显示一些档案属性 52917.14.2S_IFMT:处理st_mode成员 53017.14.3用S_ISxxx宏确定档案类型 53017.14.4访问许可权位 53117.14.5lsdir.c:仅列出目录 53117.15access:检查实际用户的许可权 53317.16修改档案属性 53417.16.1chmod和fchmod:改变档案许可权 53517.16.2chown:改变所有权 53517.16.3utime:改变时间戳记 53617.16.4atimemtime.c:创建一个具有相同时间戳记的档案 53617.17小结 53717.18自测题 53817.19习题 539第18章系统程式设计II——进程控制 54118.1进程回顾 54118.1.1虚拟地址空间 54218.1.2进程表 54318.2进程环境 54418.3fork:複製当前进程 54518.4exec:进程创建的最终步骤 54718.4.1execl和execv:关键成员 54818.4.2其他exec成员 54918.5收集退出状态 55018.5.1wait:当父进程等待时 55018.5.2waitpid:一种功能更强大的等待机制 55118.6fork_exec_wait.c:使用 全部三个调用 55218.7档案共享 55318.7.1档案说明符表 55418.7.2档案表 55418.7.3vnode表 55518.7.4当连结发生变化时 55518.8档案说明符处理 55618.8.1dup和dup2:複製档案说明符 55618.8.2redirection.c:最后讨论重定向 55718.8.3fcntl:对其推荐程度高于dup和dup2 55918.9信号处理 55918.10sigaction:安装信号处理器 56118.10.1signal.c:捕获SIGALRM信号 56318.10.2捕获终端生成的信号 56418.11killprocess.c:使用fork-exec-wait和SIGCHLD 56518.12用未命名管道实现进程间通信 56718.12.1和fork一起使用pipe 56818.12.2pipe2.c:在管道中运行UNIX命令 56918.13小结 57018.14自测题 57118.15习题 572第III部分系统管理第19章系统管理 57719.1root:系统管理员的登录 57819.2管理员的特权 57919.3用户管理 58019.3.1理解/etc/group 58019.3.2理解/etc/passwd 58119.3.3添加和修改用户配置档案 58219.4维护安全 58319.4.1受限制的shell 58319.4.2Set-User-Id(SUID):临时能力 58419.4.3粘着位 58519.5启动与关机 58519.5.1启动 58519.5.2关机 58619.6init如何控制系统 58719.6.1init如何创建shell 58819.6.2rc脚本 58919.7设备档案 59019.7.1块设备和字元设备 59019.7.2主次设备号 59119.8档案系统 59119.8.1档案系统的组成部分 59219.8.2标準档案系统及其类型 59219.9载入和卸载档案系统 59319.9.1mount:载入档案系统 59319.9.2umount:卸载档案系统 59419.10fsck:档案系统检查 59519.11管理磁碟空间 59619.11.1df:报告空闲空间 59619.11.2du:磁碟利用率 59619.11.3find回顾:管理员的工具 59719.12处理软碟 597 19.12.1format和fdformat:格式化磁碟 59819.12.2dd:複製磁碟 59819.12.3处理DOS磁碟 59819.13tar:备份档案 60019.13.1备份档案(-c) 60019.13.2恢复档案(-x) 60119.13.3显示档案(-t) 60219.13.4其他选项 60219.14用rpm安装程式 60319.14.1安装和升级包 60319.14.2删除包 60419.14.3查询包 60419.15小结 60619.16自测题 60719.17习题 607附录ACshell——程式设计构造 609附录BKorn和Bashshell——独有的程式设计构造 617附录CGNUemacs编辑器 625附录Dvi/vim命令参考 653附录E正则表达式超集 661附录F常用操作指南 665附录GASCII字元集 671附录H术语表 677附录I自测题解答 695