操作系统实验参考材料.docx
《操作系统实验参考材料.docx》由会员分享,可在线阅读,更多相关《操作系统实验参考材料.docx(36页珍藏版)》请在冰豆网上搜索。
![操作系统实验参考材料.docx](https://file1.bdocx.com/fileroot1/2022-11/28/fd4ea1cd-ce3d-46f3-96cf-5ce19f985503/fd4ea1cd-ce3d-46f3-96cf-5ce19f9855031.gif)
操作系统实验参考材料
操作系统实验参考材料
一、Linux/UNIX操作系统基础
1.上网查阅资料.根据你所获得的信息,用十句话以内的文字简单描述以下几种操作系统,并作比较.
1)SOLARIS
2)SCOOPENUNIX
3)FREEBSD
4)LINUX
2.什么是LINUX?
列出五种常见的LINUX版本,并用三至五句话对每个版本作简单描述.
[解答提示]LINUX是一个可独立运作的POSIX兼容OS。
它也包含了SXSV和BSD的功能。
版本包括有Redhat,Suse,红旗,Slackware,Deban等。
3.简单描述REDHADLINUX的安装过程
[解答提示]步骤如下
1)用LINUX启动光盘启动计算机
2)选择安装语言、鼠标、键盘等
3)选择安装类型(服务器、工作站、自定、升级)
4)为磁盘划分LINUX分区与SWAP分区
5)选择引导装载程序与记录引导程序的位置
6)依次配置网络、防火墙、语言及时区
7)配置帐号与密码
8)选择合适的软件包
9)进行图形界面配置
10)安装软件包
11)创建引导盘
12)进行X窗口设置
13)安装完成。
(一)UNIX操作基础
1.新建立一个用户,用此用户名和口令登陆系统.注意屏幕上列出的提示信息.
[解答]1)useraddstudent
2)passwd12345
2.查看系统的命令提示符,确定系统使用的SHELL程序类型.列出unix系统常见的SHELL种类
[解答]1)echo$SHELL
2)shbashtcshcshpdkshzshashmc等
3.用who命令来查看当前登陆在系统中的用户列表
[解答]who
4.利用who命令的选项来查看系统中的用户总数和系统启动时间
[解答]1)who–q
2)who-b
5.查找系统中的帮助系统工具,比较learn,help,man三个命令的异同
[解答]1)learn无learn命令只有unix系统有
2)help–infobash
3)man是手册manual的缩写
6.用date命令查看当前的日期和时间
[解答]date
7.用cal命令查看2003年1月1日是星期几
[解答]cal–my12003
8.查看2000年的日历表
[解答]cal–y2003
9.新建立一个student用户,用passwd命令修改口令.
[解答]同题1
10.试图用一个不满足口令组成要求的字符串作为新口令.将系统显示的错误信息记录下来.
[解答]错误口令分两种一种是类字典的单词,另外一种是非法字符
(二)vi编辑器
1.列出Linux/UNIX系统支持的编辑器类型
[解答]Kwrite,vi,Emace,MozillaComposer,Edit,hexedit等
2.列出VI编辑器的两种工作模式并简述特点.
[解答]编辑模式(文本的输入与修改)与命令模式(输入各种命令)
3.用vi生成一个名为test文件,输入两到三行文字.
[解答]1)vitest
2)输入文字
3)wq
4.对上述的test文件进行增\删\改的操作.
[解答]
1)增加i命令
2)删除dd命令
3)修改x命令
5.在VI中,列出用户当前目录下的文件.
[解答]方法1vi.
方法2e.
6.创建一个用户名的缩写,并把它加到用户文件的头部
[解答]vifile
enteralineoffiles
i
sort
7.读入日期和时间,并将它们放到文件中用户名之后
[解答]在命令行输入Hdate
8.创建一个garden文件.并把test文件追加到它的尾部.
[解答]在命令行输入Lcattest
9.试改变VI编辑器的showmode选项
[解答]setshowmode
setnoshowmode
10.试在文档中搜索指定的字串.
[解答]在命令行输入/string
11.用什么命令设置与取消行号功能?
[解答]在命令行内输入setnu!
显示与取消行号
(三)UNIX文件系统
(一)
1.显示当前目录
[解答]echo$PWD
2.改变到用户主目录
[解答]cd
3.列出当前目录的内容
[解答]ls
4.确认用户主目录
[解答]echo$HOME
5.当前目录下,创建名为ABC的新目录
[解答]mkdirABC
6.在ABC目录创建名为ABC的新文件,输入若干文字
[解答]viabc
7.显示当前目录内容
1)按照字母逆序ls-r
2)按照长格式ls-l
3)按照水平格式ls--format=horizontal
4)显示不可见的文件ls–d.*
8.在屏幕上显示文件ABC的内容
[解答]catABC
9.删除ABC目录下的ABC文件.删除ABC文件前,要求确认
[解答]rm-iABC/ABC
10.删除当前目录中的ABC目录
[解答]rmABC
11.显示当前默认打印机的状态
[解答]lpcstatus
12.列出所有文件,包括不可见的文件
[解答]ls–a或者ls-al
13.打印文档的多份副本的命令是什么?
[解答]lp–n
(四)UNIX文件系统
(二)
1.在用户主目录下创建名为memos的目录
[解答]1)cd//返回用户主目录
2)mkdirmemos//建立memos目录
2.用vi编辑器,在用户主目录中创建名为myfile的文件
[解答]1)vimyfile//建立myfile文件
2)ESC-:
wq//存盘退出
3.用cat命令,把myfile多次附加到新创建的名为large的文件中.
[解答]一个三次附加的例子
Catmyfile>>large
X3
4.用pr命令及其选项,格式化large文件并打印
[解答]prlarge>large.print
6.用cp命令把用户主目录下的所有文件复制到目录memos下
[解答]cp*./memos
7.用ln命令创建large的另一个文件名
[解答]lnlargelarge.old
8.用mv命令,把large更名为large.old
[解答]mvlargelarge.old
9.用mv命令,把large移到memos下
[解答]mvlargememos
10.显示一个文件的后五行
[解答]tail–n5large
11.显示一个文件的前五行
[解答]head–n5large
12.把一个文件的最后30个字符存到另一个文件中
[解答]tail–c30large>>myfile
13.保存用户主目录中所有7天前创建的文件列表
[解答]1)cd..
2)find./-ctime7–name“*”>7days
14.查找名为passwd的文件
[解答]find./-name“passwd”
15.查找名为profile的文件
[解答]find./name
16.从用户主目录开始,查找所有7天前创建的文件
[解答]find$home–atime7
17.查找所有多于10天的文件,保存到另一个目录中
[解答]find./-ctime+10–name“*”–execcp{}.\/backup\/\
18.用paste命令,将两个文件连在一起
[解答]pastelarge1myfile>myfile
19.用more命令读大文件.
[解答]morefile
(五)通信
1.把下列的消息发给自己
solittletimeandsomuchtodo
[解答]echosolittletimeandsomuchtodo|writeroot
2.读取当前的日期和时间,追加到消息的结尾
[解答](echosolittletimeandsomuchtodo:
date-R)|writeroot
3.在发送消息之前,把消息保存到一个文件中
[解答](echosolittletimeandsomuchtodo:
date-R)>files
catfiles|writeroot
4.读取自己的邮件
[解答]1)mail列出所有邮件
2)t1读取第一封邮件
3)q或x退出
5.比较x命令和q命令退出mailx的不同处
[解答]
q退出时,会返回信息,该用户所有邮件会保存到相应的缓冲池上,例如root的信会保存到/var/spool/mail/root
x则保持资料在邮件服务系统上,不删除,马上退出。
二、Linux的进程和作业控制
(一)要点概述:
通过虚拟终端,我们可以感受Linux的多用户特性,而Linux的进程和作业控制,
则体现了Linux的多任务的特性。
1.进程和作业
每当运行一个程序,Linux系统就启动了一个进程,Linux把正在运行的程序称为进程。
而我们称一个正在运行的进程为作业。
进程和作业有时是可互换的。
如果我们要了解进程
和作业的信息,可以分别使用ps命令和jobs命令来查看。
下面我们先介绍这两个命令的使
用。
(1)PS命令
格式:
ps[Options][pids]
功能:
将显示正在执行的进程的信息。
常用选项说明:
-l:
以长列表的形式列出。
-u:
用户格式,给出用户名和开始时间。
-j:
作业格式,给出pgid,sid。
-s:
信号格式。
-v:
虚拟存储器格式。
-m:
显示内存信信息。
-f:
给出树状格式。
-a:
显示其他用户的进程。
-X:
显示没有控制台的进程。
-c:
从task_struct中给出进程名。
-e:
显示环境。
-w:
宽行输出。
-h:
无标题。
-r:
只显示正在运行的程序。
-n:
用数字来输出USER和WCHAN.
txx:
只显示受ttyxx控制的进程。
pids:
只显示特定的进程。
-help:
在标准输出上输出帮助信息并退出。
-version:
在标准输出上输出版本信息并退出。
例如,要查看当前进程的信息,可在shell提示符下,输入命令“ps-l”,屏幕显示栏目表。
下面对主要的栏目作简要说明:
UID:
用户的标识号。
PID:
进程的标识号,是系统赋予每个正在执行进程的唯一编号。
PPID:
父进程的标识号。
PRI:
进程优先级。
SIZE:
虚拟内存的大小。
RSS:
驻留空间的大小。
STAT:
进程状态,如:
“R”表示进程正在运行:
“s”表示睡眠;“D”表示
不可打断的睡眠;“T”表示停止或跟踪;“Z”表示僵尸进程;
“W”表示进程没有驻留页。
TTY:
是进程所在的虚拟终端号。
TIME:
是该进程已运行的时间。
COMMAND:
是该进程的名称。
可以观察到,用户root当前正在运行的进程是hash和ps命令自身,即hash与ps命令同时运行。
当root输入ps命令后,hash执行该命令,ps完成运行后,控制返回hash进程,hash显示提示符,等待下一个命令。
(2)jobs
格式:
jobs
功能:
命令列出当前正在运行的作业信息,该命令没有选项和参数。
2.进程控制
在这里,我们介绍的进程控制主要是指运用Linux系统提供的命令,如何运行和撤消
进程、改变进程的优先级以及将进程切换到后台运行的方法。
(l)运行和撤消进程
运行进程的方法在前面已经叙述,我们这里主要介绍撤消进程的方法,有两种方法可
以撤消进程,一种是使用kill命令来撤消一个进程,另一种是使用"Ctrl+C"组合键来撤消,
下面我们先介绍kill命令的使用。
格式:
kill[options]pid
其中,Pid是进程标识。
功能:
终止(或撤消)一个进程。
常用选项说明:
-s<信号名>:
指出欲发送的信号,信号是以信号名或数字给出的。
-p:
指kill只输出已命名的pid,而且不送信号给它。
-l:
输出一个信号名列表。
如我们要撤消一个进程,只需在命令kill后键入欲撤消进程的进程标识(pid)即可,
kill命令除可用于撤消进程外,还可撤消作业,其使用方法将在作业控制中介绍。
使用
"Ctrl+C"组合键往往撤消一个当前正在前台运行的进程。
(2)指定进程的优先级
Linux提供的nice命令可以指定进程的优先级,也即我们可以通过它来改变一个进程
的优先级,下面我们就来介绍该命令的使用方法。
格式:
nice[options][COMAMND[arg...]]
功能:
通过修改调度优先级来运行一个程序。
常用选项说明:
-s:
加上由指定的优先级而不是默认值10。
-help:
输出帮助信息。
-version:
输出版本信息。
(3)将进程切换到后台运行
将一个进程放到后台运行有两种方法,第一种方法很简单,我们只需在要运行的程序
命令的最后加上"&"字符;第二种方法是:
首先正常地在前台启动一个作业,然后暂时
中止它,最后再在后台重新启动它。
让我们来看一个例子:
例如,要将进程yes>/dev/null放到后台运行,我们先用第一种方法,则在shell提示符
下,键入命令"yes>/dev/null&",此时屏幕显示:
[root@localhost/root]#yes>/dev/null&
[1]164
[root@localhost/root]#
其中,命令yes是向标准输出发送无穷尽的一串y,/dev/null就象一个黑洞,任何被送
入这个黑洞的数据都会消失。
屏幕显示的[1]代表yes进程的作业号。
"164"是进程标识符,
也称"PID",它是系统赋予这个进程的标号。
现在,yes进程正在后台运行,并不断地把
一连串的y字符送给/dev/null。
下面我们用另一种方法,先在前台启动该进程,然后我们
使用组合键"Ctrl+Z"暂时中止它,最后再键入命令"bg"在后台重新启动它。
其操作过程屏幕显示:
[root@localhost/root]#yes>/dev/null
[1]+stoppedyes>/dev/null
[root@localhost/root]#
[root@localhost/root]#bg
[1]+yes>/dev/null&
[root@localhost/root]#
3.作业控制
Linux系统提供了许多命令使用户可以方便地运行和撤消作业、在指定时间运行作业以
及将作业在前后台之间切换等。
在这里,我们就对这些作业控制的方法作一介绍。
(1)前台作业和后台作业以及前后台作业之间的切换
作业可以在前台运行,也可以在后台运行,但在同一时刻只能有一个作业在前台运行。
所谓前台作业是指正在对它进行交互操作的作业,如它从键盘接收输入,并将输出送到屏
幕。
而我们称不接收终端的输入,不需要进行交互操作,而只是默默运行的作业为后台作
业。
有了前台和后台,我们不仅能够实现真正意义的多任务,而且我们还可方便地对前后
台作业进行切换。
将一个作业放到后台运行的一种方法是先用"Ctrl+Z"组合键中止该作
业,然后在shell提示符下键入命令"bg",而我们要将该作业再次切换回前台运行,只需
在Shell提示符下键入命令"fg"即可。
如果系统上运行着多个作业,我们也可使用命令"fg"
和"bg"方便地对作业进行前后台切换,但必须在命令后跟上"%"符和作业号。
例如有
三个作业,3号作业在前台运行,1、2号作业在后台运行,我们现在要将2号作业放到前
台运行而把3号作业放到后台运行,则只需分别键入命令"fg%2"和命令"bg%3"即可。
(2)挂起作业和撤消作业
作业可以被挂起,挂起作业只是暂时中止该作业的运行,用户可在需要时在前台或后
台恢复它的运行,恢复被挂起的作业将不会改变作业的状态,该作业将从被中断的地方继
续运行。
挂起作业的方法是使用挂起键,挂起键通常是"Ctrl+Z"组合键。
与挂起不同,
撤消作业是指终止该作业的运行,我们可以用kill命令来撤消一个作业,但在命令kill后
必须先键入"%"符号,再键入作业号。
我们来看个例子:
例如,要求用两种方法之一撤消上例中的1号作业,并查看撤消结果。
一种方法是用命令kill直接撤消1号作业,然后用命令jobs来查看结果,其操作过程
屏幕显示:
。
[root@localhost/root]#kill%1
[root@localhost/root]#jobs
[1]+Terminatedyes>/dev/null
[root@localhost/root]#
注意,如果再次使用加命令,屏幕上将不会显示任何信息。
在这个例子中,由于只
有一个进程,所以作业和进程的概念是一致的,所以我们使用的另一种方法就是用进程标
识号(PID)作为命令kill的参数来撤消该进程即等于撤消该作业。
该进程的PID为164。
我们只需在shell提示符下键入命令"kill164"即可。
(3)指定时间运行作业
如果用户想在一个特定的时间执行作业或删除队列中的文件,可以使用at命令。
格式:
at[-v][-q队列][-f文件名][-mldbv]时间
功能:
在一个特定的时间执行作业或删除队列中的文件
常用选项说明:
-v:
显示版本号。
-q<队列名指定可选队列名称,队列的字母顺序越高,则队列的优先级越低。
>:
-f<文件名>:
从指定文件名的文件中读取作业。
-l:
列出用户排在队列中的作业。
-d:
删除队列中的作业。
-b:
用低优先级运行作业。
时间:
用户设定的作业开始时间,可接受的时间形式是HHMM或HH:
MM。
也可以
指定在哪一天运行,给出的日期格式为MMDDYY,MM/DD/YY或MM.DD.YY。
例如,work是一个作业文件,我们分别用两种方式使作业work在15:
00运行,然后删
除作业队列中的1号作业。
我们先用命令"cat"来看看它的内容。
屏幕显示:
[root@localhost/root]#catwork
ls-l
我们可以观察到在文件work中,用户已经存入要执行的命令ls-l。
现在如果用户
要在15:
00执行work中的作业,应在shell提示符下,键入命令"at-fwork15:
00",系统
将在15:
00执行文件work中的命令,并且将执行的结果将送入你的maill中。
你可以通过
maill命令查看作业运行的结果。
我们也可用另一种方式得到相同的结果,其操作过程屏幕显示:
[root@localhost/root]#at15:
00
at>ls-l
at>
需要注意的是,在at命令中如果不指定-f选项,则at从标准输入(键盘)读入所有的
命令,并以<EOT>(Ctrl+D组合键)结束输入。
现在已有两个作业在队列中,我们可以用命令"at-l"来查看,屏幕显示:
[root@localhost/root]#at-l
12002-6-615:
00a
22002-6-615:
00a
输出信息的第一列为作业号,第二列为作业启动的时间,第三列为作业的队列
名称。
为删除在队列中的二号作业,我们在#提示符下键入命令"at-d",屏幕显示:
[root@localhost/root]#at-d1
[root@localhost/root]#at-l
22002-6-615:
00a
(4)作业的顺序执行
用户可以在一个命令行输入多个命令来使作业顺序执行。
这时,作业之间要用分号(;)
或与号(&)分开,Linux系统将按照命令行的顺序来执行这些作业,并将所有的输出在屏
幕上显示出来。
例如,要顺序执行以下三个命令:
①s-l>file1(输出/root目录下的文件的详细格式到file1中)
②catfile1(将file1中的内容输出至屏幕)
③cpfile1file2(将file1中的内容复制到file2中)。
可以在shell提示符下键入命令"ls-l>filel;catfile1;cpflle1file2"。
4.观察系统动态的进程控制和进程调度的好工具-top
格式:
top[options]
功能:
主要是显示系统动态的进程控制和进程调度,除此之外,还可查看内存动态使
用的实时信息。
由它提供的内存动态使用信息包括:
总的可用内存,未占用的内存,已使
用的内存,共享的内存和用于缓存的内存。
常用选项说明:
d:
指出屏幕更新的延迟,可以通过交互命令S来完成改变。
q:
使top不延迟地刷新,如果调用者拥有超级用户的特权,top就以最
高可能的优先级来运行它。
S:
特指累积模式,每一进程都以cpu时间列出。
s:
top将在安全模式下运行以避免交互命令的潜在危险。
i:
不理会任何空闲或僵尸进程就开始运行top。
c:
显示命令行而不只是命令名。
在键入"top"命令后,top命令将以全屏方式显示出了处理器状态的各种动态信息,默
认5秒更新一次显示,其中有很多字段,我们对这些字段作一说明:
top命令的字段说明:
uptime:
显示系统已运行时间和系统的三个加载均值,加载均值是指那些准备在
1分、5分、15分内运行的进程的平均数。
process:
显示在最近一次更新时运行的进程总数并作分类,可通过交互命令t来
切换进程和状态显示。
CPUstates:
显示在用户模式下的CPU利用的百分比、系统方式、优先级任务(优先
级任务仅指那些优先级值为负的)和空闲任务。
花费在优先级任务上的
时间将以系统和用户时间进行计数,所以总数会超过100%,可通过交
互命令t来切换进程和状态显示。
Mem:
:
显示内存使用的统计,包含总的可用内存、空闲内存、已用内存、共享
内存和用于缓存的内存,可通过交互命令m来切换内存信息显示。
swap:
显示对交换空间的统计,包含总的交换空间,可用交换空间和已用交换
空间。
PID:
显示每个任务的进程标识号。
PPID:
显示每个任务的父进程标识号。
UID:
显示任务所有者的用户号。
USER:
显示任务所有者的用户名。
PRI:
显示任务的优先级。
NI:
显示任务的NICE值。
SIZE:
显示任务代码加上数据及堆栈空间的大小(以KB为单位)。
TSIZE:
显示任务的代码大小。
DSIZE:
显示数据加上堆栈的大小但对ELF进程不显示。
TRS:
显示文本驻留空间的大小。
SWAP:
显示此任务使用的交换空间的大小。
D:
显示页的大小。
LIB:
显示使用库页的大小,对ELF进程也无效。
RSS:
显示被任务占用的物理内