实验一、UNIX操作系统及常用命令.doc_第1页
实验一、UNIX操作系统及常用命令.doc_第2页
实验一、UNIX操作系统及常用命令.doc_第3页
实验一、UNIX操作系统及常用命令.doc_第4页
实验一、UNIX操作系统及常用命令.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一、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/vmUNIX:这个文件存储的是UNIX系统的内核文件。当系统启动时,会将这个文件载入内存,通过内核对所有的系统操作进行控制。/tmp:这个目录通常用作操作系统的一个临时空间,操作系统创建的中间文件,或应用程序,或用户的临时文件通常都防在这个目录下。/dev:这个目录下有可以连接到系统中的硬件设备的文件,这些设备作为一个到设备之间的连接,数据从来不会被直接存储到这些文件中,这些文件通常叫做特殊文件或设备文件。/mnt:用来安装其他的设备(如光驱)。/var/mail:这个目录包括所有用户的信箱。/var/news:这个目录包括当前新闻信息的所有文件。其中的内容可以通过输入news a来显示。/var/tmp:这个目录通常用作用户的临时空间。5、绝对路径和相对路径User3的相对路径如下表:绝对路径相对于/home/user3的路径/home/user3/f1fi/home/user3/memomemo/home/user3/memo/f1memo/f1绝对路径给出文件或目录位置的完全描述。通常由层次结构的顶端开始(根目录),且第一个字符是/。绝对路径不关心用户当前在目录结构中所处的位置,整个目录结构只有一条路线。相对路径通常由目录结构中的当前位置开始,不由/开始。它一般都比绝对路径要短。UNIX系统内部是通过绝对路径来查找所有的目录和文件的。(.)点目录代表当前所在的目录。例如如果当前处在于目录/home/user3中:./f1 代表 /home/user3/f1(.)点点的条目代表当前目录的上一级目录,通常称为父目录。例如cd .返回上一层目录。四、实验内容:1、关于档案(文件)/目录处理的指令(1)ls这是最基本的档案指令。 ls 的意义为 list,也就是将某一个目录或是某一个档案的内容显示出来。 如果你在下 ls 指令后头没有跟著任何的档名,它将会显示出目前目录中所有档案。也可以在 ls 后面加上所要察看的目录名称或档案的名称,如% ls /home2/X11R5 % ls first ls 有一些特别的参数,可以给予使用者更多有关的资讯,如下: -a : 在 UNIX 中若一个目录或档案名字的第一个字元为 “.”。, 则使用 ls将不会显示出这个档案的名字,我们称此类档案为隐藏档。如 tcsh的初设档 .tcshrc;如果我们要察看这类档案,则必须加上参数 -a 。 -l : 这个参数代表使用 ls 的长( long )格式,可以显示更多的资讯,如档案存取权,档案拥有者( owner ),档案大小,档案最后更新日期,甚而 symbolic link 的档案是 link 那一个档等等。如下 % ls -l drwx-x-x 2 jjtseng 512 Aug 8 05:08 18drwx-x-x 2 jjtseng 512 Aug 8 22:00 19-rw- 1 jjtseng 566 Aug 8 05:28 makefile(2) cpcp 这个指令的意义是复制(COPY) , 也就是将一个或多个档案复制成另一个档案或者是将其复制到另一个目录去。 cp 的用法如下: cp f1 f2 : 将档名为 f1 的档案复制一份为档名为 f2 的档案。cp f1 f2 f3 . dir : 将档案 f1 f2 f3 . 都以相同的档名复制一份放到目录 dir 里面。cp -r dir1 dir2 : 将 dir1 的全部内容全部复制到 dir2 里面。 cp 也有一些参数,如下:-i :此参数是当已有档名为 f2 的档案时,若使用 cp 将会将原来 f2的内容掩盖过去,因此在要盖过之前必须先询问使用者一下。如使用者的回答是y(yes)才执行复制的动作。 -r :此参数是用来做递回复制用,可将一整颗子树都复制到另一个目录中。(3)mvmv 的意义为 move , 主要是将一档案改名或换至另一个目录。如同 cp ,它也有三种格式: mv f1 f2 :将档名为 f1 的档案变更成档名为 f2 的档案。mv dir1 dir2 : 将档名为 dir1 的目录变更成档名为 dir2 的目录。mv f1 f2 f3 . dir : 将档案 f1 f2 f3 . 都移至目录 dir 里面。 mv 的参数有两个,-f 和 -i , 其中 -i 的意义与 cp 中的相同,均是 interactive询问之意。而 -f 为强迫( force ) , 就是不管有没有同名的档案,反正我就是要搬过去,所有其他的参数遇到 -f 均会失效。(4) rmrm 的意义是 remove ,也就是用来杀掉一个档案的指令。在 UNIX 中一个被杀掉的档案除非是系统恰好有做备份,否则是无法像 DOS 里面一样还能够救回来的。所以在做 rm 动作的时候使用者应该要特别小心。 rm 的格式如下: rm f1 f2 f3 . 而 rm 的参数比较常用的有几个: -f , -i , 与 -r -f : 将会使得系统在删除时,不提出任何警告讯息。-i : 在除去档案之前均会询问是否真要除去。-r : 递回式的删除。 小心不要随便使用 rm -rf , 否则有一天你会欲哭无泪. (5)mkdirmkdir (make-directory)是一个让使用者建立一个目录的指令。你可以在一个目录底下使用 mkdir 建立一个子目录,使用的方法如下: mkdir dirname1 dirname2 . (6)chdir ( cd )这是让使用者用来转移工作目录用的。chdir 的用法如下: chdir dirname 如此你就可以将目前的目录转移到 dirname 这一个目录去。或使用 chdir . 来转移到上一层目录,通常使用cd . 。(7)rmdir相对于 mkdir ,rmdir 是用来将一个空的目录杀掉的。如果一个目录下面没有任何档案,你就可以用 rmdir 指令将其除去。rmdir 的使用法如下: rmdir dirname1 dirname2 . 如果一个目录底下有其他的档案, rmdir 将无法将这个目录杀掉,除非使用 rm 指令的 -r 选项。 (8) pwdpwd 会将目前目录的路径( path )显示出来。(9) cat/more/less以上三个指令均为察看档案内容的指令。cat 的意义是 concatenate ,在字典上的意思是连结,将串成锁状( 语出资工电子词典 cdict ),其实就是把档案的内容显示出来的意思。 cat 有许多奇怪的参数,较常为人所使用的是 -n 参数,也就是把显示出来的内容加上行号。cat 的用法如下:cat -n :自标准输入读进内容,你可以用 pipe 将别的程式的输出转向给 cat 。cat -n filename :将 filename 的内容读进来,显示在标准输出上。 问题在于cat 它是不会停下来的,因此并不好用( 试想如果一个屏幕二十四行,而一个档案四百行,cat 一出来将会劈哩啪啦不断的卷上去,使用者很难据此得到他们所需的资讯。) 所以才有人又写了 more 出来。 more 就是再多一点就好,more 可以将所观察的档案跟据终端机的形态一页页的显示出来,再根据使用者的要求换页或卷行。如果使用者要在某一个档案中搜寻一个特定的字串,则按 / 然后跟着打所要搜寻的单字即可进行搜寻。more 也可以找得到。more 的使用法如下:more filename 如果你在使用中觉得已经看到了所要看的部份,可以按q离开 more 的使用。在使用中按v 亦可以使用编辑器来编辑所观看的档案。 less 的用法与 more 极类似,原先它就是为了弥补 more 只能往前方卷页的缺点而设计。 less 的用法如下:less filename 其与 more 不同的是它可以按 y 来往上卷一行,并且可以用?来往回搜寻你所要找的单字。 (10)chmodchmod 为变更档案模式用( change mode ) . 这个指令是用来更改档案的存取模式( access mode )。在 UNIX 一个档案上有可读(r)可写(w)可执行(x)三种模式,分别针对该档案的拥有者( onwer )、同群者( group member )( 你可以 ls -lg来观看某一档案的所属的 group ),以及其他人( other )。一个档案如果改成可执行模式则系统就将其视为一个可执行档,而一个目录的可执行模式代表使用者有进入该目录之权利。chmod 就是用来变更一些档案的模式,其使用方式如下: chmod -fR mode filename . 其参数的意义如下: -f Force. chmod 不会理会失败的动作。 -R Recurive. 会将所有子树下的所有子目录及档案改为你所要改成的模式。 mode 可以为一个三位或四位的八进位数字,来表示对某些对象的存取权。详情可参阅 chmod(1) 的 manual page 中有关 Absolute Modes 的说明。 2、关于 Process 处理的指令:(1) psps 是用来显示目前你的 process 或系统 processes 的状况。以下列出比较常用的参数: 其选项说明如下:-a 列出包括其他 users 的 process 状况。-u 显示 user - oriented 的 process 状况 。-x 显示包括没有 terminal 控制的 process 状况 。-w 使用较宽的显示模式来显示 process 状况 。 我们可以经由 ps 取得目前 processes 的状况,如 pid , running state 等。 (2)killkill 指令的用途是送一个 signal 给某一个 process 。因为大部份送的都是用来杀掉 process 的 SIGKILL 或 SIGHUP ,因此称为 kill 。kill 的用法为: kill -SIGNAL pid .kill -l SIGNAL 为一个 singal 的数字,从 0 到 31 ,其中 9 是 SIGKILL ,也就是一般用来杀掉一些无法正常 terminate 的讯号。你也可以用 kill -l 来察看可代替 signal 号码的数目字。kill 的详细情形请参阅 man kill。3、 关于字串处理的指令: (1) echoecho 是用来显示一字串在终端机上。 echo -n 则是当显示完之後不会有跳行的动作。 (2)grep/fgrepgrep 为一过滤器,它可自一个或多个档案中过滤出具有某个字串的行,或是自标准输入过滤出具有某个字串的行。 fgrep 可将欲过滤的一群字串放在某一个档案中,然後使用 fgrep 将包含有属于这一群字串的行过滤出来。 grep 与 fgrep 的用法如下: grep -nv match_pattern file1 file2 .fgrep -nv -f pattern_file file1 file2 . -n 把所找到的行在行前加上行号列出-v 把不包含 match_pattern 的行列出match_pattern 所要搜寻的字串-f 以 pattern_file 存放所要搜寻的字串 4、网路上查询状况的指令: (1) whowho 指令是用来查询目前有那些人在线上。 (2) w w 指令是用来查询目前有那些人在线上,同时显示出那些人目前的工作。 (3) kuku 可以用来搜寻整个网路上的 user ,不像 w 跟 who 只是针对 local host 的查询. 而且 ku 提供让使用者建立搜寻特定使用者名单的功能。你可以建立一个档案 information-file 以条列的方式存放你的朋友的资料,再建立一个档案hosts-file 来指定搜寻的机器名称。 ku 的指令格式可由 ku -h 得到。 5、关于通讯用的指令: (1) write这个指令是提供使用者传送讯息给另一个使用者,使用方式:write username tty (1) talk/ytalk/cytalk/ctalkUNIX 专用的交谈程式。会将屏幕分隔开为你的区域和交谈对象的区域,同时也可和不同机器的使用者交谈。使用方式: talk usernamehost tty (2) mesg选择是否接受他人的 messege , 若为 messege no 则他人的 messege 将无法传送给你,同时他也无法干扰你的工作。使用方法:mesg -n|-y (3) mail/elm在网路上的 email 程式,可经由此程式将信件 mail 给他人。 使用方式:mail username mail -f mailboxfile 如有信件,则直接键入 mail 可以读取你的 mail 。elm 提供较 mail 更为方便的界面,而且可做线上的 alias . 你可以进入 elm使用上下左右键来选读取的信件,并可按 h 取得线上的 help 文件。 使用方式:elm usernmaeelm -f mailboxfile 6、shell特殊的功能(1) 输出转向:如果用户希望将某一条命令的执行结果改送到一个文件中保存,而不是直接送扫屏幕上显示,可利用”符号实现。例如:cat t1 t2 则此时文件t2的内容就是文件t1的内容。(2) 输入转向:如果用户希望将命令的接收的数据改为从一个文件中读取,而不是接收键盘的输入数据,可利用”符号实现。例如:more t1 t2 直接从t2文件中获取输入数据,而不是等待键盘的输入。(3)| 管道命令:输入转向导致一个程序的输入来自某个文件,输出转向是把一个程序的输出写到一个文件中,而管道是直接将一个程序的输出与另一个程序的输入相连接,不需要经过任何中间文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论