大学课件-Unix实验报告2

合集下载

unix实验报告

unix实验报告

unix实验报告《Unix实验报告》摘要:本实验报告旨在介绍Unix操作系统的基本概念、特点和使用方法。

通过实际操作和案例分析,展示了Unix操作系统的强大功能和灵活性,以及其在计算机科学和工程领域的重要性。

1. 引言Unix操作系统是一种多用户、多任务的操作系统,具有稳定性高、安全性强、灵活性大等特点。

它被广泛应用于服务器、工作站和个人电脑等领域,为用户提供了丰富的命令行工具和强大的脚本编程环境。

2. Unix操作系统的基本概念Unix操作系统的基本概念包括文件系统、进程管理、用户管理、权限控制等。

文件系统是Unix操作系统的核心,它采用树状结构组织文件和目录,并提供了丰富的文件操作命令。

进程管理是Unix操作系统的另一个重要特点,它允许多个进程同时运行,并提供了进程控制、调度和通信的功能。

用户管理和权限控制则是Unix操作系统的安全保障,它允许管理员对用户和文件进行灵活的管理和权限设置。

3. Unix操作系统的特点Unix操作系统具有很多特点,如多用户、多任务、多线程、分时共享、高性能等。

它采用了模块化设计和分层结构,使得系统更加稳定和可靠。

此外,Unix 操作系统还提供了丰富的命令行工具和编程环境,为用户提供了强大的自定义和扩展能力。

4. Unix操作系统的使用方法Unix操作系统的使用方法主要包括命令行操作、脚本编程、系统管理等。

通过实际操作和案例分析,我们可以了解到如何使用Unix操作系统进行文件操作、进程管理、用户管理、权限控制等。

同时,我们还可以学习到如何使用Shell脚本进行自动化任务的编写和执行,以及如何进行系统管理和性能调优。

5. 结论Unix操作系统是一种强大而灵活的操作系统,它为用户提供了丰富的命令行工具和编程环境,同时具有稳定性高、安全性强、灵活性大等特点。

通过实际操作和案例分析,我们可以更加深入地了解Unix操作系统的基本概念、特点和使用方法,从而更好地应用它来解决实际问题。

操作系统课件 第十二章 UNIX 实例分析(2)

操作系统课件 第十二章 UNIX 实例分析(2)

后台命令
–在一般命令之后加上一个符号"&", 即成为

后台命令
输入输出重新定向
–用文件来取代标准输入设备或标准输出设备称
作I/O重新定向 –用符号"<","<<",">",">>"分别表示 输入重新定向和输出重新定向
12.8 外壳语言
管道线与过滤器
–利用管道文件pipe可以实现管道线和过滤器 –符号"|"在UNIX系统中被称作管道符 –可以将两个或多个shell命令串联在一起 –前一个命令的标准输出作为后一个命令的标
12.6 设备管理
打开一个设备文件即相当于申请对应的 设备, 如该设备已处于打开状态则等待 关闭一个设备文件即相当于释放对应的 设备, 如有等待者则唤醒一个 读写一个设备文件就相当于对所对应的 设备执行I/O操作
缓冲与缓存
块型设备缓冲
– 用于磁盘,磁带等设备的I/O传输 – 每个缓冲区的长度与块型物理设备中一个块
p_ppid=9 user结构 程序P (覆盖原来程序)
exit(2)
父进程
子进程
pid=wait(&status) 等待子进程终止
proc结构
p_pid=9
proc结构
p_pid=15
p_ppid=5 user结构 pid=fork(); if(pid == 0) /*不成立*/ { execl("P",0); }else{
复制
{ /*子进程代码*/ }else{ /*父进程代码*/ } …
子进程号 (>0整数)
}else{ /*父进程代码*/ } …

中国矿业大学unix实验

中国矿业大学unix实验

《UNIX》实验指导实验一、Linux基本命令1.实验目的掌握linux平台下的基本命令(40个)2.实验说明在介绍所有的命令之前,先介绍一下Linux的在线帮助man。

在Linux下,当你要查找一个命令的用法的,你可以通过 man 命令名来源得命令的详细说明。

因为每个Linux都有一份man文档,所以介绍命令的时候我们只是简直介绍一下命令的学用选项。

如果想查看命令的详细说明,请自己看man。

下面是man各小节的内容:1用户命令。

2系统调用。

3库函数。

4特殊文件(设备和网络接口)。

5文件格式。

6游戏和演示。

7系统环境、表格和宏。

8系统管理和相关命令。

3.命令说明略4. 补充说明本次实验很难完成所有命令的操作,建议参考《Linux命令大全(修改版)》,掌握linux 平台下的所有命令。

5.实验结果以下是一些命令的演示截图6. 实验体会通过本次实验,我对linux的命令有了一定的了解,为接下来的shell编程实验打下了一定的基础。

实验二、shell编程1.实验目的熟练掌握Shell Script编程,加深对linux系统的理解2.实验要求1.知道如何执行shell程序2.在shell脚本中要体现条件控制(如if结构和条件分支)3.在shell脚本中要体现循环(for,while和until循环)4.掌握shell程序的调试3.Shell脚本举例1)赶走一些你不希望进入的用户2)一个简单的目录菜单3)函数调用4)Shell脚本的感染5)列出当前目录下的文件数目6)列出当前目录下的C语言文件4. 实验结果1234565. 实验体会通过本次实验,我对Linux系统下的shell编程有了一定的了解和掌握。

实验三、进程控制1. 实验目的了解与进程控制相关的各种系统调用,加深对进程的状态变迁与进程调度的理解。

2. 实验要求1.掌握进程的创建fork系统调用的原理。

2.掌握exec系统调用的原理。

3.掌握exit系统调用的原理。

Unix实验报告

Unix实验报告

Unix实验报告计算机科学与技术系实验报告专业名称网络工程课程名称《网络操作系统》项目名称UNIX的Shell班级学号姓名同组人员无实验日期2016.6实验5 UNIX的Shell一、实验目的与要求:(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。

)掌握UNIX B-shell的主要功能和shell脚本的编写、运行。

二、实验内容(请根据电子版实验指导书撰写如下内容:实验环境、实验子项目名称、实验步骤、实验运行结果)1、验证UNIX B-shell的主要功能2、编写一shell脚本并赋执行权限运行【实验步骤】1、验证shell的主要功能例1:$ ls -l >file1把ls命令的输出放到文件file1中,屏幕上不产生任何输出。

如果文件不存在则shell 建立它;否则文件的最初内容被来自ls的输出所替代(即覆盖原有数据)。

可以使用下面的记号把输出添加到一个文件原有内容的后面(称追加)$ ls -l >>file1在这种情况下如果file1 不存在则也建立它。

例2:将标准错误输出重定向到指定文件。

$ ls -l jin 2 >errfile由于名为jin的文件不存在,原来在屏幕上看到的错误信息重定向到errfile文件中;标准错误输出可重定向到指定文件中;其形式可用program 2>filename 。

2、编写一shell脚本,并赋执行权限运行:(1)$ vi aaa.sh // 输入可执行的内容,保存退出(2)$ chmod a +x aaa.sh // 赋可执行权限(3)$ aaa.sh // 运行三、实验分析与小结(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)总结分析:1、shell是用户与作业系统之间的交互层,用户修改其环境,设置或取消shell的环境变量,shell的主要任务是:提示用户打入指令,读指令,转换指令为核心所能理解的语言。

操作系统模拟unix文件系统实验报告

操作系统模拟unix文件系统实验报告

操作系统大型实验班级:学号:姓名:一实验介绍……………………………………………………………………1.实验名称2.实验目的3.实验内容及要求二实验环境……………………………………………………………………三实验设计……………………………………………………………………1.数据结构设计2.系统流程设计3.实现命令操作四模块详解……………………………………………………………………1 .文件操作2 .用户操作五实验演示……………………………………………………………………1 .初始化磁盘块2 .用户登录3 .目录操作4 .文件操作六源代码………………………………………………………………………七实验心得体会……………………………………………………………………1.调试中遇到的问题总结2.实验感悟一、实验介绍1.实验名称操作系统大型实验2.实验目的完成一个 UNIX/Linux文件系统的子集的模拟实现,了解Unix文件系统的实现机制。

3.实验内容及要求(1)文件卷结构设计0#块可省略I节点栈及空间为20项块大小为512字节卷盘块数大于100I节点盘块数大于10块(2)I节点结构设计文件大小文件联接计数文件地址文件拥有者文件所属组文件权限及类别文件最后修改时间其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址(3)目录结构用16字节表示,其中14字节为文件名,2字节为I节点号(4)用户及组结构用户信息中包括用户名、口令,所属组,用户打开文件表(5)文件树结构除(4)要求外,适当考虑UNIX本身文件树结构(6)实现功能Ls 显示文件目录Chmod 改变文件权限Chown 改变文件拥有者Chgrp 改变文件所属组Pwd 显示当前目录Cd 改变当前目录Mkdir 创建子目录Rmdir 删除子目录Mv 改变文件名Cp 文件拷贝Rm 文件删除Ln 建立文件联接Cat 连接显示文件内容Vi 文件写入Mk 创建文件umask 查看用户屏蔽码Umask 文件创建屏蔽码Passwd 修改用户口令Ls-l 查看文件类型Login 用户注销Logout 退出系统Help 显示帮助信息二、实验环境实验设备:Microsoft Visual Studio 2010开发语言:c++三、实验设计1.数据结构设计磁盘文件结构设计:用一个名为disk.txt的文件模拟Unix系统磁盘,总共分为200块,每块514个字节(实际可用512个字节,还有2个字节是磁盘分割符‘\n’),使第一块(0#)盘块做为超级块,记录该系统磁盘的使用情况;第二块(1#)盘块——第十三块(12#)盘块作为存储I 结点使用,每个I结点74个字节,所以每个盘块可以存放6个I结点,总共有72个I结点,记录在超级块中;十三块(12#)以后的盘块作为存储文件内容使用,总共187个盘块,用成组连接法记录在超级块中。

北邮 大三下 Unix第二次实验报告

北邮 大三下 Unix第二次实验报告

班级:09211311 姓名:schnee 日期:2012-05-27Unix 编程环境实验二shell命令的实现1.实验目的练习使用系统调用函数实现一个shell命令的功能,进一步熟悉进程控制与进程间通信。

2.实验要求使用fork(),exec(),dup2(),pipe() ,open()系统调用完成与下列shell命令等价的功能。

grep –v usr < /etc/passwd | wc –l > result.txt3.相关系统调用说明-创建新进程用fork()- exec系统调用可以用execlp(file,argv0, argv1, …, 0);-创建匿名管道pipe(int fd[2]);其中fd[0]为读端,fd[1]为写端- dup2系统调用用法为dup2(src_fd, dst_fd);src_fd覆盖掉dst_fd-等待子程序结束用wait(&sv); int sv;4.实验代码#include<fcntl.h>#include<sys/types.h>#include<sys/stat.h>#include<sys/wait.h>#include<unistd.h>#include<stdlib.h>#include<string.h>#include<stdio.h>int main(){int sv, fd[2], infile, outfile;char *file;pipe(fd); //创建管道file="/etc/passwd";infile=open(file, O_RDONLY);file="result.txt";outfile=open(file, O_CREAT|O_WRONLY); //打开文件if(fork()==0){dup2(infile, 0); //输入重定向dup2(fd[1], 1);close(fd[1]);close(fd[0]);execlp("grep", "grep", "-v", "usr", 0); //系统调用}else if(fork()==0){dup2(fd[0], 0);dup2(outfile, 1); //输出重定向close(fd[1]);close(fd[0]);execlp("wc", "wc", "-l", 0); //系统调用}close(fd[1]);close(fd[0]); //不加则会死循环wait(&sv);wait(&sv); //不加则会导致僵尸进程return 0;}5.实验结果截图主文件夹下的a.cpp源文件,a可执行文件以及运行结果result.txt文本文件。

unix 实验报告

unix 实验报告

unix 实验报告UNIX 实验报告一、引言UNIX 是一种操作系统,广泛应用于计算机科学领域。

本实验报告旨在介绍UNIX 操作系统的基本概念、特点和使用方法,并通过实验验证其功能和性能。

二、UNIX 操作系统的基本概念1. UNIX 的起源UNIX 是由贝尔实验室的 Ken Thompson 和 Dennis Ritchie 在 1969 年开发的操作系统。

它最初是为了支持多用户、多任务和分时操作而设计的。

2. UNIX 的特点UNIX 具有以下几个特点:- 可移植性:UNIX 可以在不同的硬件平台上运行,使得软件开发更加灵活。

- 多用户和多任务:UNIX 支持多用户同时使用,并且可以同时运行多个程序。

- 分时操作:UNIX 采用分时操作方式,使得多个用户可以共享计算机资源。

- 强大的命令行界面:UNIX 提供了丰富的命令行工具,使用户可以通过命令完成各种操作。

3. UNIX 的文件系统UNIX 使用层次化的文件系统来组织文件和目录。

文件系统的根目录为 "/",所有的文件和目录都从根目录开始构建。

UNIX 的文件系统采用了一种统一的文件访问方式,用户可以通过文件路径来访问文件。

三、UNIX 操作系统的使用方法1. 登录和注销用户可以通过用户名和密码登录到 UNIX 操作系统。

登录后,可以执行各种命令和操作。

注销时,用户可以使用 "logout" 命令退出系统。

2. 文件和目录操作UNIX 提供了一系列命令来管理文件和目录,如:- "ls" 命令用于列出当前目录下的文件和目录;- "cd" 命令用于切换当前目录;- "mkdir" 命令用于创建新的目录;- "rm" 命令用于删除文件或目录。

3. 进程管理UNIX 允许同时运行多个进程,并提供了一些命令来管理进程,如:- "ps" 命令用于查看当前正在运行的进程;- "kill" 命令用于终止指定的进程。

unix实验报告

unix实验报告

unix实验报告Unix实验报告引言Unix操作系统是一种广泛应用于计算机领域的操作系统,具有稳定性、可靠性和灵活性等优势。

本实验旨在探索Unix操作系统的基本特性和功能,以及如何在Unix环境下进行常见的操作和任务。

一、Unix操作系统的概述Unix操作系统诞生于20世纪70年代,由贝尔实验室的Ken Thompson和Dennis Ritchie等人开发。

它采用了分时操作系统的设计理念,支持多用户、多任务和多进程的运行环境。

Unix操作系统以其开放源代码和良好的可移植性,成为了众多计算机系统的首选操作系统。

二、Unix系统的基本命令和操作在Unix系统中,用户可以通过命令行界面或图形界面来操作系统。

本节将介绍一些常见的Unix命令和操作。

1. 文件和目录管理Unix系统以文件和目录的形式来组织和管理数据。

用户可以使用命令如ls、cd、mkdir等来查看、切换目录以及创建新的目录。

2. 文件编辑和查看Unix系统提供了强大的文本编辑工具,如vi和nano。

用户可以使用这些工具来编辑和查看文本文件,进行代码编写和修改。

3. 进程管理Unix系统支持多进程的运行环境,用户可以使用命令如ps、kill等来查看和管理系统中的进程。

这些命令可以帮助用户了解系统的运行情况,并进行必要的进程控制和管理。

4. 网络和通信Unix系统具有强大的网络和通信功能。

用户可以使用命令如ping、ssh等来测试网络连接和进行远程登录。

此外,Unix系统还支持各种网络协议和服务,如FTP、HTTP等。

三、Unix环境下的编程和开发Unix操作系统以其开放的设计理念,成为了许多程序员和开发者的首选平台。

本节将介绍Unix环境下的编程和开发工具。

1. C语言开发Unix操作系统的内核和许多系统工具都是使用C语言编写的。

因此,C语言成为了Unix环境下最常用的编程语言之一。

开发者可以使用Unix系统提供的gcc 编译器来编译和调试C语言程序。

大学课件-Unix实验报告-Linux

大学课件-Unix实验报告-Linux

⼤学课件-Unix实验报告-Linux《操作系统》系列课程之初级《Linux操作系统使⽤》实验指导书试验1 Linux的基本命令及vi初步实验1.1 命令基础●实验所属系列:操作系统初级试验●实验对象:本科●相关课程及专业:计算机操作系统,软件专业●实验类型:课程设计●实验时数(学分):1学时实验⽬的掌握Linux的基本安装,熟悉Linux命令的格式,熟悉⼀些常⽤的Linux命令,熟悉如何使⽤帮助。

实验内容与要求要求登录进⼊Linux系统,⽽后更改⾃⼰的⽤户⼝令执⾏⼏个常⽤的Linux命令使⽤man命令,来查找特定命令的帮助信息内容⼀、登录,更改密码1.安装VMware虚拟机,安装Linux操作系统。

在安装过程中设置root⽤户的密码为111111。

从图形界⾯进⼊控制台界⾯的组合[Fn+Crtl+Alt]从控制台界⾯进⼊图形界⾯[Alt+F7]2.登录后将当前的密码改为你⾃⼰希望的密码。

⽤⼼记住新密码。

⽤笔记录密码的话,容易引起安全问题。

(passwd命令)3.退出系统后,再重新进⼊,以确定⽤户⾃⼰的密码已经被修改。

[Ctrl+d] / logout / exit4.系统关机:poweroff / shutdown5.重启系统:reboot⼆、基本命令1.显⽰系统的时间(date)2.显⽰⽂件/etc/passwd中⼀共有多少⾏(wc -l /etc/passwd)3.显⽰2002年的全年的⽇历4.显⽰1752年9⽉的⽉历,请注意这个⽉的⽉历是否有些特别。

5.显⽰1999年1⽉与99年1⽉的⽉历。

1999年与99年是同⼀年吗?6.有两个命令是⽤来显⽰当前系统中的⽤户情况的。

⽤这两个命令显⽰现在有哪些⼈已经登录到系统中,并查看他们是何时登录进⼊系统的。

7.只显⽰⽤户⾃⼰的登录名。

8.使⽤clear命令,清屏。

三、man 命令使⽤man man命令,来查找man命令的帮助信息。

仔细阅读系统所给出的帮助信息,注意man命令能提供哪⼏个⽅⾯的帮助?使⽤man cal命令,在系统所提供的帮助中,找出cal命令的正确的使⽤格式。

UNIX实验

UNIX实验

河南城建学院《 UNIX系统与软件开发》实验报告实验名称:实验3 名称:权限管理 _ 成绩:_________ _ __专业班级:学号:姓名:实验日期:2014 年 4 月 10 日实验器材:一台装有Windows操作系统PC机,上装有虚拟机系统VMWare,实验过程通过VMWare系统启Linux系统工作。

一、实验目的Unix/Linux权限和文件管理命令;Unix/Linux文件系统的使用;与文件系统管理相关的其它命令。

二、实验内容及过程(l)先用ls命令按不同的格式列样本目录的内容ls –l /dev/hda? /dev/tty? / network | less,结果如图1所示:图1输入命令ls –la /dev/hda? /dev/tty? / network | less(ls -l a 是列出当前目录中的所有文件和目录,包括隐藏文件和目录),结果如图2所示:图2输入命令:ls –lai /dev/hda? /dev/tty? / network | less,结果如图3所示:图3(2)使用权限管理命令chmod进行权限设置①使用命令:umask或umask –p 或 umask –S查看当前的umask值为0022,使用文件管理命令,touch myfile创建一个新文件myfile,使用目录管理命令,mkdir mydir创建一个新目录mydir;使用命令ls –l检查新创建文件的属性,如图4所示:图4②使用命令umask 0007,设置新的umask值。

然后使用命令,touch myf 创建一个新文件myf,使用命令mkdir myd创建一个新目录myd,如图5所示:图5并使用命令ls –l检查新创建文件的属性如图6所示:图6③为myf或目录myd修改权限(每完成一步操作都要用ls –l检查文件属性,并进行记录):为目录myd增加其它人的可进入和读权限命令:chmod o+rx myd,结果如图7所示:图7为目录myd和文件myf去除同组人的写权限:chmod g-w myd myf,结果如图8所示:图8将目录myd和文件myf的权限设为可读可写可执行:chmod 777 myd myf,结果如图9所示:图9去除其他人对目录myd和文件myf的权限访问权限:chmod o-rwx myd myf,结果如图10所示:图10将目录myd和文件myf的权限设为用户主和同组人可读可写可执行,而其他人不可访问:chmod 770 myf myd,结果如图11所示:图11(3)使用权限管理命令chown,chgrp等进行权限设置(每完成一步操作都要用ls –l检查文件属性,并进行记录):将目录myd用户主设为adm:chown adm myd将目录myd和文件myf的组设为lp:chgrp lp myd myf将目录myd及其所有子目录的用户主设为adm,组设为bin:chown -R adm:bin myd,结果如图12所示:图124)Ext2和Ext3扩展文件属性管理a. 查看新创建文件的扩展属性:lsattr myfb. 为myd和myf增加扩展属性:chattr +i myfc. 再查看myd和myf的扩展属性:lsattr myfd. 试图删除具有扩展属性i的文件myf,观察过程和结果,提示无法删除文件myf,如图13所示:e. 去掉myf的i扩展权限后,再删除该文件,看结果怎样?chattr –i myf; rm –f myf图13三、出现问题分析及解决如图13所示,在试图删除具有扩展属性i的文件myf,结果提示无法删除文件myf,用命令chattr –i myf去掉myf的i扩展权限后,再用rm –f myf删除该文件,则成功删除,结果如图13所示。

UNIX实验2 网络配置命令解析

UNIX实验2  网络配置命令解析

UNIX系统《实验2》实验报告实验项目1:学号姓名课程号实验地点指导教师时间评语:成绩教师签字实验二Linux网络配置与进程管理【实验目的】1.掌握Linux初步的系统管理;2.会在Linux下安装各种软件;3.学会使用vi编辑器;4.掌握Linux网络的配置;5.掌握掌握Linux的进程管理命令。

说明:Linux是多用户系统,每个系统用户都需要使用用户名和口令。

系统为每个登陆用户在/home目录下建立一个与用户名同名的子目录(root用户的主目录为/root)作为用户登陆的起点,用户可以在自己的主目录下创建文件和子目录。

每一个用户都会使用机器上的文件和资源,因而如何对这些用户进行管理,保证系统的效率和安全就显得非常重要。

Linux使用相应的命令完成对用户和用户组的管理。

运用这些命令,可以控制用户的增加删除和权限控制,以及日志的查询。

在Linux下,软件有多种安装包格式,而每种格式又有自己的安装命令和方法。

目前,Linux下流行的安装包格式主要有两种:一是二进制分发包格式;二是源代码分发包格式。

RPM包是Red Hat Linux提供的包封装格式,后缀名是.rpm;tar封装包是以tar与其他压缩工具(如gzip,bzip2)将应用程序和相关文件封装成包的方式,后缀名的格式主要是为.tar.gz、tar.Z、tar.bz2或.tgz。

RPM包是应用程序已经预先编译过的可直接安装文件。

对于以tar包分发的二进制包,则需使用命令将tar包解压,然后运行相应目录中的应用程序或运行程序提供的脚本。

源代码包就是源代码可见的软件包。

一个软件如果有源码,任何人都能看到它是如何开发而来的,用户可以通过修改源码来定制、优化软件,以适合实际需要。

vi编辑器有3种操作模式,分别是命令模式(Command mode)、插入模式(Insert mode)和末行模式(Last line mode)。

Linux中,通过编辑一些文本文件也可以对网络进行配置。

unix操作系统实验汇总2

unix操作系统实验汇总2

unix操作系统实验汇总2
实验3 进程通信
一、实验目的
1.了解管道的基本概念;
2.掌握Linux支持的管道通信方式。

3.理解Socket通信的基本概念和工作原理;
4.掌握Socket的建立、监听、连接、发送和接收数据的方法;
5.在Linux下使用C语言设计和实现基于Socket通信的程序。

二、实验内容
1.利用管道通信机制,实现输入字符串的自动分流操作。

一共涉及3个管道,4个进程:
(1)P1:从键盘接收输入字符串,写入管道Pipe1;
(2)P2:从Pipe1接收字符串,若字符串的长度为偶数,则将其写入管道Pipe2,否则将其写入管道Pipe3;
(3)P3:从Pipe2读出字符串,并显示“Pipe2:Even length string: 偶长度字符串”;
(4)P4:从Pipe3读出字符串,并显示“Pipe3:Odd length string: 奇长度字符串”;
(5)输入exit 程序退出。

2.在同一台机器上建立一个服务器端Server,一个客户端Client
(1)建立Server 与Client的连接;
(2)Server提供一个计算功能,即进行四则运算(除号用/代替);
(3)Client从键盘接收运算格式串,串的格式为:操作符(+-*÷)之一,操作数1,操作数2(7.例如发送字符串:*,3,5 表示要Sever 计算 3 * 5);
(4)Server接收命令串,解析并计算之,结果以字符串形式返回给Client,Client 显示结果;
(5)输入q结束Client,Client结束前断开与Server的连接。

三、实验代码
四、遇到问题及解决办法。

Unix操作系统实验报告

Unix操作系统实验报告

Unix操作系统实验报告计算机科学与技术学院实验一、Linux基本命令一.实验目的掌握linux平台下的基本命令(40个)二.实验说明在介绍所有的命令之前,先介绍一下Linux的在线帮助man。

在Linux下,当你要查找一个命令的用法的,你可以通过man 命令名来源得命令的详细说明。

因为每个Linux都有一份man文档,所以介绍命令的时候我们只是简直介绍一下命令的学用选项。

如果想查看命令的详细说明,请自己看man。

下面是man各小节的内容:1 用户命令。

2 系统调用。

3 库函数。

4 特殊文件(设备和网络接口)。

5 文件格式。

6 游戏和演示。

7 系统环境、表格和宏。

8 系统管理和相关命令。

三.命令说明1.apropos 依据所给关键字查找相关的命令和系统调用格式:apropos keyword例:查找与ftp相关的命令和系统调用$apropos ftp注:类似的命令有man -k。

man -k 其实就是执行apropos2.at 在某一特定时间执行指定的命令格式:at [-V][-q 队列][-f 文件][-m] time选项说明:-V显示标准的错误输出。

-f可将作业存在一个文件中,用这个选项指定文件。

例如一个shell文件。

-q指定队列名称,默认为c。

-m执行后给用户发邮件。

time 指定开始执行的时间。

时间格式为: HH:MM,日期格式:MM/DD/YY或MM.DD.YY或MMDDYY。

下面的例子演示了在2004年3月11日21点34分执行一个at命令。

$at 21:34 03/11/04执行这条命令后会得到一条warning:commands will be executed using (in order) a)$SHELL b) login shellc)/bin/sh。

然后就出现“at>”的提示符。

这时你就可以输入你要执行的命令了,结束后按Ctrl+d。

你就可以去喝茶了,到时间后系统会自动执行它。

UNIX实验

UNIX实验

UNIX实验题实验一(1)常用命令引用参照教材例子运行命令:date,cal,who,echo,clear,cp,mv,rm,cat,mkdir,rmdir,ls注意理解输入输出重定向<,>,和管道(|)操作的功能在/etc/passwd文件中查找适合你的注册名得行实验一(2)文件名通配符的验证A.Pwd显示当前目录mkdir bak在当前目录下创建bak子目录,并转到该子目录下用vi生成try.c,zap.c,arc.c,xxx.h四文件执行cat *.c写出实际执行的命令:cat arc.c try.c zap.c (按字典序)对命令cat来说,指定了3个文件B.在当前目录下创建三个文件:a1.c1aaaaaaaaaaa2bbbbbbbbbba2.c1xxxxxxxxxx2xxxa1.cxxxxtry.c1yyyyyyyyyy2yyyyya*.cyy3hdsba1.cjjdfds4jdfj43a2.c654然后分别执行grep a*.c try.c与grep 'a*.c' try.c命令查看两命令的执行结果,并说明起区别前者实际执行grep a1.c a2.c try.c,在a2.c和try.c中查找正则表达式a1.c后者在try.c文件中查找正则表达式a*.c实验二(1)文件的写权限(注:应先创建有账户jiang且登录)$ who am ijiang pts/2 Jun 06 08:34$ who > mydata$ ls -l mydata-rw-r--r-- 1 jiang usr 58 Jun 06 09:04 mydata$ chmod u-w mydata (注:去除文件主的写权限;u 用户主,-去除,w写)$ who >> mydata (注:>>将who的输出内容附加到mydata文件中,注意该命令的执行结果,想想为什么?) mydata: The file access permissions do not allow the specified action.$ rm mydata (只读文件可以被删除,为什么?) rm: Remove mydata? y$ ls -l mydatals: 0653-341 The file mydata does not exist.实验二(2)文件的读权限$ who > mydata$ chmod u-rw mydata$ cat mydata (无法读取不允许读的文件中内容)cat: 0652-050 Cannot open mydata.$ chmod 644 mydata实验二(3)目录写权限$ chmod u-w . (当前目录不许写)$ who > mydata2 (不能创建新文件,为什么?)mydata2: The file access permissions do not allow the specified action.$ who >> mydata (但是可以修改已有的文件,追加一部分数据,为什么?)$ rm mydata (不能删除文件)rm: 0653-609 Cannot remove mydata.The file access permissions do not allow the specified action.$ cp /etc/passwd mydata (可以覆盖旧文件)$ cp /etc/passwd mydata2 (不能创建新文件))cp: mydata2: The file access permissions do not allow the specified action.$ mv mydata MyData (文件不许改名)mv: 0653-401 Cannot rename mydata to MyData:The file access permissions do not allow the specified action.$ mkdir Test (不可创建子目录)mkdir: 0653-357 Cannot access directory ...: The file access permissions do not allow the specified action.实验二(4)目录读权限$ pwd/usr/jiang$ chmod u-r .$ ls (不可读的目录无法列表出其中文件)ls: .: The file access permissions do not allow the specified action.$ chmod 000 . (取消当前目录所有权限)$ lsls: 0653-345 .: Permission denied.$ chmod 755 . (试图恢复当前目录权限失败,因为试图访问当前目录下的.文件)chmod: .: The file access permissions do not allow the specified action.$ chmod 755 /usr/jiang (这种访问不需要当前目录权限,可恢复当前目录权限)n 子目录没有读写权限,但是保留了x权限$ chmod u=x ttt$ cat ttt/ccp.cmain(int argc, char **argv){ ...}$ rm ttt/arg.c (子目录没有写权限,不能删除其中的文件)rm: 0653-609 Cannot remove ttt/arg.c.The file access permissions do not allow the specified action.$ ls ttt (子目录没有读权限,不能列出其中的文件)ls: ttt: The file access permissions do not allow the specified action.n 子目录有读写权限,但没有x权限$ chmod u=rw ttt$ ls tttBUGS.report arg.c ccp.c chap.h mydataarg auth.c chap.c disk.img$ cat ttt/arg.ccat: 0652-050 Cannot open ttt/arg.c.(试图设置其他用户的文件或目录的权限)$ chmod 777 /chmod: /: Operation not permitted.实验二(5)文件归档与压缩的应用先在当前目录下创建abc子目录,再在abc子目录下创建abc1子目录,并分别复制一些文件到abc和abc\abc1目录下,然后做入如下操作。

《unix-os教学课件》unix操作系统实验二

《unix-os教学课件》unix操作系统实验二
掌握进程优先级的调整方法
可以使用nice和renice命令调整进程的优先级,nice用于设置新启动的进程的优先级,renice用于修改已经运行的进程的优先级。
理解进程调度的原理
Unix操作系统采用基于优先级的抢占式调度算法,当一个优先级高的进程正在运行时,如果有一个优先级更高的进程就绪,那么当前运行的进程将被强制停止,让高优先级的进程运行。
进程的优先级与调度
05
Unix操作系统实验二:网络配置
总结词
网络接口配置是Unix操作系统中实现网络连接的关键步骤,包括配置网络接口卡参数、IP地址和子网掩码等。
在进行网络接口配置时,需要选择合适的网络接口卡,并设置其参数,如中断号、I/O端口等。然后,需要配置IP地址和子网掩码,以便在局域网或广域网中与其他计算机进行通信。
多用户多任务
Unix支持多个用户同时登录和使用系统资源,能够高效地处理多个任务和进程。
安全稳定
Unix系统设计注重安全性,具有强大的权限管理和访问控制机制,能够保证系统的稳定性和数据的安全性。
高度可定制性
Unix系统可以根据用户需求进行高度定制,包括系统配置、桌面环境、应用程序等。
Unix操作系统的特点

进程的启动与终止
总结词
详细描述
总结词
详细描述
总结词
详细描述
掌握进程查看命令
可以使用ps命令、top命令和htop命令等查看当前运行的进程,这些命令可以显示进程的详细信息,如进程ID、CPU占用率、内存占用率等。
理解进程监控的意义
进程监控可以帮助我们了解进程的运行状态,及时发现异常进程并进行处理,保证系统的稳定性和安全性。
网络接口配置是Unix操作系统中实现网络连接的关键步骤,包括配置网络接口卡参数、IP地址和子网掩码等。

unix实验指导

unix实验指导

《UNIX操作系统》实验教程目录实验一Unix操作系统使用 (2)实验目的 (2)实验时间 (2)实验内容 (2)实验二文件系统观察 (5)实验目的 (5)实验时间 (5)实验要求 (5)实验三认识进程 (7)实验目的 (7)实验时间 (7)实验要求 (7)实验四vi编辑器 (9)实验目的 (9)实验时间 (9)实验要求 (9)实验五Unix下shell语言编程 (10)实验目的 (10)实验时间 (10)实验内容 (10)注意事项1.实验报告作为《UNIX操作系统》课程的主要考核部分。

2.实验步骤部分务必认真填写,每个实验必须有以下部分(见示例):a)完成实验要求的工作,需列出执行命令和执行结果;b)对执行结果的详细分析和解释;c)错误以及错误原因;d)文档格式清晰3.实验报告要认真填写:严禁基本雷同严禁格式混乱严禁网上抄袭严禁点名不到实验一Unix操作系统使用实验目的1.熟练使用Unix字符界面的常用命令2.熟练使用Unix文件系统命令3.熟练使用Unix的在线求助系统实验时间4学时实验内容可选择“系统工具/终端”进入shell:键入 exit或按 [Ctrl]-[D]即可退出 shell。

(一)常用UNIX命令1.查看当前登陆在系统中的用户列表2.查看的who帮助,学习如何使用who查看系统中的用户总数和系统启动时间3.使用简单的密码(如用户名、123456等)修改密码4.使用满足UNIX要求的密码修改密码5.重启并使用新密码登录6.查看当前的日期和时间7.查看自己的生日是星期几8.查看2001年的日历表9.使用less命令查看系统初始化配置(less /etc/inittab),可以使用下列快捷键控制∙空白键:向下翻页∙[pagedown]:向下翻页∙[pageup]:向上翻页∙/字串:向下搜索∙?字串:向上搜索∙n :重复前一个搜寻(与/ 或? 有关)∙N :反向重复前一个搜寻(与/ 或? 有关)∙q:退出10.查看主机名11.查看系统启动以来已运行时间12.查看系统版本(二)UNIX文件系统命令1.在用户主目录内新建一目录,该目录须以你的学号目录名(后面假设目录名为123)2.显示当前目录3.改变到用户主目录4.列出当前目录的文件,分别a)查看文件的权限b)显示隐藏文件c)结果按修改时间排序d)结果按修改时间逆序排序5.改变到123目录下,创建名为你姓名的新文件(提示,创建文件可以使用命令:touch文件名,后面假设该文件名为file)6.删除file7.删除123目录8.在主目录重新创建名为你姓名的新文件,以需要确认的方式删除该文件(三)UNIX文件系统命令1.在用户主目录下创建名为你的学号的目录(后面假设目录名为123)2.将123目录重命名为你的名字(后面假设该目录名为dir)3.把用户主目录下的所有文件复制到dir目录下4.创建名为你姓名的新文件(后面假设该文件名为file)5.分别使用数字和符号两种方式将file的权限更改为-rw-r—r--6.创建file的硬链接7.将file更名为large.old8.将file移到dir下9.执行以下命令,并用ls命令及其-i和-l选项观察i节点数和链接数的变化:a)改变的dir目录下b)创建file文件的别名,成为姓名+你的学号(后面设为file123)c)列出所有以file开头的文件d)复制file为file.olde)列出所有以file开头的文件f)列出所有扩展名为old的文件g)使用命令touch file更改file状态,同时观察file123文件的状态变化h)回到用户主目录i)删除dir目录下的所有文件名含有file字符串的文件j)删除dir目录下的文件k)列出用户主目录文件10.保存用户主目录中所有7天前创建的文件列表11.查找名为passwd的文件12.查找名为profile的文件13.查找所有多于10天的文件实验二文件系统观察实验目的1.进一步掌握文件系统的基本概念2.学习对文件和文件系统的观察和操作实验时间2学时实验要求1.分别以root和普通用户身份登录并进入各自的主目录,分别报告当前路径。

操作系统实验报告2

操作系统实验报告2

操作系统实验报告实验二进程间通信
班级:09网络班
学号:
姓名:
成绩:
2011年12月8日
(一)信号机制实验
一、实验目的
1、了解什么是信号
2、熟悉LINUX系统中进程之间软中断通信的基本原理
二、实验内容
1、编写程序:用fork( )创建两个子进程,再用系统调用signal( )让父进程捕捉键盘上来的中断信号(即按^c键);捕捉到中断信号后,父进程用系统调用kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
Child process1 is killed by parent!
Child process2 is killed by parent!
父进程等待两个子进程终止后,输出如下的信息后终止:
Parent process is killed!
2、分析利用软中断通信实现进程同步的机理。

源程序:
运行结果(修改前):
修改完程序:
运行结果(按ctrl+c后):
三、思考题:
1、该程序段前面部分用了两个wait(0),它们起什么作用?
答:
2、该程序段中每个进程退出时都用了语句exit(0),为什么?
答:
3、为何预期的结果并未显示出?
答:
4、程序该如何修改才能得到正确结果?
答:
5、不修改程序如何得到期望的输出?、
答:
四、实验心得。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子科技大学计算机科学与工程学院标准实验报告(实验)课程名称Unix操作系统电子科技大学教务处制表电子科技大学实验报告一、实验室名称:计算机学院实验中心二、实验项目名称:图书馆管理系统三、实验目的:掌握shell编程的一般方法,能运用常用的shell命令编写一个简单的shell程序,并能在Linux系统所提供的/bin/sh或/bin/bash下正确的运行。

四、实验内容:•写一个菜单驱动的Linux图书馆管理程序(LLIB),该程序能够对书库中的图书执行增加一条记录、删除一条记录、显示一条记录、更新一条记录状态和打印报表等功能。

图书库为一个文本文件library, 其中每一行为一个记录,包括六个字段,描述一种书的六种信息(假设每一种书只能有一本),分别是:•书名•作者•种类,假设有三种有效类型:系统书:简写为system参考书:简写为reference教科书:简写为textbook•状态:表示书被借出还是在书库中。

图书状态由程序决定,当增加一本书时或书被还回时,该状态自动设为in;当书被借出时,状态改为out;•借阅者姓名:当图书在书库中(即状态字段为in)时,该字段为空;当书被借出(即状态字段为out)时,该字段为借阅者姓名;•日期:当图书在书库中(即状态字段为in)时,该字段为空;当书被借出(即状态字段为out)时,该字段为借出日期。

•由于在书名和作者字段的字符串中可能包含空格,所以在每条记录中各字段之间的间隔符为冒号(:)。

程序结构要求:五、实验器材(设备、元器件):• 个人电脑(安装window 10操作系统)• WSL(window 10下的Linux 子系统)• cmder(windows 10下的命令行)六、实验步骤及操作:代码:#!/bin/rbash# 记录的借出状态STATUS_AVAILABLE=0STATUS_UNAVALABLE=1# 加粗输出第一个参数function echoBold() {echo -e "\033[0;0;1m$1\033[0;0;0m"}# 输出标题 附带第一参数function echofunctionTitle() {echo -e Linux Library - `echoBold $1`}# 读输入直到正确选择yes 或者nofunction yesOrNo() {input=""while true # 等待正确输入doread -p "$1Y(es) or N(o)?>" inputcase "$input" inLLIB ADD DISPLAY UPDATE DELETE ERROR EDIT REPORTSREPORT_NOyes|yeS|yEs|yES|Yes|YeS|YEs|YES|Y|y)return 1 # 选择‘是’;;no|No|NO|nO|N|n)return 0 # 选择‘否’;;*);; # 无法识别的输入继续循环等待输入esacdone}# 欢迎界面function welcome() {clearecho -e `echoBold "Linux Library Manager"`echo -e "This is the Linux Library application\nPlease enter any key to continue..."read -n 1 # 等待任意一个字符的输入}# 展示主菜单function showMenu() {clearechofunctionTitle "MAIN MENU"echo 0: `echoBold EXIT` this programecho 1: `echoBold EDIT` showMenuecho 2: `echoBold REPORTS` Menu}# 输入错误显示function onWrongInput() {clearecho -e Wrong Input. Try again.echo -e "Press any key to continue...>\c"read -n 1}# 添加一本书function addABook() {clearechofunctionTitle "ADD MODE"title=""author=""category=""while test -z "$title"doread -p "Title: " title # 读入非空标题donewhile test -z "$author"doread -p "Author: " author # 读入非空作者doneread-p "Category (system(sys)|reference(ref)|textbook(tb): "categorywhile truedocase"$category"insystem|sys)category="system"# 规范化存储的类别break;;reference|ref)category="reference"# 规范化break;;textbook|tb)category="textbook"# 规范化break;;*) # 输入不在限定的类别之中echo Wrong category. Please input again.read -p "Category (system(sys)|reference(ref)|textbook(tb): " category;;esacdone# 检测是否已经存在该条书目信息记录line=$(grep -E "${title}:${author}:[^:]*:[01]:[^:]*:[^:]*" library |wc -l)# 存在该条记录不允许添加if [ $line -gt 0 ]thenecho"error: the book exists"elseecho"${title}:${author}:${category}:${STATUS_AVAILABLE}::" >> libraryfi}# 根据一行记录打印信息function showBookInfo() {# 以:为分割符取出书的具体信息title=`echo $1 | cut -d ":" -f 1`author=`echo $1 | cut -d ":" -f 2`category=`echo $1 | cut -d ":" -f 3`status=`echo $1 | cut -d ":" -f 4`echo""echo"Title: $title"echo"Author: $author"echo"Categoty: $category"# 展示状态信息if [ "$status" == "$STATUS_AVAILABLE" ]thenecho Status: inif [ "$2" == "u" ] # 带有参数2,并且为u,打印更新相关信息thenecho New status: outfielseecho Status: outif [ "$2" == "u" ]thenecho New status: infiecho""echo Checked out by: `echo $1 | cut -d ":" -f 5`echo Date: `echo $1 | cut -d ":" -f 6`fiecho""return $status}# 删除一本书function deleteABook() {clearauthor=""read -p "Enter the title>" title# 查找记录中书名符合的行数line=`grep -E "${title}:[^:]*:[^:]*:[01]:[^:]*:[^:]*" library |wc -l`# 多于一行,需要再指定作者来消除冲突if [ $line -lt 1 ]thenecho no such bookread -p "Any key to return" -n 1return# 少于一行,说明不存在elif [ $line -gt 1 ]thenecho $line books named title found. Please specify the authorread -p "Enter the author>" authorfiinfo=":::::"if [ "$author" != "" ] # 有指定作者名,以书名和作者名查找,取第一条theninfo=`grep -E "${title}:${author}:[^:]*:[01]:[^:]*:[^:]*" library | head -n 1`elseinfo=`grep -E "${title}:[^:]*:[^:]*:[01]:[^:]*:[^:]*" library` fiif [ info == ":::::" ] || [ info == "" ]thenecho no such bookread -p "Any key to return>" -n 1returnelseechofunctionTitle "DELETE MODE"showBookInfo $infofiyon=1while truedoyesOrNo "Delete this book? "yon=$?if [ $yon = 1 ]thenif test -n authorthengrep -v "${title}:${author}:[^:]*:[01]:[^:]*:[^:]*"library > tmpelsegrep -v "${title}:[^:]*:[^:]*:[01]:[^:]*:[^:]*" library > tmpfi# 删除mv tmp librarybreakelif [ $yon = 0 ]thenbreakfidone}# 展示查找书目function displayABook() {clear# 查找方式同上# title有冲突需要指定作者author=""read -p "Enter the title>" titleline=`grep -E "${title}:[^:]*:[^:]*:[01]:[^:]*:[^:]*" library |wc -l`if [ $line -lt 1 ]thenecho no such bookread -p "Any key to return" -n 1returnelif [ $line -gt 1 ]thenecho $line books named $title found. Please specify the authorread -p "Enter the author>" authorfiinfo=":::::"if [ "$author" != "" ]theninfo=`grep -E "${title}:${author}:[^:]*:[01]:[^:]*:[^:]*" library | head -n 1`elseinfo=`grep -E "${title}:[^:]*:[^:]*:[01]:[^:]*:[^:]*" library` fiif [ info == ":::::" ] || [ info == "" ]thenecho no such bookread -p "Any key to return>" -n 1returnelseechofunctionTitle "DISPLAY MODE"showBookInfo $infofi}# 更新书目状态function updateABook() {clearauthor=""read -p "Enter the title>" titleline=`grep -E "${title}:[^:]*:[^:]*:[01]:[^:]*:[^:]*" library |wc -l`if [ $line -lt 1 ]thenecho no such bookread -p "Any key to return" -n 1returnelif [ $line -gt 1 ]thenecho $line books named $title found. Please specify the authorread -p "Enter the author>" authorfiinfo=":::::"if [ "$author" != "" ]theninfo=`grep -E "${title}:${author}:[^:]*:[01]:[^:]*:[^:]*" library | head -n 1`elseinfo=`grep -E "${title}:[^:]*:[^:]*:[01]:[^:]*:[^:]*" library` fiif [ info == ":::::" ] || [ info == "" ]thenecho no such bookread -p "Any key to return>" -n 1returnfiechofunctionTitle "UPDATE MODE"showBookInfo $info uoldStatus=$?echo oldStatus=$oldStatus #记录旧状态(在展示书目信息里返回)yesOrNo "Update? "yon=$?if [ $yon -eq 1 ]then# 确定更新# 删除旧记录,并提取信息grep -v "$info" library > tmpmv tmp librarytitle=`echo $info | cut -d ":" -f 1`author=`echo $info | cut -d ":" -f 2`category=`echo $info | cut -d ":" -f 3`if [ "$oldStatus" == "$STATUS_UNAVALABLE" ]then# 无需借出人信息,借出时间echo"${title}:${author}:${category}:${STATUS_AVAILABLE}::" >> library else# 更新为借出状态,需要输入借出人姓名# 使用系统时间date=`date "+%Y-%m-%d-%H-%M"`name=""while [ "$name" == "" ]doread -p "input name(@$date)>" namedone# 输出到库文件echo"${title}:${author}:${category}:${STATUS_UNAVALABLE}:${name}:${date}" >> libraryfifi}# 展示所有书目function reportAllBooks() {# 排序栏位置起始let start=$1-1end=$1# 临时文件,需要新创建,所以删除已经存在的if [ -f report ]thenrm -rf reportfi# 排序后用showBookInfo输出并重定向到临时文件sort -t ":" +$start -$end library | while read linedoshowBookInfo $line >> reportdone# 展示内容more reportread -n 1 -p "Any key to continue>"# 展示结束删除临时文件rm -rf report}# 展示的菜单function reportMenu() {while truedoclearechofunctionTitle "REPORTS MENU"# 排序方式echo 0: `echoBold RETURN`echo 1: Sorted by `echoBold TITLES`echo 2: Sorted by `echoBold AUTHOR`echo 3: Sorted by `echoBold GATEGORY`read -p "Enter your choice>" chif [ "$ch" == 0 ]thenreturnelif [ "$ch" == 1 ] || [ "$ch" == 2 ] || [ "$ch" == 3 ]then# 传入排序方式reportAllBooks $chbreakelseonWrongInputfidone}# 展示编辑选项菜单function showEditMenu() {clearechofunctionTitle "EDIT MENU"echo 0: `echoBold RETURN` to the main menuecho 1: `echoBold ADD`echo 2: `echoBold "UPDATE STATUS"`echo 3: `echoBold DISPLAY`echo 4: `echoBold DELETE`}# 编辑选项菜单功能控制function onEditMenu() {clearopt=""# 保存选择的操作until [ "$opt" == "0" ]doshowEditMenuread -p "Enter your choice>" optcase"$opt"in"0");;"1")yon=1 # 控制是否继续添加while truedoif [ $yon -eq 1 ] # 输入yes,继续添加thenaddABookyesOrNo "Any more to add? "yon=$?elsebreak# 输入no,退出循环fidone;;"2")yon=1 # 控制是否继续更新while truedoif [ $yon -eq 1 ] # 输入yes,继续更新thenupdateABookyesOrNo "Any more to update? "yon=$?elsebreak# 输入no,推出循环fidone;;"3")yon=1 # 控制是否继续查找while truedoif [ $yon -eq 1 ] # 输入yes,继续查找thendisplayABookyesOrNo "Any more to look for? " yon=$?elsebreak# 输入no,停止查找fidone;;"4")yon=1 # 控制是否继续删除while truedoif [ $yon -eq 1 ] # 输入yes,继续删除thendeleteABookyesOrNo "Any more to delete? "yon=$?elsebreak# 输入no,停止删除fidone;;*)onWrongInput;; # 不符合要求的输入esacdone}if [ ! -f library ]thentouch libraryfi# 主程序,循环控制主菜单welcomeoption=""until [ "$option" == "0" ]doshowMenuread -p "Enter your choice>" optioncase"$option"in0);;1)onEditMenu;;2)reportMenu;;*)onWrongInput;;esacdone七、实验数据及结果分析:由于WSL的兼容性问题,这里借了一下同学的电脑进入程序:按任意键进入主菜单:输入非0 1 2 3 时:编辑界面:添加一本图书:更新状态:查询书的状态:删除一本书:查询所有的书(标题排序):查询所有的书(作者排序):查询所有的书(按类型排序):八、实验结论:已基本实现要求功能。

相关文档
最新文档