您好,欢迎访问三七文档
1第1章Linux系统概述1.1.关于LinuxLinux于1991年诞生于芬兰。大学生LinusTorvalds,编写了一个小的操作系统内核,这就是Linux的前身。LinusTorvalds将操作系统的源代码在Internet上公布,受到了计算机爱好者的热烈欢迎。各种各样的计算机高手不断地为它添加新的特性,并不断地提高它的稳定性。1994年,Linux1.0正式发布。现在,Linux已经成为一个功能强大的32位的操作系统。1984年,由RichardStallman组织成立了FreeSoftwareFoundation(FSF)组织以及GNU项目,并不断地编写创建GNU程序(程序的许可方式均为GPL:GeneralPublicLicense)。GNU项目的目的是提供一个免费的类Unix的操作系统以及在上面运行的应用程序。GNU项目在初期进展并不顺利,特别是操作系统内核方面。Linux适时而出,由于它出色的性能,使它成为GNU项目的操作系统的内核。从此以后,GNU项目进展非常迅速:全世界的计算机高手已经为它贡献了非常多的应用程序和源代码。严格地说,Linux只是一个操作系统内核。比较正式的称呼是GNU/Linux操作系统,它使用Linux内核。GNU的意思是GNU’snotUnix(GNU不是Unix)—一种诙谐的说法,意指GNU是一种类Unix的操作系统。为了保证GNU的软件可以自由使用和拷贝,GNU组织制订了一个新的法律许可协议:GPL协议。该协议的主要特点:允许软件被自由地拷贝允许软件被自由地修改允许软件被修改后自由地传播,但必须提供源代码。很多软件制作者都遵循GPL协议,无数的软件开发人员和软件爱好者将自己的软件通过GPL分布,公布在互联网上,从而形成了一个庞大的GNU社区。Linux是遵从GPL协议的软件,也就是说,只要遵从GPL协议,就可以免费得到它的软件和源代码,并对它进行自由地修改。然而,对一般用户来说,从Internet或者其他途径获得这些源代码,然后对它2们进行编译和安装是技术难度很高的工作。一些应用程序的安装也都非常复杂。因而,有一些公司如RedHat、VA等开始介入Linux的业务。它们将Linux操作系统以及一些重要的应用程序打包,并提供较方便的安装界面。同时,还提供一些有偿的商业服务如技术支持等。这些公司所提供的产品一般称为Linux的发布版本。目前比较著名的Linux发布版本有以下几种:RedHat—最著名的Linux服务提供商,Intel、Dell等大公司都对其有较大投资,该公司收购了开放源代码工具供应商CyGNUs公司。RedHat最早由BobYoung和MarcEwing在1995年创建。而公司开始真正步入盈利时代,归功于收费的RedHatEnterpriseLinux(RHEL,RedHat的企业版)。而正统的RedHat版本早已停止技术支持,最后一版是RedHat9.0。于是,RedHat分为两个系列:由RedHat公司提供收费技术支持和更新的RedHatEnterpriseLinux,以及由社区开发的免费的FedoraCore。FedoraCore1发布于2003年年末,而FC的定位便是桌面用户。FC提供了最新的软件包,同时,它的版本更新周期也非常短,仅六个月。Fedora是一个操作系统和平台,基于Linux。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个庞大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。FedoraCore是FedoraProject的一部分,得到了RedHat,Inc.的支持。可运行的体系结构包括x86,x86_64和PPC。SlackWare—历史比较悠久,有一定的用户基础。SUSE—在欧洲知名度较大。TurboLinux—在亚洲,特别是日本用户较多。该公司在中国推出了TurboLinux4.0、4.02和6.0的中文版,汉化做得很出色。Debain—完全由计算机爱好者和Linux社区的计算机高手维护的Linux发布版本。Linux进入中国后,在我国计算机界引起了强烈的反响,也出现了许多汉化的Linux发布版本,影响较大的有以下几种:XteamLinux—北京冲浪平台公司推出的产品,中国第一套汉化的Linux发布版本。BluePoint—1999年底正式推出的产品,内核汉化技术颇受瞩目。红旗Linux—中国科学院软件研究所和北大方正推出的Linux发布版本。从本质上来说,上面所有发布版本使用的都是同样的内核(或者版本略有不同),因而,它们在使用上基本上没有什么区别。但它们的安装界面不一样,所包含的应3用程序也有所不同。Linux之所以大受欢迎,不仅仅因为它是免费的,而且还有以下原因:1)Linux是一个真正的抢占式多任务、多线程、多用户的操作系统。2)Linux性能非常稳定,功能强劲,可以与最新的商用操作系统媲美。3)Linux有非常广泛的平台适应性。它在基于Intel公司的x86(也包括AMD、Cyrixx、IDT)的计算机、基于Alpha的计算机,以及苹果、Sun、SGI等公司的计算机上都有相应的发布版本,甚至在AS/400这样的机器上都能找到相应的版本。Linux还可以在许多PDA和掌上电脑以及嵌入式设备上运行。4)已有非常多的应用程序可以在Linux上运行,大多数为SCOUnix开发的应用程序都能在Linux上运行(借助于iBCS软件包),甚至还比在SCOUnix上运行速度更快。借助Dosemu,可以运行许多DOS应用程序,而借助Wabi或Wine,还可以运行许多为Windows设计的软件。5)Linux是公开源代码的,也就是说,不用担心某公司会在系统中留下后门(软件开发商或程序员预留的,可以绕开正常安全机制进入系统的入口)。6)只要遵从GPL协议,就可以自由地对Linux进行修改和剪裁。当然,Linux的优点决不止于此。对计算机专业人员来说,Linux及其相关应用程序也是学习编程的绝好材料,因为这些软件都提供了完整的源代码。Linux的出现为我国软件产业赶超世界先进水平提供了极好的机遇,也为我国软件产业反对微软的垄断提供了有力的武器。1.2关于shellShell是一种具备特殊功能的程序,它是介于使用者和UNIX/Linux操作系统之核心程序(kernel)间的一个接口。操作系统是一个系统资源的管理者与分配者,当用户有需求时,得向系统提出;从操作系统的角度来看,它也必须防止使用者因为错误的操作而造成系统的伤害。众所周知,对计算机下命令得通过命令(command)或是程序(program);程序有编译器(compiler)将程序转为二进制代码,可是命令呢?其实shell也是一个程序,它由输入设备读取命令,再将其转为计算机可以了解的机器码,然后执行它。各种操作系统都有它自己的shell,以DOS为例,它的shell就是command.com文件。如同DOS下有NDOS,4DOS,DRDOS等不同的命令解译程序可以取代标准的command.com,UNIX下除了Bourneshell(/bin/sh)外还有C4shell(/bin/csh)、Kornshell(/bin/ksh)、Bourneagainshell(/bin/bash)、TenexCshell(tcsh)…等其它的shell。UNIX/Linux将shell独立于核心程序之外,使得它就如同一般的应用程序,可以在不影响操作系统本身的情况下进行修改、更新版本或是添加新的功能。(1)Shell的激活在系统启动的时候,核心程序会被加载内存,负责管理系统的工作,直到系统关闭为止。它建立并控制着处理程序,管理内存、档案系统、通讯等等。而其它的程序,包括shell程序,都存放在磁盘中。核心程序将它们加载内存,执行它们,并且在它们中止后清理系统。Shell是一个公用程序,由使用者login时启动,Shell提供使用者和核心程序产生交谈的功能。当用户(login)时,一个交谈式的shell会跟着启动,并提示用户输入命令。在用户键入一个命令后,接着就是shell的工作了,它会进行:1.语法分析命令列2.处理万用字符(wildcards)、转向(redirection)、管线(pipes)与工作控制(jobcontrol)3.搜寻并执行命令当用户刚开始学UNIX/Linux系统时,大部分的时间会花在于提示符号(prompt)下执行命令。如果用户经常会输入一组相同形式的命令,可能会想要自动执行那些工作。如此,可以将一些命令放入一个文件(称为script),然后执行该文件。一个shell命令文件很像是DOS下的批处理文件(如Autoexec.bat):它把一连串的UNIX命令存入一个文件,然后执行该文件。较成熟的命令文件还支持若干现代程序语言的控制结构,如条件判断、循环、测试、传送参数等。要写命令文件,不仅要学习程序设计的结构和技巧,而且要对UNIX/Linux公用程序及如何运作需有深入的了解。有些公用程序的功能非常强大(例如grep、sed和awk),它们常被用于命令文件来操控命令输出和档案。在用户对那些工具和程序设计结构变得熟悉之后,就可以开始写命令文件。当由命令文件执行命令时,此刻,就已经把shell当做程序语言使用了。(2)Shell的生平第一个有重要意义的,标准的UNIXshell是V7(AT&T的第七版)UNIX,在1979年底被提出,且以它的创造者StephenBourne来命名。Bourneshell是以Algol这种语言为基础来设计,主要被用来做自动化系统管理工作。Cshell是在加州大学柏克来分校于70年代末期发展而成,而以2BSDUNIX5的部分发行。这个shell主要是由BillJoy写成,提供了一些在标准Bourneshell所看不到的额外特色。Cshell是以C程序语言作为基础,且它被用来当程序语言时,能共享类似的语法。它也提供在交谈式运用上的改进,例如命令列历程、别名和工作控制。因为Cshell是在大型机器上设计出来,且增加了一些额外功能,所以Cshell有在小型机器上跑得较慢,即使在大型机器上跟Bourneshell比起来也显得缓慢。有了Bourneshell和Cshell之后,UNIX使用者就有了选择,且争论那一个shell较好。AT&T的DavidKorn在80年代中期发明了Kornshell,在1986年发行且在1988年成为正式的部分SVR4UNIX。Kornshell实际上是Bourneshell的超集,且不只可在UNIX系统上执行,同时也可在OS/2、VMS、和DOS上执行。它提供了和Bourneshell向上兼容的能力,且增加了许多在Cshell上受欢迎的特色,更增加了速度和效率。Kornshell已历经许多修正版,要找寻您使用的是那一个版本可在ksh提示符号下按Ctrl-v键。三种主要的Shell与其分身在大部份的UNIX系统,三种著名且广被支持的shell是Bourneshell(AT&Tshell,在Linux下是BASH)、Cshell(Berkeleyshell,在Linux下是TCSH)和Kornshell(Bourneshell的超集)。这三种shell在交谈(interactive)模式下的表现相当类似,但作为命令文件语言时,在语法和执行效率上就有些不同了。Bourneshell是标准的UNIXshell,以前常被用来做为管理系统之用。大部份的系统管理命令文件,例如rcstart、stop与shutdown都是Bourneshell的命令档,且在单一使用者模式(singleusermode)下以root登录时它常被系统管理者使用。Bourneshell是由AT&T发展的,以简洁、快速著名。Bourneshell提示符号的默认值是$。Cshell是柏克莱大学(Berkeley)所开发的,且加入了一些新特性,如命令列历程(history)、别名(alias)、内建算术、档名完成(fil
本文标题:LINUX实验教程
链接地址:https://www.777doc.com/doc-5860391 .html