LINUX 实验报告.docx

上传人:b****3 文档编号:3833825 上传时间:2022-11-25 格式:DOCX 页数:20 大小:1.75MB
下载 相关 举报
LINUX 实验报告.docx_第1页
第1页 / 共20页
LINUX 实验报告.docx_第2页
第2页 / 共20页
LINUX 实验报告.docx_第3页
第3页 / 共20页
LINUX 实验报告.docx_第4页
第4页 / 共20页
LINUX 实验报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

LINUX 实验报告.docx

《LINUX 实验报告.docx》由会员分享,可在线阅读,更多相关《LINUX 实验报告.docx(20页珍藏版)》请在冰豆网上搜索。

LINUX 实验报告.docx

LINUX实验报告

本科实验报告

 

课程名称:

LINUX系统应用与开发

实验项目:

Linux操作基础和系统界面的熟悉

实验地点:

专业班级:

学号:

学生姓名:

指导教师:

2012年4月

 

实验一、Linux操作基础和系统界面的熟悉

实验目的:

通过本实验,可以掌握Linux的基本操作、Linux的文本编辑以及Linux系统界面的转换和使用,使学生对Linux有一个基本的了解。

实验要求及步骤:

1、Linux的基本操作。

1)在超级用户下新建立一个用户,查看/etc/passwd文件中新用户添加完成后的情况。

(1)useraddstudent

(2)passwd12345

(3)cat/etc/passwd

2)用此用户名和口令登录系统,并用passwd命令修改口令,使用chfn命令输入用户的个人资料,并用finger查看该用户的详细资料。

(1)passwdstudent

(2)chfnstudent

(3)fingerstudent

3)用who命令查看当前登录在系统中的用户列表、登录终端和登录时间以及系统中的用户总数。

2、熟悉Linux操作系统vi编辑器的使用。

1)首先使用vi编辑器编辑一个C语言源程序hello.c,程序的功能是接受用户输入的姓名,然后在屏幕上输出一条语句“Welcome姓名”。

#include

Main()

{charname[20];

printf(“Pleaseinputyourname:

”);

scanf(“%s”,name);

printf(“Welcome%s!

\n”,name);

reture0;}

2)对上述的hello.c文件进行增、删、改操作。

(1)增加文字时用i命令。

(2)删除文字时用dd命令。

(3)修改文字时用x命令。

(4)使用命令“gcc–ohellohello.c”编译源程序,如果发现程序错误,则需要反复使用vi编辑器修改源程序文件并且在修改后重新编译。

3)在vi编辑器中列出用户当前目录下的文件。

(1)利用命令:

vi。

(2)利用命令:

e。

3、熟悉控制台的基本操作以及控制台与XWindow桌面的转换。

4、熟悉XWindow桌面及文件管理器Nautils的使用。

5、通过文件管理器Nautils在XWindow的桌面上建立文件hello.c的链接。

打开文件管理器,找到hello.c文件,单击鼠标右键,选择“创建链接”命令,则在文件管理器的窗口中出现一个图标,名字为“到……的链接”,并且带一个小箭头符号。

只要将该图标拖放到桌面就可以建立到该项目的链接。

然后通过链接打开该文件。

6、通过控制台和XWindow中的文件管理器Nautils进行文件的基本操作。

最后分别通过控制台和XWindow中的文件管理器Nautils在用户主目录下建立一个hello子目录,将hello.c源程序文件和编译以后产生的目标代码文件和可执行文件复制到hello子目录中,删除hello子目录中的hello.c源程序文件,最后再将hello子目录以及其中的文件一并删除。

 

实验二、Linux的文件系统和设备管理

实验目的:

通过本实验可以掌握Linux系统中文件管理的概念,包括常用命令的格式、文件类型、目录结构和文件系统以及Linux下存储设备的挂载与卸载的方法,并学会如何控制文件和目录的存取权限。

实验内容及步骤:

1、了解Linux系统的文件、文件系统的概念,并观察Linux系统的目录结构。

1)查看系统文件/proc/filestems,了解当前Linux系统所支持的文件系统类型。

2)查看Linux系统的目录结构,了解Linux标准目录的主要内容及其用途和操作权限。

查看当前你所处的目录,然后改变当前目录为根目录,确认当前目录为根目录后,了解Linux标准目录/usr、/home、/bin、/dev、/var、/etc和/mnt的主要用途和操作权限。

2、控制文件和目录的存取权限。

1)在用户主目录中创建一个名为mydir的目录。

进入用户主目录,将/usr/bin目录中的cal文件和/bin目录中的cat文件复制到mydir目录中,并分别命名为mycal和mycat。

使用长列表命令来查看mydir目录中的各个文件。

2)使用长列表命令查看/usr/bin目录中的cal文件和/bin目录中的cat文件,并把它们与mydir目录中的文件进行比较。

3)设法在用户主目录中以home_mycal的文件名来调用mydir/mycal文件。

比较这两个文件有什么不同?

文件的链接数是多少?

执行home_mycal文件,执行的结果是什么?

home_mycal和mydir/mycal两者权限相同,硬链接数也相同。

3)改变文件home_mycal的权限,使拥有者只具有读的权限。

试着再运行home_mycal文件,它运行了吗?

为什么?

没有运行,chmodu-rhome_mycal命令执行后,使用者只有读的权限,没有执行权限。

4)删除home_mycal,这样做也删除了mydir/mycal文件吗?

为什么?

没有删除mydir/mycal,对链接的大部分操作,包括打开、读、写等,都被传递给其链接目标,操作真正作用在链接目标上。

另外一些操作,如删除等则作用在链接本身。

3、掌握Linux下存储设备的挂载与卸载的方法。

1)建立挂载点,使用mount和umount命令手工挂载本地磁盘(U盘以及Windows的分区)。

2)使用fdisk-l命令查看设备的连接情况,主要查看U盘以及Windows分区的名称。

3)卸载本地磁盘(U盘以及Windows的分区)。

4)设置/etc/fstab文件,以便在系统启动时自动挂载文件系统。

 

实验三、Linux下的shell编程

实验目的:

使学生熟悉shell的基本操作,掌握shell的基本编程方法,并通过使用Linux中最常用的参数处理创建简单的shell程序来简化日常管理任务,为系统管理服务。

实验内容及步骤:

假设有一台Windows和Linux双启动的主机,Windows有C、D两个分区,编写一个负责挂载的脚本程序mmnt,参数为cdrom时挂载光驱;参数为floppy时挂载软驱;参数为C(大小写都可以)时挂载Windows的C盘(有中文字符);参数为D(大小写都可以)时挂载Windows的D盘(有中文字符);参数为U(大小写都可以)时挂载U盘(有中文字符);参数为其他值时显示帮助信息:

“Usage:

mmntcdrom|floppy|C|c|D|d|U|u”。

编写一个负责卸载的脚本程序umnt,完成相应的存储设备的卸载,参数的含义同上。

1、以root身份登录Linux系统,查看系统的命令提示符,确定系统使用的shell程序类型。

列出Linux系统常见的shell种类。

echo$SHELL

2、使用fdisk-l命令查看系统连接的存储设备,主要查看U盘以及Windows分区的名称,比如hda3,hda5和sda,以确定挂载的设备名。

3、建立挂载点。

mkdir/mnt/C

mkdir/mnt/D

mkdir/mnt/USB

4、编写/etc/fstab文件,编辑或者添加如下5行代码:

/dev/hda3/mnt/Cvfatnoauto,iocharset=cp93600

/dev/hda5/mnt/Dvfatnoauto,iocharset=cp93600

/dev/cdrom/mnt/cdromiso9660noauto,owner,ro00

/dev/fd0/mnt/floppyautonoauto,owner00

/dev/sda/mnt/USBvfatnoauto,iocharset=cp93600

5、编写shell脚本mmnt。

#!

/bin/sh

case$1in

cdrom)mount/mnt/cdrom;;

floppy)mount/mnt/floppy;;

C|c)mount/mnt/C;;

D|d)mount/mnt/D;;

U|u)mount/mnt/USB;;

*)echo“Usage:

mmntcdrom|floppy|C|c|D|d|U|u”;;

Esac

6、编写shell脚本umnt。

#!

/bin/sh

case$1in

cdrom)umount/mnt/cdrom;;

floppy)umount/mnt/floppy;;

C|c)umount/mnt/C;;

D|d)umount/mnt/D;;

U|u)umount/mnt/USB;;

*)echo“Usage:

umntcdrom|floppy|C|c|D|d|U|u”;;

Esac

7、使shell脚本程序mmnt和umnt可执行。

chmod+xmmnt

chmod+xumnt

7、测试shell脚本程序mmnt和umnt执行的结果。

实验四、Linux下的C/C++编程

实验目的:

通过GCC工具的熟练使用,熟悉GCC编译的四个阶段,掌握Linux下C/C++程序的设计、调试与运行的原理、方法与应用技能。

实验内容及步骤:

1、编写一个C语言源程序test,实现从键盘输入n个整数,在内存中自小到大排序后输出。

要求在vi中编辑,用GCC编译、链接、运行,用GCC进行调试,记录输出的结果并分析。

#include

main()

{voidDisplayarray(intarray[]);

intt,i,loop;

intarray[10];

printf("请输入10个数:

");

for(i=0;i<10;i++)

scanf("%d",&array[i]);

printf("原始数组为:

");

Displayarray(array);

for(loop=1;loop<=9;loop++)

{

for(i=0;i<=9-loop;i++)

if(array[i]>array[i+1])

{

t=array[i];

array[i]=array[i+1];

array[i+1]=t;

}

}

printf("排序后升序数组为:

");

Displayarray(array);

}

voidDisplayarray(intarray[])

{inti;

for(i=0;i<10;i++)

printf("%3d",array[i]);

printf("\n");

}

 

2、程序调试实践:

#include

#include

main()

{

charc;//定义一个字符保存从源文件中读取出来的字符。

charname1[20],name2[20];//定义两个字符串数组name1,name2.长度为20。

FILE*fp1,*fp2;//定义两个文件类型的指针。

printf(“Inputsorfilname:

”);

scanf(“%s”,name1);//输入源文件路径保存在name1数组中。

printf(“Inputdesfilname:

”);

scanf(“%s”,name2);//输入目标文件路径保存在name2数组中。

fp1=fopen(name1,“r”);//fp1指针指向源文件。

以读的方式打开源文件

if(fp1==NULL)

{

printf(“Cannotopenrfile\n”);

exit

(1);

}//fp1如果指针指向为空,输出提示:

Cannotopenrfile,exit

(1)表示异常退出。

fp2=fopen(name2,“w”);//fp2指针指向目标文件。

以写的方式打开目标文件

if(fp2==NULL)

{printf(“Cannotopenwfile\n”);

exit;

}//fp2如果指针指向为空,输出提示:

Cannotopenwfile,exit退出。

while((c=fgetc(fp1))!

=EOF)

fputc(c,fp2);

/*从流中读取字符,即从fp1所指定的文件中取得下一个字符。

在每取完一个字符时fp会自动向下移动一个字节。

J将读取的字符保存到C中。

EOF是一个宏,代表文件末尾通过while循环一直读取到文件末尾把文件读取完*/

//把c中的内容保存到fp2指定的文件中。

fclose(fp1);//关闭打开的源文件,并清空缓冲区。

fclose(fp2);//关闭打开的目标文件,并清空缓冲区。

printf(“copycomplete!

\n”);//提示复制完成。

}

录入、编辑、调试、运行以上程序,记录程序的运行结果,在每行的后面加上注释并说明程序实现的功能。

该文件实现的功能是将一个文件中的内容复制到另一个文件中。

将文件编译后授予执行权限运行,在运行过程中:

Inputsorfilname:

提示输入源文件名。

Inputdesfilname:

提示输入目标文件名。

在文件内容从源文件到目标文件复制完成后会提示

copycomplete!

复制成功。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1