当前位置:文档之家› linux系统及应用应用开发实验报告册

linux系统及应用应用开发实验报告册

合肥师范学院实验报告册2013-2014第二学期系别计算机科学与技术实验课程 linux系统及应用专业 11级计算机科学与技术班级嵌入式应用技术姓名学号指导教师何冀军实验项目一览表实验一Linux系统安装和简单配置一、实验目的(1)掌握Linux操作系统的安装步骤;(2)掌握Linux系统的简单配置方法;(3)掌握Linux系统的启动、关闭步骤。

二、实验内容(1)安装Linux系统;(2)配置Linux系统运行环境;(3)正确地启动、关闭系统。

三、实验软件VMWare Workstation 5.0;Red hat linux 9.0镜像文件;四、实验主要步骤(1)配置并安装操作系统;(2)vi创建程序并实用GCC编译;(3)运行程序;五、实验结果实验项目二Linux基本命令的使用一、实验目的(1)掌握Linux一般命令格式;(2)掌握有关文件和目录操作的常用命令;(3)掌握有关进程操作的常用命令;(4)熟练使用man命令。

二、实验内容(1)正确地登陆和退出系统;(2)熟悉date,cal,who,echo,clear,passwd命令;(3)在用户主目录下对文件进行如下操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等;(4)对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等;(5)利用man显示date,echo等命令的手册页;(6)显示系统中的进程信息。

三、实验软件VMWare Workstation 5.0;Red hat linux 9.0;四、实验主要步骤1、登录进入系统,修改个人密码。

2、使用简单命令:date,cal,who,echo,clear等,了解linux命令格式;3、浏览文件系统:(1)运行pwd命令,确定当前工作目录;(2)运行ls –l命令,理解各字段含义;(3)运行ls –ai命令,理解各字段含义。

(4)使用cd命令,将工作目录改到根目录(/)上。

(5)直接使用cd,用pwd命令验证回到的位置。

(6)用mkdir建立一个子目录subdir;(7) 将工作目录改到subdir.4、文件操作(1)验证当前工作目录在subdir;(2)运行date >file1,然后运行cat file1,看到什么信息?(3)运行cat subdir,会有什么结果,为什么?(4)利用man 命令显示date 命令的使用说明;(5)运行man date>>file1,看到什么?运行cat file1,看到什么?(6)利用ls –l file1,了解链接计数是多少?运行ln file1 ../fa,再运行ls –l file1,看链接计数有无变化?用cat命令显示fa文件内容。

(7)显示file1的前10行,后10行。

(8)运行cp file1 file2,然后ls –l,看到什么?运行mv file2 file3,然后ls –l看到什么?运行cat f*,结果怎样?(9)运行rm file3,然后ls –l,结果如何?(10)在/etc/passwd文件中查找适合你注册名的行.(11)运行ls –l,理解各文件的权限是什么?(12)用两种方式改变file1的权限。

(13)统计file1文件的行数、字数。

(14)运行man ls|more,显示结果是什么?运行cat file1|head -20|tee file5 ,结果如何?运行cat file5|wc,结果如何?五、实验结果实验项目三vi编辑器一.实验目的学习使用vi编辑器建立、编辑、显示及加工处理文本文件。

二.实验内容(1)进入和退出vi;(2)利用文本插入方式建立一个文件;(3)在新建的文本文件上移动光标位置;(4)对该文件执行删除、复原、修改、替换等操作。

三.实验软件VMWare Workstation 5.0;Red hat linux 9.0;四.实验主要步骤1、进入vi;2、建立一个文件,如file.c.进入插入方式,输入一个C语言程序的各行内容,故意制造几处错误。

最后将该文件存盘。

回到shell状态下。

3、运行gcc file.c –o myfile,编译该文件,会发现错误提示。

理解其含义。

4、重新进入vi,对该文件进行修改。

然后存盘,退出vi。

重新编译该文件。

如果编译通过了,可以用./myfile运行该程序。

5、运行man date > file10,然后vi file10.使用x,dd等命令删除某些文本行。

使用u命令复原此前的情况。

使用c,r,s等命令修改文本内容。

使用检索命令进行给定模式的检索。

五.实验结果实验项目四shell编程一、实验目的(1)了解shell的作用和主要分类;(2)掌握bash的建立和执行方式;(3)掌握bash的基本语法;(4)学会编写shell脚本。

二、实验内容(1)shell脚本的建立和执行;(2)历史命令和别名定义;(3)shell变量和位置参数、环境变量;(4)bash的特殊字符;(5)一般控制结构;(6)算术运算及bash函数。

三.实验软件VMWare Workstation 5.0;Red hat linux 9.0;四.实验主要步骤1、利用vi建立一个脚本文件,其中包括date,cal,pwd,ls等常用命令。

然后以不同方式执行脚本。

2、运行history命令,配置历史命令环境。

3、体会bash的命令补齐功能。

4、用alias定义别名,然后执行。

5、编辑如下脚本进行执行:6、编写一个shell脚本,求斐波那契数列的前10项及总和。

7、设计一个程序cuts,它由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数,即从输入的字符串中抽取第n个字符至第m个字符之间的所有字符(包括这两个字符)。

例如:$cuts 11 14tis is a test of cuts program (输入)tst(显示结果五.实验结果实验项目五常用开发工具一.实验目的(1)掌握C语言编译的基本用法;(2)掌握gdb调试工具的基本用法;(3)理解make工具的功能,学会编制makefile的方法。

二.实验内容(1)利用gcc编译C语言程序,使用不同选项,观察并分析显示结果;(2)用gdb调试一个编译后的C语言程序;(3)编写一个由多个文件构成的C语言程序,编制makefile,运行make工具进行维护。

三.实验软件VMWare Workstation 5.0;Red hat linux 9.0;四.实验主要步骤1、改写例6.1,使用下列选项对它进行编译:-I,-D,-E,-c,-o,-l。

2、完成对思考题6.5、6.6的调试。

3、完成对思考题6.9的编制,并使用make进行维护。

五.实验结果实验项目六Linux内存管理一、实验目的(1)了解Linux内存管理的基本原理和方法;(2)了解内存申请和释放的方式;(3)掌握malloc,realloc,free,calloc 函数的使用。

二、实验内容(1)使用C语言编写一个包含内存分配与释放的程序,观察分析并显示运行结果;(2)通过gdb等工具对程序进行调试;(3)在程序运行过程中观察系统内存的使用情况,验证内存管理函数的执行效果。

三.实验软件VMWare Workstation 5.0;Red hat linux 9.0;四.实验主要步骤(1)内存库函数实验-malloc函数,运行程序清单6-1,写明运行结果。

(2)内存库函数实验-calloc函数,运行程序清单6-2,写明运行结果。

(3)内存库函数实验-realloc函数,运行程序清单6-3,写明运行结果。

(4)内存错误分析实验:指出程序清单6-4的内存错误原因。

指出程序清单6-5的内存错误原因。

通过比较程序清单6-6、6-7输出结果,分析程序6-3内存错误原因。

五.实验结果程序清单:(1)5-1#include <syslib.h>#include <alloc.h>main(){char *p;clrscr();// clear screenp=(char *)malloc(100);if(p)printf("Memory Allocated at: %x",p);elseprintf("Not Enough Memory!\n"); free(p);return 0;}(2)5-2#include <syslib.h>#include <alloc.h>main(){char *p;clrscr();// clear screenp=(char *)calloc(100,sizeof(char));if(p)printf("Memory Allocated at: %x",p); elseprintf("Not Enough Memory!\n"); free(p);return 0;}(3)5-3#include <syslib.h>#include <alloc.h>main(){char *p;clrscr();// clear screenp=(char *)malloc(100);if(p)printf("Memory Allocated at: %x",p); elseprintf("Not Enough Memory!\n");p=(char *)realloc(p,256);if(p)printf("Memory Reallocated at: %x",p); elseprintf("Not Enough Memory!\n"); free(p);return 0; }(4)5-4……VoidApplyForMem(char *p,int num){p=(char*)malloc(sizeof(char)*num);return;}intmain(){char *str=NULL;………….ApplyForMem(str,300);free(str);infile.close();return 0;}(5)5-5#include <unistd.h>#include <stdlib.h>#include <stdio.h>int main() {char z = *(const char *)0;exit(EXIT_SUCCESS);}(6)5-6#include “stdlib.h”#define HEAP_BLOCK_SIZE 32int main(){// 分配申明heap 内存块1char *pbuf1 = (char *) malloc(HEAP_BLOCK_SIZE);printf("HeapTest block 1 (%d bytes) at %08Xh", sizeof(pbuf1), pbuf1);*pbuf1 = '1';//分配申明heap 内存块2char *pbuf2 = (char *) malloc(HEAP_BLOCK_SIZE);printf("HeapTest block 2 (%d bytes) at %08Xh", sizeof(pbuf2), pbuf2);*pbuf2 = '2';//分配申明heap 内存块3char *pbuf3 = (char *) malloc(HEAP_BLOCK_SIZE);printf("HeapTest block 3 (%d bytes) at %08Xh", sizeof(pbuf3), pbuf3);*pbuf3 = '3';// 释放heap 内存块1printf("HeapTest block 1 (%d bytes) at %08Xh freed",sizeof(pbuf1), pbuf1); free(pbuf1);//释放heap 内存块2printf("HeapTest block 2 (%d bytes) at %08Xh freed",sizeof(pbuf2), pbuf2);free(pbuf2);//释放heap内存块3printf("HeapTest block 3 (%d bytes) at %08Xh freed",sizeof(pbuf3), pbuf3); free(pbuf3);//分配申明heap 内存块4char *pbuf4 = (char *) malloc( HEAP_BLOCK_SIZE);printf("HeapTest block 4 (%d bytes) at %08Xh", sizeof(pbuf4), pbuf4);*pbuf4 = '4';//分配申明heap 内存块5char *pbuf5 = (char *) malloc( HEAP_BLOCK_SIZE);printf("HeapTest block 5 (%d bytes) at %08Xh", sizeof(pbuf5), pbuf5);*pbuf5 = '5';//分配申明heap 内存块6char *pbuf6 = (char *) malloc( HEAP_BLOCK_SIZE);printf("HeapTest block 6 (%d bytes) at %08Xh", sizeof(pbuf6), pbuf6);*pbuf6= '6';for(;;) {Sleep(1000);}return 0;}(7)5-7#include “stdlib.h”#define HEAP_BLOCK_SIZE 32int main(){// 分配申明heap 内存块1char *pbuf1 = (char *) malloc(HEAP_BLOCK_SIZE);printf("HeapTest block 1 (%d bytes) at %08Xh", sizeof(pbuf1), pbuf1);*pbuf1 = '1';//分配申明heap 内存块2char *pbuf2 = (char *) malloc(HEAP_BLOCK_SIZE);printf("HeapTest block 2 (%d bytes) at %08Xh", sizeof(pbuf2), pbuf2);*pbuf2 = '2';//分配申明heap 内存块3char *pbuf3 = (char *) malloc(HEAP_BLOCK_SIZE);printf("HeapTest block 3 (%d bytes) at %08Xh", sizeof(pbuf3), pbuf3);*pbuf3 = '3';// 释放heap 内存块3printf("HeapTest block 3 (%d bytes) at %08Xh freed",sizeof(pbuf3), pbuf3); free(pbuf3);//释放heap 内存块2printf("HeapTest block 2 (%d bytes) at %08Xh freed",sizeof(pbuf2), pbuf2); free(pbuf2);//释放heap内存块1printf("HeapTest block 1 (%d bytes) at %08Xh freed",sizeof(pbuf1), pbuf1);free(pbuf1);//分配申明heap 内存块4char *pbuf4 = (char *) malloc( HEAP_BLOCK_SIZE);printf("HeapTest block 4 (%d bytes) at %08Xh", sizeof(pbuf4), pbuf4);*pbuf4 = '4';//分配申明heap 内存块5char *pbuf5 = (char *) malloc( HEAP_BLOCK_SIZE);printf("HeapTest block 5 (%d bytes) at %08Xh", sizeof(pbuf5), pbuf5);*pbuf5 = '5';//分配申明heap 内存块6char *pbuf6 = (char *) malloc( HEAP_BLOCK_SIZE);printf("HeapTest block 6 (%d bytes) at %08Xh", sizeof(pbuf6), pbuf6);*pbuf6= '6';for(;;) {Sleep(1000);}return 0;}实验项目六Linux环境编程一.实验目的(1)理解系统调用和库函数的异同;(2)学会用系统调用和库函数进行编程;(3)掌握一些常用的系统调用和库函数的功能及应用。

相关主题