实验一、UNIX操作系统及常用命令
- 格式:doc
- 大小:324.00 KB
- 文档页数:11
实验一、UNIX操作系统及常用命令一、实验目的:1、掌握UNIX系统的结构。
2、掌握工具层中相关命令的使用。
3、观察输入命令后相对应的结果显示。
4、掌握工具层中相关命令的使用。
二、实验仪器:SUN工作站、UNIX操作系统。
三、实验原理:1、UNIX操作系统的历史从总体来看,Unix的发展可以分为三个阶段:第一阶段为Unix的初始发展阶段,从1969年KeThompson在AT&T贝尔实验室创造了Unix操作系统,刚开始运行在一台DECPDP-7计算机上,只在实验室内部使用并完善它,这个阶段Unix从版本1发展到了版本6。
此时的Unix用汇编语言写成,因此在1970将Unix 移植到PDP-11/20上的时候花费了大量工作。
此阶段中最重要的事件为Unix的作者使用C 语言对Unix的源代码重新改写,使Unix非常具有可移植性。
第二阶段为80年代,这是Unix的丰富发展时期,在Unix发展到了版本6之后,一方面AT&T继续发展内部使用的Unix版本7 ,另一方面推出了一个对外发行的版本,但改用System加罗马字母作版本号来称呼它。
System III和System V是相当重要的Unix版本。
此外,其他厂商,以及科研机构都纷纷改进Unix,其中以加州大学伯克利分校的BSD版本最为著名,从4.2BSD中也派生出了多种商业Unix版本比如Solaris、HP-UX、IRIX 、AIX、SCO等等。
Sun是最早的工作站厂商,一直在Unix工作站领域不断发展。
其操作系统SunOS 是基于4.2BSD开发的,直到SunOS 4。
但在此之后,Sun将操作系统的开发工作转向了System V,这个新版本为Solaris 2,或者称为SunOS 5,因此也可将SunOS 4称为Solaris 1.0,但是SunOS 4与Solaris 2分属两个流派,其中的差别比较大。
从Solaris 2.6之后,Solaris 2.7的版本号直接变成了Solaris 7.0,目前我们使用的版本是Solaris 10.0。
Sun的Solaris主要针对它的处理器Sparc来开发,但他们也开发了用于Intel平台上的系统Solaris X86。
与运行在工作站上的Solaris相比,Solaris X86性能较差。
第三阶段是Unix的完善阶段,从90年代开始到现在。
当AT&T推出System V Release 4之后,它和伯克利的4.3BSD已经形成了当前Unix的两大流派。
此时,AT&T认识到了Unix价值,因此他起诉包括伯克利在内的很多厂商,伯克利不得不推出不包含任何AT&T 源代码的4.4BSD Lite,这次司法起诉使很多Unix厂商从BSD转向了System V流派。
这时出现了Linux,它是一个完全免费的与Unix兼容的操作系统,可运行在多种平台上。
虽然Unix已经非常开放,但在80年代其内核代码不能随意得到。
较容易得到的代码是Minix,这是用于教学目的而编写的一个系统,但不是一个成熟的系统。
于是芬兰的Linus决定自己编写一个独立的操作系统,在Internet上发布了一个通告。
这个成为Linux 的系统在Internet上在众多爱好者的帮助下迅速开发出来,并取得巨大成功。
Linux和其他Unix的源码完全无关,严格来讲只能算仿制品。
但Linux的开发者来自整个Internet,具有各种Unix系统的背景,因此Linux也集中了各种Unix的优点,从性能上与商业产品毫不逊色。
2、UNIX操作系统的结构UNIX系统的结构体系如下图1.1,UNIX核心直接与硬件交互,向外提供UNIX系统调用界面,外层的程序,诸如shell及编程程序(ed和vi),通过引用系统调用请求核心完成各种操作,并在核心与调用程序之间交换数据,其他应用程序能在较低层的程序与工具的基础上构筑而成,因此它们存在于本图的最外层,虽然本图对应用程序只描述了两个级别的层次,但用户能够对层次进行扩充,把现存程序组合起来,完成更复杂的任务。
图一UNIX系统的体系结构图二系统的核心框图图二给出了UNIX核心框图,表示了各种模块及它们之间的相互关系,特别表示了核心的两个主要部分:文件子系统和进程控制子系统,并表明了三个层次:用户、核心及硬件。
文件子系统管理文件,包括分配文件空间,管理空闲空间,控制对文件的存取,以及为用户检索有关文件目录。
进程控制子系统负责进程同步、进程间通信、存储管理及进程调度。
当要执行一个文件并把该文件装入存储器中时,文件子系统与进程控制子系统交往。
进程子系统在执行可执行文件之前,先要为它分配存储空间,由文件子系统将文件读到主存,存储管理模块控制存储分配。
文件和进程是UNIX系统中两个最基本的概念。
文件是具有名字的有序的数据集合。
例如,一个C或FORTRAN源程序、一个目标代码程序、系统中的库程序、一批待加工处理的数据、一篇文章等都可构成一个文件。
进程是程序的一次执行,是系统进行资源分配和调度运行的一个独立单位,一个进程有自己独立的虚拟地址空间、核心栈和运行现场(进程上下文)。
3、工具层(shell)的介绍Shell是用户与作业系统之间的交互层。
用户可以设置或取消shell的环境变量,来满足用户的需要。
Shell程序是一个包含UNIX命令的普通文件。
这个文件的许可权限至少为可读和可执行。
在shell提示符下输入文件名就可执行shell程序。
Shell程序可通过3种方式接受数据:环境变量、命令行参数和用户的输入。
Shell可分为3大类:Bourne shell, C shell, Korn shell。
每个shell都有自己特定的环境文件,可以自行修改、配置直到符合用户要求。
Bourne shell:对普通用户来说,Bourne shell是第一个UNIX shell,默认提示是美元符号,其配置文件为.profile文件,每次注册进入系统时,shell会读入.profile文件,并执行所列出的指令。
C shell:它是标准的BSD(Berkeley System Distributou)命令解释器,其默认提示是百分号(%),配置文件是.cshrc和.login。
它采用的是C语言,因此提供了快速输入、校正和重输入命令行。
.cshrc用来存放如alias等常用命令,.login是C shell的注册配置文件,负责启动shell,注册时执行一次。
Koun shell:它是Bourne shell的增强版本,综合了Bourne shell和C shell的特点和约定,比它们两者执行的更快。
Korn shell的默认提示与环境文件与Bourne shell一样,同为美元符号和.profile文件。
Shell 是一个命令解释器,它会解释并执行命令提示符下输入的命令。
如果想要多次执行一组命令。
可以将这组命令存放在一个命令文件中,然后就可以像UNIX系统提供的其他程序一样执行这个文件,这个命令文件就叫做shell程序或者shell脚本。
许多拥护会在他们的home目录下创建一个bin目录来存放自己开发的脚本(script),然后将$home/bin加入到PATH环境变量中。
Shell脚本支持变量、命令行参数、交互式输入、tests(判定)、branches(分支)、loops(循环)等复杂结构。
Shell本身就是一个程序,它是用C语言编写的,为协助用户与作业系统之间的通信而设计,管理用户与核心之间的对话,并把作业系统指令转换成计算机代码。
PC机用户常用的DOS,就是一个shell。
Shell的主要任务就是提示用户输入指令、读取指令并转换指令为内核所能理解的语言。
Shell可以看作为指令解释程序,提供一些工具,也可利用shell的编写工具编写计算机程序。
4、UNIX文件系统在UNIX中,一切都是由文件构成的,所以文件都是以目录方式组织的。
每个用户都可以建立自己的目录,将文件放在目录中。
目录是一种组织和控制文件访问的很好的方式,用户可以为目录设置权限以允许其他人访问里面的文件或只允许自己访问。
目录被组织成一种层次状的树型结构,以一个根目录开始,所有的其他目录最终都是从根目录起源的。
图三是一个树型层次状文件结构的例子。
图三树型层次状文件结构图三为一个树型结构文件系统,目录用椭圆表示,文件用矩形表示。
图四树型文件结构系统如同整齐的文件柜一样,UNIX文件系统层次提供了一种简单有效的机制来组织文件。
一个UNIX发布版本通常包括几百个文件和程序,所有每个UNIX系统都使用一种默认的目录结构。
在目录的顶端是根目录,根目录由一个斜杠(/)来表示。
UNIX系统中的文件可分为两类:静态文件和动态文件。
(1)静态文件(共享文件)主要存在于3个目录中:/opt、/usr、/sbin。
/opt:这个目录一般用来存放应用程序。
开发人员和系统管理员会用它来安装新的产品和本地使用的应用程序。
/usr/bin:这个目录包含了基础的UNIX系统操作和文件处理命令,所有用户都有权限读取这个目录。
/usr/sbin:这个目录中有在线帮助手册第1节中的命令,这些命令都是系统管理命令。
其中的大多数命令只要超级用户才能使用。
/usr/lib:这个目录包括应用程序使用的文档和共享的库。
/usr/share:这个目录包括独立提供的文件(其中最重要的是帮助手册)。
/usr/share/man:这个目录包括所有的与在线帮助页有关的所有的文件。
/usr/local/bin:这个目录通常用来存放本地开发的程序和工具。
/usr/contrib/bin:这个目录通常用来存放公用的程序和工具。
/sbin:这个目录包括基本的用于启动和关闭系统的命令。
(2)动态文件(私有文件)主要存在于7个目录中:/home、/etc、/stand、/tmp、/dev、/mnt 和/var。
/home:UNIX系统的每一个用户都有自己的帐号。
同登录id和口令一起,系统管理员会分配一个用户自己的目录。
而这个目录一般都存放在/home目录下。
/etc:这个目录中有许多系统配置文件。
/stand/vmUNI X:这个文件存储的是UNIX系统的内核文件。
当系统启动时,会将这个文件载入内存,通过内核对所有的系统操作进行控制。
/tmp:这个目录通常用作操作系统的一个临时空间,操作系统创建的中间文件,或应用程序,或用户的临时文件通常都防在这个目录下。
/dev:这个目录下有可以连接到系统中的硬件设备的文件,这些设备作为一个到设备之间的连接,数据从来不会被直接存储到这些文件中,这些文件通常叫做特殊文件或设备文件。
/mnt:用来安装其他的设备(如光驱)。
/var/mail:这个目录包括所有用户的信箱。