Linux教程(第3版)pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:Linux教程(第3版)pdf/doc/txt格式电子书下载
推荐语:
作者:孟庆昌,牛欣源
出版社:电子工业出版社
出版时间:2011-07-01
书籍编号:30466592
ISBN:9787121136207
正文语种:中文
字数:181582
版次:3
所属分类:教材教辅-大学
版权信息
书名:Linux教程(第3版)
作者:孟庆昌 牛欣源
ISBN:9787121136207
版权所有 · 侵权必究
前言
21世纪是一个信息时代。信息处理技术、网络技术、生命科学与工程等最新科学技术得到了迅猛发展,给计算机软件学科带来了强有力的推动,同时提出了新的更高的要求。操作系统作为所有软件的基础平台,历来受到业界的广泛重视。如今,在不断涌现的新的操作系统中,在全世界得到广泛关注和迅速发展的当属Linux操作系统。以Linux为代表的开源软件是当今举世瞩目的、发展最快和应用最广的主流软件之一。各国政府对Linux的开发和应用给予很大关注,全球软件业和厂商都以极大热情和资金投入Linux的开发。现在,学习和应用Linux成为众多计算机用户和学生的首选。编写和出版《Linux教程》正是为了适应这种社会需求。
本书是普通高等教育“十一五”国家级规划教材和北京高等教育精品教材,在《Linux教程》(第2版)基础上认真修订而成。修订时,我们一方面总结教学中的经验和体会,依据Linux最新发展技术,汇集众多师生的教学反馈意见,吸纳社会热心人士的建议;另一方面,参考了兄弟院校的教学大纲和教学经验,分析了国内对Linux人才的需求,汲取当前众多Linux书籍的精华。与第2版相比,本次修订对内容做了必要的调整和完善,增添的内容主要包括:
(1)以红旗Linux桌面版6.0为蓝本,替代第2版桌面版4.1的相关内容。
(2)在系统安装一节,增加了利用VMWare进行虚拟机安装的介绍。
(3)在常用命令一章,增加了文件压缩和解压缩命令的介绍。
(4)在shell程序设计一章,增加了一个稍大的shell脚本示例。
(5)在Linux环境编程一章,增加了一个利用C语言、系统调用和shell命令综合编程的示例。
本书全面、系统、由浅入深地介绍了Linux系统的概念、使用、原理、开发和管理等方面的内容。通过大量应用实例,循序渐进地引导读者学习Linux系统。
本书内容分为4个部分:
第一部分基本知识,包括概述、系统安装和一般配置,以及vi和常用命令的使用。
第二部分系统结构,即Linux内核简介。
第三部分Linux程序设计,包括shell编程、常用开发工具和高级编程(系统调用和库函数的应用)。
第四部分系统管理,包括常规系统管理和网络管理。
全书共分10章:
第1章 Linux系统概述,给出有关操作系统的一些概念和术语,并对Linux操作系统的功能、版本、特点,以及Linux系统安装和图形环境进行较全面的介绍。
第2章 Linux常用命令,介绍如何在安全的环境中执行系统命令,包括有关文件、目录、文件系统、进程等概念,如何使用相应的命令对文件、目录、进程等进行管理,了解遇到问题时,如何找到帮助信息等。
第3章 文本编辑,介绍Linux系统上常用的文本编辑器vi,包括如何使用vi编辑器建立、编辑、显示及加工处理文本文件。
第4章 Linux shell程序设计,主要介绍Linux shell(默认的是bash)的语法结构、变量定义及赋值引用、标点符号、控制语句、函数、内置命令及shell程序调试等。
第5章 Linux内核简介,介绍Linux核心部分,即Linux操作系统的功能和实现,包括Linux核心的一般结构,进程的概念、进程的调度和进程通信,文件系统的构成和管理,内存管理,设备驱动,以及中断处理等。
第6章 常用开发工具,介绍在Linux环境下C语言编译系统、gdb调试工具和程序维护工具make的功能、选项和应用。
第7章 Linux环境编程,简要介绍系统调用和库函数的概念,以及在Linux环境下如何利用系统调用和库函数进行编程。
第8章 Linux系统管理,对Linux系统管理的各个方面进行较为全面的介绍,包括与Linux系统管理相关的计算机术语,有关用户和工作组、文件系统、系统后备、系统安全等方面的基本概念及相关的管理方法,有关Linux系统性能优化的基本概念与技巧等。
第9章 网络应用及管理,对Linux系统的网络应用、网络管理、网络安全等内容进行较全面的介绍,包括网络配置的基本知识,网络文件系统的基本功能和使用方法,网络管理的基本方法,网络安全问题及对策等。
第10章 嵌入式操作系统简介,简要介绍嵌入式操作系统概念,实时内核与实现,并以(CLinux为例介绍具体实现。
本书所给命令中,带下划线的字母或英文单词表示变量,具体使用该命令时,应该用适当参数替换。
各位老师在使用本书授课时,可根据本校实际情况,在学时及内容安排上进行适当取舍。下面列出的授课总学时与课时分配建议是我们多年的教学总结,仅供参考。
学时分配表(建议)

为强化本课程的实验环节,本书附录A提供了实验大纲,供教师和学生参考。
为方便教师授课,本书提供电子教案,可以从华信教育资源网http://www.hxedu.com.cn免费注册下载。任课教师可以依据本校教学大纲的要求对它进行增删。
在本书编写过程中曾得到多位同事、学生和出版社编辑的大力支持和帮助,在此表示衷心感谢。
本书主要由孟庆昌、牛欣源编写,本次修订中参加编写、整理工作的还有刘振英、马鸣远、唐伟杰、孟欣、李强等。因编者水平有限,加上时间紧迫,Linux技术发展迅速,故书中难免存在疏漏、欠妥和错误之处,恳请广大读者批评指正,在此表示感谢。让我们共同努力,促进我国软件产业的迅速发展。
编著者
第1章 Linux系统概述
Linux是一种广泛使用的类UNIX操作系统,它不仅可以在Intel,AMD和Cyrix系列个人计算机上运行,也可以运行在DEC Alpha,SUN SPARC等许多工作站上。
Linux是真正的多用户、多任务操作系统,它继承了UNIX系统的主要特征,具有强大的信息处理功能,特别在Internet和Intranet的应用中占有明显优势。
本章首先介绍Linux操作系统的功能、版本和特点,然后介绍Linux系统安装和图形环境。在学习完本章之后,应能掌握以下知识:
● 与操作系统有关的计算机术语
● 了解操作系统的基本功能
● 了解Linux操作系统的历史、现状及特点
● 了解Linux系统的安装过程
● 了解Linux图形环境的概念和组成
1.1 计算机基础知识
一个完整的计算机系统是由硬件和软件两大部分组成的。了解计算机的基本概念及术语,对于学习计算机知识,增强应用计算机技术的能力,提高日常工作及生活的效率等方面都有重要作用。
1.1.1 硬件
通常,硬件是指计算机物理装置本身,它是计算机系统的物质基础。硬件决定了计算机本身功能的强弱。影响计算机系统功能的主要硬件资源如下。
(1)中央处理器(CPU):如Intel 80x86系列,包括i386,i486及Pentium处理器等。
(2)内存:随机存取存储器(RAM)。
(3)存储设备:硬盘、CD ROM、软盘及磁带。
(4)输入/输出(I/O)设备:显示器、终端、鼠标、键盘、调制解调器及其他外设。
硬件的基本构成如图1.1所示。
图1.1 硬件的基本构成
1.1.2 软件
软件是相对硬件而言的,它是与数据处理系统操作有关的计算机程序和相关数据等的总称。
(1)程序是计算机完成一项任务的指令的集合。程序既可以是一些由特定计算机才能理解的命令(如汇编语言程序),也可以是通用的应用程序(如C语言程序)。它们可以完成一系列工作,如文字处理及数据库管理等。
(2)数据是由程序使用或生成的不同类型的信息。各种程序在输入和输出过程中都需要数据。具体来说,数据可以是字母、数字、文档、报表、数据库、图形、声音、图像等。
图1.2 计算机系统的基本结构
硬件是软件建立与活动的基础,软件是对硬件功能的扩充。
计算机系统的基本结构如图1.2所示。
在一个应用系统中,各种软件都处于不同的层次,互为基础,这些软件共同为用户提供一系列服务。
按照所起的作用和需要的运行环境,软件通常可分为三大类,即系统软件、应用软件和支撑软件。软件的基本构成如图1.3所示。
图1.3 软件的基本构成
系统软件包括操作系统、编译程序、汇编程序、数据库管理系统、网络软件等。这些软件对计算机系统的资源进行控制、管理,并为用户的应用和其他程序的运行提供服务。
支撑软件是辅助软件技术人员从事软件开发和项目管理人员进行项目管理工作的软件,如各种编辑程序、查错程序、项目管理程序等,所以又称为工具软件。利用支撑软件可以提高软件生产率,改善软件产品质量。
应用软件是为解决某一类应用需要或某个特定问题而设计的程序,如制图软件、财务软件等。这是范围很广的一类软件。
应用软件完全按用户需求进行裁减,并提供用户直接使用的接口。应用软件与系统软件相结合,可以让用户充分利用计算机为他们带来的便利。
应用软件可以是一个很大的,甚至是一组计算机程序,它为计算机用户提供各种服务。通常,应用软件由第三方厂商开发,并与计算机系统分开销售。
具体来说,目前广泛流行的文字处理软件、制表软件、数据库应用系统、制图软件、桌面出版系统等都属于应用软件。
1.2 操作系统的功能
操作系统是用户与计算机硬件之间的界面,它是控制、管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合)。从图1.2可以看出,操作系统是裸机(计算机硬件)之上的第1层软件,是其他所有软件运行的工作平台。它的基本职能是控制和管理系统内各种资源,提供众多服务,方便用户使用。
理解操作系统的定义,可帮助用户更好地利用它的各种功能。Linux系统把计算机系统中的硬件资源和软件资源有机地结合在一起,从而提供丰富的功能,包括:控制硬件,管理资源,提供用户接口,处理输入/输出,监控系统,通信。
1.2.1 硬件控制
操作系统控制计算机硬件的运行,与硬件交换信息,并协调各硬件的动作。这样,用户可以通过应用程序和其他程序来访问外部设备,而不必了解硬件设备的具体特性。这种设备无关性对于软件的移植是非常重要的。
1.2.2 资源管理
在实际应用中,Linux系统支持多用户共享计算机系统的资源。这些用户往往要同时完成多项任务,而各个任务又有不同的目标。例如,有的用户进行文字输入,有的进行程序调试,还有的进行数据库查询,等等。具体来说,多任务处理能力允许用户在同一时间运行多个不同的程序,保证多个进程共享CPU和内存资源,提高用户的工作效率和生产能力。而多用户支持功能可利用一台计算机支持众多用户和共享昂贵的资源,可获得更高的性能价格比,而且与单用户机器构成的网络相比,更容易维护。
1.2.3 用户接口
用户接口定义了用户与计算机交互作用的方式。Linux操作系统提供4种不同的用户接口。
1.命令行接口
命令行是为具有操作系统使用经验,熟悉所用命令和系统结构的人员设计的。功能强大,使用方便的命令行是UNIX/Linux系统的一个显著特征。支持命令行的系统程序是命令解释程序。它的主要功能是接收用户输入的命令,然后予以解释并执行。
在命令行下,系统提示用户利用键盘输入命令,每次一行。例如:
$ date
该命令显示系统当前的日期和时间。其中,“$”是系统提示符(由字符$和一个空格组成)。用户可以修改提示符,详见4.6.8节。
在UNIX/Linux系统中,通常将命令解释程序称为shell。各种Linux环境下都安装了多种shell,这是由历史原因造成的。这些shell由不同的人编写并得到一部分用户青睐,各有其优势,最常用的几种是Bourne shell(sh),C shell(csh),Bourne Again shell(bash)和Korn shell(ksh)。红旗Linux的默认shell是bash。
bash是Bourne Again shell的缩写,其作者是Brain Fox 和Chet Ramey,它是Rad Hat Linux的默认shell。
bash shell与Bourne shell(UNIX下最常见的shell)是向下兼容的,并且融合了许多其他shell的好的特征,是一种功能全面的shell。另外,bash还有很多自己的特色,例如,可以使用方向键查阅以往的命令,对命令进行编辑等。如果忘记命令名,还可以向系统求助,使用命令补齐功能等。另外,bash在 shell 编程方面也相当优秀。
使用shell时,是在一个包含环境变量的环境下运行的,如提示符。这些环境变量是在起始注册目录和/etc目录的各种资源文件中定义的。
命令行解释程序界面如图1.4所示(其中,“|”表示光标位置)。
图1.4 命令行解释程序界面
2.菜单
菜单最初是专为初学者或者那些只需要使用操作系统的一个功能子集的用户设计的。菜单为用户提供一些使用指导,从而方便用户的使用。菜单的主要特征如下:
① 菜单中列出可能发生的活动,用户从菜单中进行选择,就相当于发出特定的命令,而无须使用很多命令。
② 菜单通常采用多级结构,沿着菜单逐级打开,用户的选择范围逐步缩小,从而使选择变得容易。
③ 为了加快访问速度,用户可以使用键盘及附加的小键盘和功能键来浏览菜单并进行选择。
④ 菜单界面操作快捷,使用方便,但应用范围受到限制。
红旗Linux系统提供字符环境中文界面,所有菜单实现中文化,便于国内用户的学习和使用。如图1.5所示是红旗Linux桌面版6.0系统主菜单示例。
3.图形用户接口
无论是初学者还是有经验的用户,都可以使用图形用户接口。图形用户接口不仅可以提供不同风格的菜单,还可以根据个人的喜好,很容易地配置视图布局和活动。
图形用户接口可以让用户以三种方式与计算机交互作用:
① 通过形象化的图标浏览系统状况。
② 用鼠标点击方式直接操纵屏幕上的图标,从而发出控制命令。
③ 提供与图形系统相关的视窗环境,使用户可以从多个视窗观察系统,能同时完成几个任务。
红旗Linux预装炎黄中文平台和方正TrueType字库,提供字符界面中文环境和X Window界面中文环境,中西文兼容,并能够实现TrueType的显示和打印功能。
4.程序接口
程序接口也称为系统调用接口。用户在自己的C程序中使用系统调用,从而获得系统提供的更基层的服务。
系统调用是操作系统内核与用户程序、应用程序之间的接口。在UNIX/Linux系统中,系统调用以C函数的形式出现。例如:
fd=open(\"file1.c\",2);
图1.5 红旗Linux的主菜单示例
其中,open是系统调用,它根据模式值2(允许读、写)打开文件file1.c。
所有内核之外的程序都必须经由系统调用才能获得操作系统的服务。系统调用只能在C程序中使用,不能作为命令在终端上执行。由于系统调用能直接进入内核执行,所以其执行效率很高。在不同系统中,系统调用的数目有差别。
1.2.4 输入和输出处理
操作系统加载和运行的程序往往需要输入数据,并产生输出结果。输入可能来自键盘、鼠标或者Modem,而输出可能送往主控台、终端屏幕、打印机或者Modem。
操作系统把用户的输入加工成程序可识别的形式,并把程序的输出转换成用户能理解的形式。
1.2.5 系统监控
在使用计算机系统的过程中,系统资源要不断地被分配出去使用,又再次被释放回收。有时,同时会有多个用户请求使用同样的资源。操作系统必须监控这种活动,解决资源使用过程中的冲突,保证这些资源最后能被系统再次利用。UNIX/Linux系统通常采用以下办法来实现这一目标:
① 通过记录和文件加锁,保证数据的完整性。
② 利用调度进程和审计系统。
③ 当系统出现错误时,提供错误诊断信息。
④ 终止运行不正常的进程,甚至在最坏的情况下停止系统。
1.2.6 通信
在现代计算环境中,用户彼此间进行通信是必不可少的。操作系统必须提供这种通信软件或支持用户通信的软件。
① Linux系统提供UUCP(UNIX-to-UNIX Copy)软件,可以支持Modem设备,允许用户通过电话线来访问数据。这种方式也同样支持电子邮件和传真(FAX)传递。
② Linux系统支持网络系统,让用户可以共享其他计算机上的资源。Linux为用户提供了配置WWW服务器、邮件服务器、DNS服务器、FTP服务器、PPP等网络功能的图形化配置工具。使用这些工具,用户可以简便、快捷地配置自己的网络。
1.3 Linux系统的历史、现状和特点
据说,1997年夏在制作电影《泰坦尼克号》的过程中共动用了160台Alpha图形工作站,其中有105台运行的是Linux操作系统。然而,Linux还是一种很年轻的操作系统,从1991年诞生至今,刚满20年。但是它的发展和应用却异常迅猛,成为操作系统领域中一支重要的生力军。可以说,它是一个诞生于网络、成长于网络且成熟于网络的操作系统。
1.3.1 Linux的历史
1984年,曾是Bill Gates(比尔·盖茨)哈佛大学同学的Richard Stallman组织开发了一个完全基于自由软件的软件体系计划GNU(GNU是GNU is Not UNIX的递归缩写),并且拟定了一份通用公共许可证(General Public License,GPL)。GPL保证任何人都有共享和修改自由软件的自由,任何人都有权取得、修改和重新发布自由软件的源代码,并且规定在不增加附加费用的条件下得到源代码(基本发行费用除外)。这一规定保证了自由软件总体费用是低的,在使用Internet的情况下则是免费的。
在20世纪80年代,Andrew S.Tanenbaum教授为了满足教学的需要,自行设计了一个微型UNIX操作系统——MINIX。在此基础上,1991年,芬兰赫尔辛基大学的学生Linus Torvalds在Intel 386个人计算机上开发了Linux核心,并利用Internet发布了源代码,从而创建了Linux操作系统。之后,许多系统软件设计专家共同对它进行改进和提高。到现在为止,Linux已成为具有全部UNIX特征、与POSIX兼容的操作系统。近年来,Linux在国际上发展迅速,并且得到包括IBM,COMPAQ,HP,Oracle,Sybase,Informix等许多软硬件公司的支持。它们提供技术支持,开发Linux的应用软件,将Linux系统的应用推向各个领域,并为它进入大型企业Intranet的应用领域奠定了基础。
Linux成功的意义不仅在于Linux操作系统本身,还在于Linus Torvalds所建立的全新的软件开发方法和Stallman的GNU精神。Linus把Linux奉献给了自由软件,奉献给了GNU,从而使自由软件有了一个良好的发展根基——基于Linux的GNU。
1.3.2 Linux的现状
当前流行的软件按照所提供的方式和是否以营利为目的可以划分为三种模式,即商业软件(Commercial Software)、共享软件(Shareware)和自由软件(Freeware或Free Software)。
商业软件由开发者出售副本并提供技术服务,用户只有使用权,但不得进行非法复制、扩散、修改或添加新功能,其代表是美国微软公司的Windows操作系统。共享软件由开发者提供软件试用程序复制授权,用户在试用该程序副本一段时间之后,必须向开发者交纳使用费用,开发者则提供相应的升级和技术服务。目前许多通过网络分发销售的软件都采用这种方式,如著名的WinGate。而自由软件则由开发者提供软件全部源代码,任何用户都有权使用、复制、扩散、修改该软件,同时用户也有义务将自己修改过的程序代码公开。Linux就是自由软件的杰出代表。1993年,Linus Torvalds将Linux系统转向了GPL,并加入了GNU。这一版权上的转变对于Linux的进一步发展确实起了极其重要的作用。
按用户的性质,可以将目前Linux的用户分为个人用户、专业用户和商业用户。
① 个人用户可以说是业余用户。在这类用户中,学生占据了很大的比例。在Linux的使用者中,个人用户占据很大部分。随着Linux的进一步发展,这些用户是Linux得以发展的潜在的最大用户群。
② 专业用户大多是UNIX的使用者,他们本身对UNIX比较熟悉,能够很快地掌握Linux的使用。专业用户是Linux最忠实的拥护者。
③ 商业用户要向客户提供商业服务。目前,广泛使用Linux的商业用户多为信息服务提供商,如大量的ISP或ICP等。随着Linux优秀性能逐渐被广大商业用户所认识,Linux商业用户的队伍规模会很大。
1.3.3 Linux的特点
Linux的功能强大而全面,与其他操作系统相比,具有一系列显著特点。
1.与UNIX系统兼容
现在,Linux已成为具有全部UNIX特征,遵从IEEE POSIX标准的操作系统。所有UNIX的主要功能都有相应的Linux工具和实用程序。对于UNIX System V,其软件程序源码在Linux上重新编译之后就可以运行;而对于BSD UNIX,它的可执行文件可以直接在Linux环境下运行。所以,Linux实际上就是一个完整的UNIX类操作系统。Linux系统上使用的命令多数都与UNIX命令在名称、格式、功能上相同。
2.自由软件和源码公开
Linux项目从一开始就与GNU项目紧密结合起来,它的许多重要组成部分直接来自GNU项目。任何人只要遵守GPL条款,就可以自由使用Linux源程序。这样就激发了世界范围内热衷于计算机事业的人们的创造力。通过Internet,这一软件得到迅速传播和广泛使用。
3.性能高和安全性强
在相同的硬件环境下,Linux可以像其他著名的操作系统那样运行,提供各种高性能的服务,可以作为中小型ISP或Web服务器工作平台。
Linux提供了先进的网络支持,如内置TCP/IP协议、上面运行了大量网络管理、网络服务等方面的工具,用户可利用它建立起高效稳定的防火墙、路由器、工作站、Intranet服务器和WWW服务器。它还包含了大量系统管理软件、网络分析软件、网络安全软件等。
由于Linux源码是公开的,所以可消除系统中是否有“后门”的疑惑。这对于关键部门、关键应用来说,是至关重要的。
4.便于定制和再开发
在遵从GPL版权协议的条件下,各部门、企业、单位或个人可根据自己的实际需要和使用环境对Linux系统进行裁剪、扩充、修改或者再开发。
5.互操作性高
Linux操作系统支持数十种文件系统格式,它能够以不同的方式实现与非Linux系统的不同层次的互操作。
① 客户-服务器(Client/Server)网络。Linux可以为基于MS DOS,Windows及其他UNIX的系统提供文件存储、打印机、终端、后备服务及关键性业务应用。
② 工作站。与工作站间的互操作可以让用户把他们的计算需求分散到网络的不同计算机上。
③ 仿真。在Linux上运行MS DOS与Windows平台的仿真工具,就可以运行DOS/Windows程序。
6.全面的多任务和真正的32位操作系统
Linux和其他UNIX系统一样,是真正的多任务系统,它允许多个用户同时在一个系统上运行多道程序。Linux还是真正的32 位操作系统,它工作在Intel 80386及以后的Intel处理器的保护模式下。Linux支持多种硬件平台。
1.3.4 Linux的版本
Linux有两种版本:核心(Kernel)版本和发行(Distribution)版本。
1.核心版本
核心版本主要是Linux的内核。Linus等人在不断地开发和推出新的内核。Linux内核的官方版本由Linus Torvalds本人维护着。核心版本的序号由三部分数字构成,其形式为:
major.minor.patchlevel
其中,major为主版本号,minor为次版本号,二者共同构成了当前核心版本号;patchlevel表示对当前版本的修订次数。例如,2.6.34表示对2.6核心版本的第34次修订,这是目前最新的核心版本。
根据约定,若次版本号为奇数,则表示该版本加入新内容,但不一定很稳定,相当于测试版;若次版本号为偶数,则表示这是一个可以使用的稳定版本。由于Linux内核开发工作的连续性,因此内核的稳定版本与在此基础上进一步开发的不稳定版本总是同时存在的。对于一般用户,建议采用稳定的核心版本。
2.发行版本
发行版本是各个公司推出的版本,它们与核心版本是各自独立发展的。发行版本通常将Linux系统内核与众多应用软件及相关文档集成在一起,包括安装界面、系统设定、管理工具等软件,构成一个发行套件,从而方便了用户使用。目前,国内外开发出的Linux发行版本有几百个,常见的发行
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询