1、操作系统实验报告学生学号 实验课成绩武汉理工大学学 生 实 验 报 告 书实验课程名称 操作系统 开 课 学 院 计算机科学与技术学院 指导老师姓名 学 生 姓 名 学生专业班级 2014 2015 学年 第 一学期实验课程名称: 操作系统 实验项目名称Linux键盘命令和vi实验成绩实验者专业班级软件0901 组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)一、 实验内容描述(问题域描述)Linux键盘命令和vi要求:掌握Linux系统键盘命令的使用方法。二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)VI编辑器的常见命令:vi
2、filename:打开或新建文件,并将光标置于第一行首 vi+nfilename:打开文件,并将光标置于第n行首 vi+filename:打开文件,并将光标置于最后一行首 vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处 vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filename vifilename.filename:打开多个文件,依次进行编辑 :w 将缓冲区写入文件,即保存修改:wq 保存修改并退出:x 保存修改并退出:q 退出,如果对缓冲区进行过修改,则会提示:q! 强制退出,放弃修改查找替换/pattern 向后搜索字
3、符串pattern?pattern 向前搜索字符串patternn 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)N 上一个匹配(同上):%s/old/new/g 搜索整个文件,将所有的old替换为new:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换复制粘贴dd 删除光标所在行dw 删除一个字(word)x 删除当前字符X 删除前一个字符D 删除到行末yy 复制一行,此命令前可跟数字,标识复制多行,如6yy,表示从当前行开始复制6行yw 复制一个字y$ 复制到行末p 粘贴粘贴板的内容到当前行的下面P 粘贴粘贴板的内容到当前行
4、的上面p 有缩进的粘贴,vim会自动调节代码的缩进a 将内容放入/存入a寄存器,可以支持多粘贴板附:比如常用的一个寄存器就是系统寄存器,名称为+,所以从系统粘贴板粘贴到vim中的命令为+p,注意此处的+不表示操作符,二十一个寄存器。移动光标在vim中移动光标跟其他的编辑器中有很大的区别,不过一旦学会了,就会飞速的在文本中移动了。三、主要仪器设备及耗材Ubuntu操作体统Vi编辑器第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(1)进入ubuntu(2)打开终端teiminal(3)输入常见Linux命令测试(4)进入v
5、i(5)在vi中进行输入,修改查找操作(6)退出VI二、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) Linux下部分命令操作: 进入vimVim中编辑:三、 实验小结、建议及体会通过这次实验对Linux操作系统有了进一步的了解。初步掌握了一些Linux系统常用的命令。同时也熟悉了在Linux常用到的Vi编辑器。对自己的学习有很大的帮助。在以后的学习中会多多动手实践,进而提到自己的能力。实验课程名称: 操作系统 实验项目名称Linux下C编程实验成绩实验者专业班级软件0901组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)一、 实验内容描述(问
6、题域描述) Linux下的C编程要求:掌握vi编辑器的使用方法;掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。内容:设计、编辑、编译、连接以及运行一个C程序,其中包含键盘输入和屏幕输出语句。二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)#include int main() int i,j; for(i=1 ; i=9 ; i+) for(j=1 ; j=i ; j+) printf(%d*%d=%-2d ,i,j,i*j); printf(n); return 0;三、主要仪器设备及耗材Ubuntu操作体统Vi编辑器gcc编译
7、第二部分:实验调试与结果分析(可加页)一、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)Vim下编辑源程序:编译运行:二、 实验小结、建议及体会通过这次实验vi编辑器有了进一步的应用,同时学会了在Linux进行简单的C语言编程,掌握Linux下C程序的源程序编辑方法;编译、连接和运行方法。在以后的学习中会加大努力加强自己的编程能力。实验课程名称: 操作系统 实验项目名称SHELL编程和后台批处理实验成绩实验者专业班级软件0901组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)一、 实验内容描述(问题域描述)SHELL编程和后台批处理要求:掌握Li
8、nux系统的SHELL编程方法和后台批处理方法。内容: (1) 将编译、连接以及运行上述C程序各步骤用SHELL程序批处理完成,前台运行。(2) 将上面SHELLL程序后台运行。观察原C程序运行时输入输出情况。 (3) 修改调试上面SHELL程序和C程序,使得在后台批处理方式下,原键盘输入内容可以键盘命令行位置参数方式交互式输入替代原键盘输入内容,然后输出到屏幕。二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)Nine.c文件如下:#include int main() int i,j; for(i=1 ; i=9 ; i+) for(j=1 ;
9、 j=i ; j+) printf(%d*%d=%-2d ,i,j,i*j); printf(n); return 0;SHELL文件:#!/bin/bash#program:#this program is used to run the nine*nine tablegcc -o nine nine.cchmod u+x nine./nine三、主要仪器设备及耗材Ubuntu操作体统Vi编辑器第二部分:实验调试与结果分析(可加页)一、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)二、 实验小结、建议及体会通过这次实验熟悉了shell编程,对Linux下的编程
10、有了进一步的了解。实验课程名称: 操作系统 实验项目名称Linux系统调用(time)实验成绩实验者专业班级软件0901组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)一、 实验内容描述(问题域描述) Linux系统调用使用方法。要求:掌握Linux系统调用使用方法。内容:学习使用time, ctime, sleep, exit等Linux系统调用使用方法。二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)#include #include #include int main() time_t timep; int seconds=
11、time(time_t*)NULL); time(&timep); printf(now is %sn,ctime(&timep); sleep(20); printf(All seconds from 1970.1.1 to now:%dn,seconds); return 0;三、主要仪器设备及耗材Ubuntu操作系统Vi编辑器GCC编译器第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) ctime(将时间和日期以字符串格式表示) 表头文件 #include定义函数 char *ctime(const time_t
12、*timep);函数说明 ctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为“Wed Jun 30 21 :49 :08 1993n”。若再调用相关的时间日期函数,此字符串可能会被破坏。返回值 返回一字符串表示目前当地的时间日期。time(取得目前的时间) 表头文件 #include定义函数 time_t time(time_t *t);函数说明 此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非空指针的话,此函数也会将返回值
13、存到t指针所指的内存。返回值 成功则返回秒数,失败则返回(time_t)-1)值,错误原因存于errno中。sleep(让进程暂停执行一段时间) 表头文件 #include定义函数 unsigned int sleep(unsigned int seconds);函数说明 sleep()会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。返回值 若进程暂停到参数seconds 所指定的时间则返回0,若有信号中断则返回剩余秒数。 二、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)三、实验小结、建议及体会通过这次实验学习使用time, c
14、time, sleep, exit等Linux系统调用使用方法,在以后会多多了解Linux系统调用的更多方法。实验课程名称: 操作系统 实验项目名称Linux进程控制(fork)实验成绩实验者专业班级软件0901组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)一、 实验内容描述(问题域描述)Linux系统进程控制要求:掌握Linux系统中进程控制原语fork的使用方法。内容:设计C程序,其中主进程创建一个子进程,以特定次序各自执行规定操作后退出。二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)#include #include #
15、include #include int main() pid_t pid; if(pid=vfork()0) printf(fork error!n); exit(1); else if(pid=0) printf(child process is printing!n); else printf(parent process is printint!n); exit(0);三、主要仪器设备及耗材Ubuntu操作体统Vi编辑器GCC编译第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) pid_t fork(void);
16、(pid_t 是一个宏定义,其实质是int 被定义在#include中)返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1函数说明:一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。linux将复制父进程的地址空间内容给子进程,因此,子进程有了独立的地址空间。fork会返回两次:由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因为fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。 二、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)三、 实验小结、建议及体会通过这次实验掌握Linux系统中进程控制原语fork的使用方法。同时发现自己对Linux有很多的不熟悉的地方,在以后会进一步加强。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1