Fedora和Red Hat Enterprise Linux实用指南(第6版)(上、下册)入行必读的Linux圣经)

(美)苏贝尔(SobellL,M.G.)著

李洋等译

ISBN 978-7-121-19333-0

2013年1月出版

定价:198.00元

1308页

16开

Fedora和Red Hat Enterprise Linux实用指南(第6版)(上、下册)( 入行必读的Linux圣经)_Linux

编辑推荐

首屈一指的Fedora和RHEL的参考资源:学习和工作的最佳参考

全面掌握Linux管理和安全:采用基于GUI的图形化工具、命令行以及Perl脚本语言

搭建重要的Internet服务器:一步一步第搭建示例,包括SambaApachesendmailDNSLDAPFTP等服务器。

内容提要

本 书采用通俗易懂的语言和大量的实例,对目前企业应用最为广泛的Fedora和Red Hat Enterprise Linux版本的应用进行了系统、科 学、全面的介绍,包括Linux系统管理、互联网服务器搭建、内核编译及执行、命令行使用等重点内容,并且对应用Perl脚本进行自动化管理进行了详细介 绍。

本书适合广大Linux从业人员(包括系统和网络管理人员)、Linux爱好者,同时,本书也不失为一本很好的大中专院校Linux系统学习的教材。

目录过长

详见附

精彩节摘

译 者 序

当博文视点公司的张春雨先生拿着这本书的英文版本找到我的时候,我略微翻了几页就毫不犹豫地答应了下来,并推掉了其他著书的任务,承担并主持这本书的翻译任务,因为我被这本书深深地吸引了。

Linux系统/网络管理及信息安全领域,我摸爬滚打了十几年,参看了不少Linux书籍,也撰写了几本拙著。我有一个很大的愿望,就是要写这样一本书——即适合Linux入门读者,有一定工作经验也可从中获得更多Linux知识。我一直朝着这个目标努力,也在寻觅翻译这样一本“圣经”。今天,我终于找到了。在这本书中,作者采用通俗易懂的语言和大量的实例,对目前企业应用最为广泛的FedoraRed Hat Enterprise Linux版本的应用进行了系统、科学、全面的介绍,包括Linux系统管理、互联网服务器搭建、内核编译及执行、命令行使用等重点内容,并且对应用Perl脚本进行自动化管理进行了详细介绍。本书适合广大的Linux从业人员(包括系统和网络管理人员)、Linux爱好者,同时,本书也不失为一本很好的大中专院校Linux系统学习的教材。

我觉得,我有义务为大家翻译并奉献这样一本书。Linux是属于世界的,更是属于中国的。尤其是在Linux盛行的今天,在企业应用逐渐成熟的今天,中国无疑成为Linux企业应用的主战场。越来越多的读者和企业用户都希望能够从书中获取大量的知识,并能够在学习和工作中应用自如。我可以很负责任地告诉大家,这本书就是你们需要的。

为了对大家负责,我在本书译者的选择上精挑细选,成员来自著名企业、高校和研究所,他们都是Linux方面的专家、学者和一线工程师,只有这样的团队,才能准确、科学、全面地翻译这样一本Linux巨著,才能更好地将其奉献给广大读者。本书的主持译者李洋博士,现任国内著名信息安全公司首席技术官(CTO)。十余年来一直从事信息安全和IT架构领域的技术研发和管理工作,曾主持和参与多项国家重点项目,并主导多个电信网络、互联网网络、金融企业网络的IT架构设计、信息安全系统的设计和研发工作。具有丰富的企业信息安全规划、架构设计/建设和管理,企业信息安全解决方案提供及实施,IT架构设计,Linux网络和系统应用、管理、安全及内核的研发经验,曾在IEEEACM51CTO、《计算机世界》、《网管员世界》等国内外知名媒体和期刊上发表SCI/EI学术论文和各类技术文章千余篇,相关著作6部,国家专利4项。此外,参与翻译的作者还有:柴泽楠、靳文佳、张晓明、江扬旺、康宇、宋继阳、吴廷勇、张恒、孙定隆、陈义勇、石依山。

在翻译的过程中,得到了张春雨先生的大力支持,在此表示真挚的感谢。

虽然我们力求完美,但时间紧迫和囿于知识所限,难免出现错误之处,欢迎广大读者批评指正。

李洋

201212月于北京

作者简介

Mark G. SobellSobell联合公司的总经理,该公司是一家专注于UNIXLinux教学、支持和客户软件开发的咨询公司。他拥有超过三十年的UNIXLinux系统使用经验,同时还是很多畅销书的作者。这些书中包括同时出自Prentice HallA Practical Guide to Linux® Commands, Editors, and Shell Programming, Second EditionA Practical Guide to Ubuntu Linux

媒体评论

“自从我处于教育环境中,我发现Sobell的书对在企业中管理Linux的人来说是切中目标的,并且非常有帮助。他的写作风格非常清晰。他构建的章节练习中的情景,我觉得是一个用户或管理员在现实世界中将会遇到的。一个IT/IS学生将发现这本书是对其知识的宝贵补充。大量的信息分布非常平衡,Sobell试图用简单的旁白和蜿蜒的散文形式来表现其内容。对在网络环境中管理Linux系统的,或运行Linux服务器的任何人,都是“必须拥有的”。 对转到Linux平台的、有经验的电脑用户,我也强烈推荐本书。”

— Mary Norbury

IT总监

芭芭拉戴维斯中心

位于丹佛的科罗拉多大学

发表在slashdot

“几年前当我在Cal Poly, San Luis Obispo, CA的大学时,我有机会使用您的UNIX书,我不得不说您的书是最好的!它们是操作系统理论和应用方面的高质量书籍。”

— Benton Chan

IS工程师

“这本书超出了我从所读的许多评论中累积起来的期望,即使其目标是FC2。我发现书中有些东西非常罕见:它不像阅读标准技术文本,它读起来更像是一个故事。阅读它有种快感,使我难以放下。我还能说什么呢?! :-)

— David Hopkins

业务流程架构师

“感谢您的工作和您写的书。只有真正的几本书可以帮助人们对管理不同的工作站变得更有效率。我们希望您会继续把我们对Linux / UNIX系统的了解带到一个新的水平。”

— Anton Petukhov

Mark Sobell写了一本接近权威的书。”

— Jeffrey Bianchine

倡导者、作家、记者

“这是一本优秀的参考书,非常适合Linux集群的系统管理员,或最近考虑安装稳定的LinuxPC所有者。不要因畏惧书的分量而放弃。Sobell尝试预测您的系统管理需求,然后尽可能地将其包容。”

— Wes Boudville

发明者

A Practical Guide to Red Hat Linux是一本非常杰出的书,谢谢Mark Sobell。”

— C. Pozrikidis.

圣地亚哥加州大学

“这本书是我发现的介绍Linux操作系统的最好概述……无论读者什么背景,它应该都是非常有益的、易于理解的:传统UNIX用户,新的Linux爱好者,甚至Windows用户。每个主题都提出了一个清晰、完整时尚且对读者所了解知识的极少假设……这本书作为参考是非常有用的,因为它包含70页带有非常好索引的术语表。”

— Cam Marshall

Marshall 信息服务有限公司

UNIX高级会员)

FRUUG用户组

科罗拉多州博尔德

“总而言之,如果你是一个新的Linux用户,并且你刚刚进入RH/Fedora世界,这是一本好书。目前还没有以这样的深度讨论了这么多不同主题的其他书籍”

— Eugerzia Loli-Queru

主编

OSNews.com

“这本书对想了解内容的任何人来说,都是一个非常有用的工具,并且真正开始把Linux的功能带入工作中。我发现手册页,特别令人沮丧的是,它们从来没有包括例子,而Sobell却概括得很清楚:命令做什么,然后给出了几种常见的、容易理解的例子,开始感觉自己的shell编程是一件轻而易举的事。就如Sobell的其他作品,这是简单、直接、易于阅读的。这是一本伟大的书,将在很长一段时间内留在我的案头书架上。”

— Ray Bartlett

旅行作家

“总的来说,我发现这本书是相当出色的,它已经在我的书架非常靠前的位置赢得了一席之地。它涵盖了Linux真正的内涵:命令行和实用程序,并且做得很好。它的强项是突出的例子、命令参考部分。强烈推荐给所有技能水平的Linux用户。Mark SobellPrenticeHall为这本杰出的书付出了很多努力!”

— Dan Clough

电子工程师和

Slackware Linux 用户

“完全不像大多数Linux的书籍,这本书避免使用图形用户界面,而是跳到对你友好的命令行功能来讨论任何主题。”

— Bjorn Tipling

软件工程师

ask.com

“这本书是我见过的、我读过的几十本Linux相关书籍中最好的与发行版无关的、基本的Linux参考书。发现这本书是一个真正的幸运。如果你想真正了解在命令行中如何做好事情,以及自由的类UNIX操作系统的真正的强大功能和灵活性,你会发现这本书是实现这一目标的最佳工具。”

— Chad Perrin

Tech Republic作家

“我目前拥有一本您的书,A Practical Guide to Linux。我相信这本书正如标题所说的,是一个最全面的、我读过的Linux实用指南。我认为对于我这样的新手,我会一遍又一遍地来阅读这本书。”

— Albert J. Nguyen

“谢谢你写了这本书来帮我摆脱Windows XP和从未接触的Windows Vista。这本书是伟大的,使我学习了很多新的概念和命令。Linux无疑变得更容易使用。”

— James Moritz

“我印象非常深刻的是,Mark Sobell可以以这样易于理解的方式介绍一个复杂的话题。他的关于命令的例子,为新手(甚至是高手)管理员如何在Linux上实现现实世界的任务提供了‘食谱’,是非常有用的。他是一个真正有灵感的技术作家!”

— George Vish II

高级教育顾问

惠普公司

“总的来说,我认为这是一本伟大的、全面的Ubuntu的书,它对所有技术水平的人都将是一个宝贵的资源。”

— ]ohn Dong

Ubuntu 论坛理事会成员

Backports 小组负责人

JumpStart部分真正提供了一个快速的、使问题清晰,并在以后能够使你进入书中细节的方法。”

— Scott Mann

Aztek Networks

“我如此热爱并使用本书来教课,它不只是关于UbuntuLinux的,而且还关于一般的计算机。它使用能够解释计算机应用的重要概念的好插图,它非常完整、非常好。”

— Nathan Eckenrode

纽约当地社区小组

Ubuntu以像酒精被禁止却迅速普及的速度获得了普及,很高兴看到一个著名作家写的一本最新和最伟大的版本。它不仅包含Ubuntu的具体信息,而且也涉及一般计算机的相关主题,这将帮助普通计算机用户更好地了解在后台发生了什么事情。伟大的工作,Mark!”

— Daniel R. Arfsten

Pro/ENGINEER 起草人/设计师

“我每天都读很多有关Linux的技术信息,但我很少对科技书籍留下深刻印象。我平时喜欢在线信息资源。Mark Sobell的书是一个值得注意的例外。内容写得很清楚,技术上准确、全面,实际上我非常享受阅读。”

— Matthew Miller

高级系统分析师/系统管理员

BU Linux 项目

资讯科技波士顿大学办公室

“这本书写得很好、很清晰,关于Linux用户的任何类型的综合信息,不管你第一次尝试Ubuntu,想知道它的一点信息,还是当你做一些像设置服务器这样更复杂的工作时,本书都会成为很好的参考书。这本书的价值远远超出其购买价,会成为你书架上的Linux部分的一本伟大的书。“

— Linc Fessenden

LinuxLink TechShow主持人

tllts.org

“笔者在诠释这样一个注重细节的操作系统方面做了很好的工作。我有广泛的UNIXWindows经验,本书在缩小LinuxWindowsUNIX之间的差距上做了非常出色的工作。不管是新用户还是有经验的用户,我都极力推荐本书。杰出的工作!”

— Mark Polczynski

资讯科技顾问

“当我刚开始使用Linux工作时,虽然只有短短十年左右,但比现在要多了几分困难……现在,新手在网络上的资源繁多,或如果他们倾向于使用Ubuntu开始,他们仅从MarkSobellA Practical Guide to Ubuntu Linux这一本书上,从字面上就能找到他们需要的任何内容。”

“我敢肯定,这听起来有点夸张。一个人需要知道每件事情吗?显然不是每件事情,但是这本书,篇幅略低于1200页,却覆盖得如此之多、如此之彻底,以至于漏下的内容所剩无几。从安装到管理、网络、安全、shell脚本、包管理和许多其他主题,书中应有尽有。GUI和命令行工具也都包括在内。真的没有任何浪费的空间或错误,只包含巨大的信息。在适当的时候会有屏幕截图,但它们不占用过多的空间。这本书是信息密集型的。”

— JR Peck

编辑

GeekBook.org

“我一直想跳到Linux,但没有胆量这样做,直到我在书店看到A Practical Guide to Red Hat

Linux这本书。”

— Carmine Stoffo

制药行业的机床和工艺设计

“我目前正在读A Practical Guide to Red Hat Linux一书,我终于理解了命令行的真正功能。我是Linux新手,这本书是个宝贝。”

— Juan Gonzalez

“总体来说,Mark G. SobellA Practical Guide to Ubuntu Linux一书提供了一个初学者到一个高效率的中级用户所需要的所有信息。UbuntuGutsy Gibbon发行版的Live DVD,使用户测试和驱动Linux很容易,且不影响他安装的操作系统。我毫不怀疑,你会认为这本书的钱花得值。”

— Ray Lodato

Slashdot 撰稿人

www.slashdot.org

前言

本书

无论你是一个最终用户还是系统管理员或两者都是,本书通过例子,阐述了如何最有效地使用FedoraRHELRed Hat Enterprise Linux)系统。本书共28章,涵盖了从安装Fedora/RHEL系统,了解其内部运作,到设置系统安全服务器的全部内容。

适合的读者

本书适合各个行业的读者。不需要你有编程经验,当然有一些使用通用计算机的经验会更好,例如WindowsMacintoshUNIX或其他Linux系统。本书适合以下读者:

• 使用Linux上课的学生

• 想要安装和/或运行Linux的家庭用户

• 使用Linux工作的专业人员

• 需要了解Linux及其工具的系统管理员,包括了解BashPerl脚本语言

• 学习Linux操作系统的计算机科学专业的学生

• 想要深入学习Linux的技术主管

优势

本书从Fedora/RHEL的安装开始,通过Fedora/RHEL的使用和个性化定制,让你广泛了解Linux的各个层面。不管你是什么背景,本书都会给你提供工作所需的知识。你将会从本书中了解如何使用Linux,并且今后几年这本书对你仍将有参考价值。

本版特色

本版本涵盖了许多主题,以帮助你使用Fedora/RHEL完成工作。

• 介绍Perl编程语言(第28章)。

• 7章的系统管理(第4部分)。

• 使用bash编程(第27章)。

• 第21章全面介绍LDAP

• 第16章全面介绍MySQL关系数据库。

• 第17章的一节介绍Cacti网络监控工具。

• 包含的新内容:第10章的IPv6

• 更新的章节反映了Fedora 15RHEL 6的新特性。

• 4大索引,让你更容易且快速找到所需的内容。这些索引定位表格(含有字母t的页码)、提供定义(斜体页码)并区分简要描述和详细描述(浅色字体和标准字体)。

◆ Jumpstart(内容速览)索引(参见1199页)列出了本书所有的JumpStart章节。这些章节可以帮你快速设置服务器和客户端。

◆ 文件树索引(参见1201页)以分层方式列出了本书提到的大多数文件。主索引也列出了这些文件。

◆ 工具索引(参见1205页)提供了本书提到的所有工具的位置。浅色字体页码表示工具的简要描述,而常规字体表示工具的详细描述。

◆ 修订后的主索引(参见1211页)更突出易用性。

重叠

如果你读过A Practical Guide to Linux® Commands, Editors, and Shell Programming, Second Edition一书,你会发现那本书和你现在正读的这本书之间有一些重叠。其中第1章、工具和文件系统的章节、附录中的正则表达式以及词汇表都非常相似,有关Bourne Again Shellbash)的三个章节和Perl章节也是如此。本书有而第二版没有的内容包括第2章、第3章(安装)、第4章、第8章(Fedora/RHELGUI)、第10章(网络)以及第4部分(系统管理)和第5部分(服务器)的所有章节和附录C(安全)。

区别

本书介绍了如何从图形界面和命令行(文本界面)使用Linux,而A Practical Guide to LinuxCommands, Editors, and Shell Programming, Second Edition一书则完全基于Linux命令行以及除此之外的Mac OS X。它包括了vimemacs编辑器的完整章节以及gawk模式处理语言、sed流编辑器和rsync安全复制工具章节。此外,它有一个命令参考章节,提供了LinuxMac OS X最重要的100个工具的应用示例,可以使用这些工具来解决一些问题而无须诉诸C编程。

本书特点

本书的设计和组织让你能在最短的时间内从中获得最多的知识。不必直接通过页面顺序逐页阅读本书,相反,如果你使用Linux还算顺手的话,可以把本书当做参考:在目录或索引中查找感兴趣的主题,并阅读它;或把本书当做Linux主题的目录册:翻阅页面,直到一个主题吸引住你的眼球。书中包含许多网站链接,在那里可以获得更多的信息:可以把互联网当做本书的延伸。

本书的组织结构具有以下特点:

• FedoraRed Hat Enterprise Linux:本书中的术语“Fedora/RHEL”指的是FedoraRed Hat Enterprise Linux两者。对于只适用其中一个操作系统的特性,使用这些标志来标示:(Fedora)或(RHEL)。

• 选读部分:当你准备深入研究时,选读部分可以让你阅读到不同级别的更难的内容。

• 注意框:强调容易出错的步骤,在你陷入困境之前给出指导。

• 提示框:强调节省时间的方法或是另外有趣的信息。

• 安全框:给出了更安全使用系统的注意事项。安全附录提供了系统安全性问题的快速指南。

• 实例:贯穿全书的概念通过实例加以阐述。

• 目标:每章开头列出本章目标和阅读本章后,你应该能够执行的重要任务清单。

• 本章小结:回顾每章的要点。

• 复习题:每章末尾都有复习题提供给需要的读者,可以进一步训练自己的技能。偶数题号的练习题的答案张贴在www.sobell.com网站上。

• 词汇表:定义了500多个经常遇到的术语。

• JumpStart(内容速览):涵盖服务器的每个章节包含的JumpStart部分可以使你在客户端使用和服务器设置方面迅速入门。一旦服务器启动并运行,可以试验和修改其配置,这些在每个章节的其余部分做了阐述。

• 查找软件、下载和安装:本书提供了在互联网上查找软件的资源。本书也阐述了如何使用yum下载和安装软件以及添加/删除软件窗口、BT下载和专门用于RHELRed Hat网络(RHN)。它详细介绍了如何使用软件更新窗口工具配置自动更新功能。

• GNU工具:这本书详细描述了一些重要的GNU工具,包括GNOME桌面、Nautilus文件浏览器、分区编辑器(包括partedpalimpsestgparted)、gzip压缩工具以及许多来自GNU项目的命令行工具。

• 在线文档:可以从本地系统、Fedora/RHEL网站以及互联网上的其他位置获取在线提供的帮助文档。

• 综合索引:多个综合索引可以帮助你方便快捷地找到主题。

本书包含的重点内容

本节提炼和总结了本书所涵盖的信息。此外,后面的“本书内容(细节)”小节介绍了每章涵盖的内容。目录部分提供了更多的细节。

安装

• 介绍如何从互联网下载FedoraISO映像,并刻录Fedora Live CDFedora安装DVD

• 帮助你规划系统的硬盘布局。包含对分区、分区表和挂载点的讨论,并协助你使用Disk DruidGNOME palimpsest 磁盘工具或者基于图形的gparted分区编辑器检查和分区硬盘。

• 阐述如何建立一个双引导系统,这样就可以在Windows系统上安装Fedora/RHEL系统并且可以启动任何一个操作系统。

• 讨论了如何引导到live Fedora会话,并从会话中安装Fedora

• 详细描述了如何使用Fedora/RHEL安装程序Anaconda,从DVD安装盘安装Fedora/RHEL

• 涵盖了Fedora/RHEL CD/DVD缺陷检测、引导命令行参数(引导选项)设置以及RAID阵列创建。

• 阐述了如何使用逻辑卷管理器(LVM2)设置、扩展和迁移逻辑卷,这在功能上与传统的磁盘分区类似。

使用Fedora/RHEL

介绍了GNOME桌面(GUI)以及阐述了如• 何使用桌面工具,包括面板、面板对象、主菜单、上下文菜单对象、工作区切换器、Nautilus文件浏览器和GNOME终端仿真器。

• 有三个章节包含Bourne Again Shellbash)内容,其中包括一整章的shell编程,这三章包含许多shell脚本例子。这些章节提供了清晰的说明和丰富的例子,包括如何使用bash通过命令行执行日常工作以及如何编写shell脚本。

• 阐述了基于文本(命令行)的界面,并介绍了30多个命令行工具。

• 提供了vim文本编辑器的教程。

• 涵盖了网络类型、网络协议(包括IPv6)和网络工具。

• 阐述了主机名、IP地址和子网,并探讨如何使用hostdig查询互联网上的域名和IP地址。

• 涵盖了分布式计算和客户端/服务器模式。

• 阐述了如何使用ACL(访问控制列表)调整用户的访问权限。

CentOS

• 描述了CentOS操作系统与RHEL的良好兼容性。 CentOSwww.centos.org)是一个免费的Linux发行版,比Fedora历史更悠久、更稳定,但在技术支持方面比不上RHEL。系统管理

• 阐述如何使用Fedora/RHEL图形和文本(命令行)工具来配置显示参数、DNSNFSSambaApache、防火墙、网络接口以及更多。还可以使用这些工具来添加用户以及管理本地和远程打印机。

• 描述如何使用su切换到root权限(成为超级用户)以及在最高权限中工作的优点和风险。

• 详细描述了如何使用sudo使特定的用户具有root权限以及通过编辑sudoers配置文件来自定义sudo的工作方式。

• 描述如何使用以下工具下载和安装软件,以保持系统及其软件最新。

◆ 如果你没有连接互联网,则可以使用Software Update Preferences(软件更新首选项)窗口工具,将本书提供的软件库DVD设置为软件源。然后,可以利用Fedora/RHEL提供的这个软件包仓库来安装软件。

◆ 取决于你如何在软件更新窗口中设置更新,Software Update(软件更新)窗口显示在桌面上,并告诉你软件更新何时可用。可以从软件更新窗口下载并安装更新。

◆ Add/Remove Software(添加/删除软件)窗口提供了一个简便的方法,以便选择、下载和安装各种各样的软件包。

◆ yum工具从互联网上下载并安装软件包,保持系统最新以及解决处理软件包时产生的依赖关系。

◆ 在分发大量数据资料时,BitTorrent是一个不错的选择,例如Fedora/RHEL安装DVDCD。使用BitTorrent下载文件的人越多,它的下载速度就越快。

• 涵盖了一些图形系统管理工具,包括GNOME主菜单提供的许多工具。

• 阐述系统的运作原理,包括引导过程、init脚本、救援(单用户)模式和多用户模式以及系统崩溃时要采取的措施。

• 详细介绍了新的systemd init daemon,它取代了UpstartSystem V init守护进程(Fedora)。

• 描述如何使用和编写新的Upstart init daemon,它取代了System V init守护进程(RHEL)。

• 阐述如何设置和使用Cacti网络监控工具来图示系统和网络信息,还包括如何安装和设置LAMPLinuxApacheMySQLPHP)软件栈。

• 提供安装和设置MySQL关系数据库的说明。

• 描述了文件、目录和文件系统,包括文件类型、fstab(文件系统表)以及自动挂载的文件系统,并阐述如何调整和检查文件系统的完整性。

• 涵盖了备份工具,包括tarcpio

• 描述了压缩/归档工具,包括gzipbzip2compresszip

• 阐述如何定制和构建Linux内核。

安全

• 使用ssh(安全的shell)、vsftpd(安全的FTP服务器)、ApacheWeb服务器)、iptables(防火墙)以及更多的工具助你管理基本的系统安全性问题。

• 描述如何使用基于图形的system-config-firewall工具保护系统。

• 提供有关使用iptables通过LAN共享Internet连接以及建立高级防火墙的说明。

• 提供了一整节的SELinux(安全增强型Linux)内容,包括使用system-configselinux配置SELinux的说明。

• 描述了如何设置chroot jail以帮助保护服务器系统。

• 阐述如何使用TCP wrappers来控制谁可以访问服务器。

客户端和服务器

• 阐述如何设置和使用最常见的Linux服务器,每一章对应一种服务器:ApacheSambaOpenSSHsendmailDNSNFSFTPsystem-config-firewalliptables以及NIS/LDAP

• 描述如何设置CUPS打印机服务器。

• 阐述如何设置和使用MySQL关系型数据库。

• 描述如何设置和使用DHCP服务器。

编程

• 提供了一章Perl编程语言介绍以及一整章使用bash进行shell编程的内容。

本书内容(细节)

1

1章介绍了Linux的简短历史,并阐述了一些最前沿的操作系统特性。其中“本书约定”一节详细说明了书中使用的术语和字样。

1部分

1部分“安装Fedora/RHEL Linux”介绍了如何安装Fedora/RHEL Linux系统。第2章概要介绍了Fedora/RHEL Linux的安装过程,包括硬件要求、下载并刻录CDDVD以及规划硬盘分区。第3章给出一步一步安装FedoraRHEL的指南,涵盖了从CD/DVD和从live 会话(Fedora)进行的安装。

2部分

2部分“Fedora/RHEL入门”让你熟悉Fedora/RHEL,涵盖了登录、GUI、工具、文件系统以及shell。第4章介绍了桌面功能,包括面板和主菜单;阐述如何使用Nautilus文件浏览器来管理文件、运行程序以及连接到FTPHTTP服务器;涵盖文档查找、登录问题处理和窗口管理器使用;提供一些在哪里可以找到文档的建议,包括手册、教程、软件说明和HOWTO文档。第5章介绍了shell命令行界面,描述了30多个有用的工具,并提供了vim文本编辑器的教程。第6章讨论了Linux分层文件系统,涵盖文件、文件名、路径名、目录使用、访问权限以及硬链接和符号链接。第7章介绍了Bourne Again Shellbash),并讨论了命令行参数和选项、输入和输出重定向命令、在后台运行程序以及使用shell生成和扩展文件名。有经验的用户可能要略过第2部分提示 

如果之前用过UNIXLinux系统,你可能想要略过或跳过第2部分的部分或全部章节。两个不应该跳过的小节是:“本书约定”(参见英文原书页码第18页),阐述了本书使用的排版和布局约定;“在哪里可以找到文档”(参见英文原书页码第125页),指出LinuxFedora/RHEL文档的本地和远程来源。

3部分

3部分“Fedora/RHEL深入挖掘”详述了系统使用的更多细节。第8章讨论了GUI(桌面)和远程运行图形化程序并在本地显示界面。GNOME一节介绍了几种GNOME工具并深入讲解了Nautilus文件浏览器。第9章扩展了第7章涵盖的bash内容,阐述了如何重定向错误输出、避免覆盖文件以及使用作业控制、进程、启动文件、重要的shell内置命令、参数、shell变量和别名。第10章阐述了网络、网络安全以及互联网,并讨论了网络类型、子网、协议、地址、主机名以及各种网络工具。一个新的小节涵盖了更重要的IPv6协议。“分布式计算”一节描述了客户端/服务器模式和一些可以在网络上使用的服务器。(客户端和服务器的详细设置和使用保留至第5部分)

4部分

4部分涵盖了系统管理。第11章讨论核心概念,如susudo的使用;root权限的使用;SELinux(安全增强型Linux);系统运行,包括对UpstartRHEL)和systemdFedorainit守护进程(Fedora)的讨论;chroot jailTCP wrapper;服务器设置的常规信息;DHCPPAM。第12章阐述了Linux文件系统,详细讲解了文件类型,包括特殊文件和设备文件;使用fsck验证文件系统的完整性和修复文件系统以及使用tune2fs更改文件系统参数。第13章,阐述了如何使用互联网下载和安装软件以保持系统最新,包括一些使用yum执行这些任务的例子。它还涵盖了RPM软件打包系统和rpm工具的使用。最后,阐述了如何使用BitTorrent从命令行中下载文件。第14章阐述了如何设置CUPS打印系统,以便可以在本地和远程系统上进行打印。第15章详细介绍了Linux内核的定制和构建。第16章涵盖了其他管理任务,包括设置用户账户、备份文件、调度自动化任务、跟踪磁盘使用情况、解决一般问题以及设置MySQL关系数据库。第17章阐述了如何设置局域网(LAN),包括硬件(包含无线)和软件配置以及如何设置Cacti进行网络监控。

5部分

5部分详细讲解了服务器的设置和运行以及如何使用客户端连接这些服务器。这些章节的适当位置包含了JumpStart部分,当使用客户端或进行服务器设置时,JumpStart可以让你迅速入门。第5部分的章节涵盖以下客户端/服务器:

• OpenSSH——设置OpenSSH服务器以及使用sshscpsftp安全地进行互联网通信。

• FTP——设置安全的FTP服务器vsftpd和使用几种FTP客户端与服务器交换文件。

• Email——配置sendmail和使用WebmailPOP3IMAP检索电子邮件;使用SpamAssassin来抵制垃圾邮件。

• NISLDAP——设置NIS以方便局域网系统管理,设置LDAP以维护数据库。

• NFS——在网络上的各个系统之间共享文件。

• Samba——在WindowsLinux系统之间共享文件和打印机。

• DNS/BIND——设置域名服务器,以便让互联网上的其他系统获悉其要连接的本地系统的名称和IP地址。

• system-config-firewall和 iptables——设置防火墙以保护本地系统以及在局域网上共享单个Internet连接。

• Apache——设置HTTP服务器,用来提供网页服务。本章包括提出的很多建议。本章还包括一些增强Apache安全性的建议。

6部分

6部分涵盖了两个重要的编程工具,这两个工具广泛应用在Fedora/RHEL系统管理和通用编程领域。第27章继续第9章的内容,更深入地探讨了使用bash进行shell编程及其更丰富的例子。第28章介绍了流行的、功能丰富的Perl编程语言,包括正则表达式和文件处理。第7部分

7部分附录包括正则表达式、有用的网站、系统安全和自由软件。这部分还包括一个丰富的词汇表再加上500多项的JumpStart索引、文件树索引、工具索引和主索引。

补充

作者的主页(www.sobell.com)包含一些较长程序的下载列表,以及许多有趣且有用的Linux网站地址,还有本书的更正列表和偶数序号练习题的答案,并向读者征求对本书的更正、意见和建议。

致谢

首先,我要感谢Prentice Hall出版社的总编辑Mark L. Taub,正是他的鼓励和支持才使这个项目度过了最艰难的岁月。Mark是我30年著书历程中唯一一个全程使用书中工具的编辑。因为Mark家中电脑上运行着Linux系统,因此写这本书时可以与我分享经验。Mark,你的意见和指导是非常宝贵的,没有你的帮助,也就不会有本书的存在。谢谢你,Mark T

Prentice Hall出版社的制作人进行了出色的合作:制作经理Julie Nahil在本书制作过程提

供了全方位的服务,为我提供夜以继日的帮助并使一切按正轨运行;总编辑John Fuller为本书拓展了视野。感谢Bob CampbellLinda Seifert,正是他们的逐页校对,才使笔者留下错误得到修正。

还要感谢促成本书的Prentice Hall出版社的其他职员,特别是编辑助理Kim Boedigheimer,他参与了与本书出版相关的许多细节;公关人员Heather Fox、市场营销经理StephaneNakib、媒体设计师Dan Scherf、高级索引者Cheryl Lenser、设计经理Sandra Schroeder、封面设计师ChutiPrasertsith以及在幕后为本书工作的每个人。

Lauber系统解决方案公司的Susan Lauber也为本书倾注了很多心血。她审查了本书草稿的许多章节,提供了贯穿全书的见解、技巧和修正。她还帮助审阅了书中的目标和练习。她在Fedora/RHEL系统知识方面的深度和广度给我留下了非常深刻的印象。

我还要感谢免费在线电脑辞典(FOLDOC)的编辑Denis HoweDenis非常慷慨地允许我使用他编纂的条目。请务必访问www.foldoc.org站点来查阅这本字典。

我要大大感谢阅读过本书草稿的人们,正是他们提出的意见使本书的部分章节更加清晰和有条理:系统资深设计和管理员Doug Hughes对系统管理章节提供了很大支持;谷歌网站可靠性工程师Richard WoodburyIPv6方面的学识为本书提供了非常宝贵的建议;Intrepidus公司的Max SobellRed Hat公司的Lennart Poettering;惠普公司高级教育顾问George Vish II;波士顿大学信息技术办公室的高级系统分析员/系统管理员Matthew MillerGarth SnyderNathanHandlerAnne Arundel社区学院名誉教授Dick SeabrookAudacious软件公司的Chris KarrITT技术学院的讲师Scott McCrea

还要感谢以下为我先前Linux书籍提供帮助的人们,这些书籍为本书提供了基础:论坛理事会成员,Ubuntu开发者John DongLand the Tech Job You Love: Why Skill and Luck Are NotEnough一书的作者Andy LesterUbuntu开发经理和桌面小组负责人Scott James RemnantSwansea大学的David ChisnallAztek网络的Scott MannMansueto风险投资的ThomasAchtemichuk;专家/工程师/设计师Daniel R. Arfsten;惠普教育服务高级教育顾问Chris Cooper;旧金山州立大学信息系统副教授Sameer VermaPalomar学院和程序员协会的Valerie ChauJames KratzerSean McAllister;纽约Ubuntu社区团队的Nathan EckenrodeChrister EdwardsNicolas MerlineMichael PriceUbuntu社区和论坛理事会成员Mike BasingerUbuntu论坛工作人员Joe BarkerSystemateka公司的James StockfordBook OvenStephanieTroethDoug SheppardOpenGeoSolutionsIT总监Bryan Helvey以及FlintBaker学院的Vann Scott。此外,感谢Fedora项目的Jesse Keating;软件工程师和KDE开发人员Carsten PfeifferXimianAaron WeberCritterDesign软件开发人员Cristof Falk;普林斯顿大学计算机科学系的Steve Elgersma;明尼苏达大学的Scott Dier;计算机网络工程的Robert Haskins;哈佛大学的Lars Kellogg-StedmanPrivateer系统首席系统顾问Jim A. LolaOpen Source Initiative创始人之一Eric S. RaymondScott Mann;独立计算机顾问Randall Lechlitner;蒙哥马利县社区学院计算机科学讲师Jason WertzSolano社区学院的Justin Howell;快速学习中心的Ed SawickiDavid Mercer;作为倡导者、作家和记者的Jeffrey BianchineJohn Kennedy以及星光技术服务公司的Jim Dennis

还要感谢Puryear信息技术公司的Dustin Puryear;独立顾问Gabor LiptakiPost首席技术官Bart SchaeferLinux在线的Web开发人员Michael J. JordanSuperAnt.com所有者Steven Gibson

安全软件公司的创始人和首席科学家John Viega;环球电讯公司互联网安全分析师K. Rachael TreuK & S Pritchard公司的Kara PritchardCapital One财务公司的Glen WileyLook-smart 高级软件工程师KarelBalounMatthew Whitworth;诺基亚系统公司的Dameon D. Welch- Abernathy;顾问Josh SimonStan Isaacs以及Herrin软件开发公司的副总裁Eric H. Herrin II博士。

更要感谢顾问Lorraine CallahanSteve WamplerGraburn技术公司的Ronald Hiller;韦恩州立大学的Charles A. PlaterBob PalowodaSun Microsystems公司的Tom Bialaski;网络联盟TIS实验室的Roger HartmullerKaowen LiuAndy SpitzerRik SchneiderJesse St. LaurentSteve BellenotRay W. HiltbrandJennifer WithamGert-Jan Hagenaars;以及Casper Dik

本书基于我之前的两本UNIX书籍:UNIX System V: A Practical GuideA Practical Guide to the UNIX System。在此要感谢审阅这些书的人们:Pat ParseghianKathleen Hemenway博士;Brian LaRoseClark Atlanta大学的Byron A. JeffCharles Stross;朗讯科技公司的Jeff GitlinKurt Hockenbury;英特尔以色列公司的Maury BachPeter H. Salus;宾夕法尼亚大学的Rahul Dave;智能算法解决方案公司的Sean Walton;计算机科学公司的Tim SegallDeAnza学院的BehrouzForouzan;弗吉尼亚理工学院和州立大学的Mike Keenan;俄勒冈州立大学的Mike Johnson;马里兰大学的Jandelyn Plane;佐治亚理工学院的Arnold RobbinsSathisMenon;弗吉尼亚理工学院和州立大学的Cliff Shaffer;以及加州州立大学Northridge分校的Steven Stepanek

仍然要感谢为我早期版本的UNIX书籍提供帮助的人们。特别感谢向我介绍UNIX系统的Roger SipplLaura KingRoy Harrington。我的母亲Helen Sobell博士也为本书的原始手稿提供了宝贵的意见。此外,感谢Isaac RabinovitchRaphael Finkel教授、Randolph Bentson教授、Bob GreenbergUdo Pooch教授、Judy RossRobert Veroff博士、Mike Denny博士、Joe DiMartinoJohn Mashey博士、Diane SchulzRobert JungCharles WhitakerDon CragunBrian DoughertyRobert Fish博士、Guy HarrisPing LiaoGary LindgrenJarrett Rosenberg博士、Peter Smith博士、Bill WeberMike BianchiScooter MorrisClarke EcholsOliver GrillmeyerDavid Korn博士、Scott Weikart博士以及Richard Curtis博士。

我为本书的任何错误和遗漏负责。如果你找到一个问题或仅仅是一个建议,都请发邮件给我:mgs@sobell.com,我会在下次印刷时修正它。我的主页www.sobell.com包含一个错误列表和发现这些错误的人员光荣榜,主页中还提供了本书较长脚本的副本,并链接了互联网上一些有趣的Linux网页。你还可以在twitter.com/marksobell上与我交互。

Mark G. Sobell

美国加利福尼亚州旧金山