完整word版太原理工大学Linux实验报告.docx

上传人:b****7 文档编号:26024524 上传时间:2023-06-17 格式:DOCX 页数:23 大小:778.12KB
下载 相关 举报
完整word版太原理工大学Linux实验报告.docx_第1页
第1页 / 共23页
完整word版太原理工大学Linux实验报告.docx_第2页
第2页 / 共23页
完整word版太原理工大学Linux实验报告.docx_第3页
第3页 / 共23页
完整word版太原理工大学Linux实验报告.docx_第4页
第4页 / 共23页
完整word版太原理工大学Linux实验报告.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

完整word版太原理工大学Linux实验报告.docx

《完整word版太原理工大学Linux实验报告.docx》由会员分享,可在线阅读,更多相关《完整word版太原理工大学Linux实验报告.docx(23页珍藏版)》请在冰豆网上搜索。

完整word版太原理工大学Linux实验报告.docx

完整word版太原理工大学Linux实验报告

实验名称

实验一Linux虚拟机的定制安装

实验地点

计算机学院

实验楼308

实验时间

2017。

4。

18

一、实验目的和要求

1.通过对Linux操作系统的定制安装,建立对Linux操作系统的初步认识,为后续实验的进行提供基础平台。

2.掌握Linux操作系统的虚拟机定制安装。

3.熟悉Linux文件目录结构

二、实验内容和原理

实验内容:

利用虚拟机软件定制安装Linux操作系统,熟悉安装过程中各个选项的意义。

实验原理:

虚拟机可以说是一种软件,也可以说是一种技术,它允许用户在一台主机上虚拟出多台计算机,每台虚拟的计算机都可以有自己的硬件及软件配置

三、主要仪器设备

PC机、VMWorkstation、Redhat5。

0

四、操作方法与实验步骤

1.安装VMwareWorkstation,并汉化

2.在VMwareWorkstation当中创建一个新的虚拟机,指定安装包的路径。

3.安装定制RedhatEnterpriseLinux5。

0安装说明:

(1)对软件开发和和网络服务包进行定制.

(2)选择samba服务、nfs服务、tftp服务、Telnet服务和FTP服务

(3)关闭系统防火墙、禁用SELinux服务

(4)手动设置系统分区

五、实验数据记录和处理

(1)点击VMware主界面上的图标“NewVirtualMachine",创建一个新的虚拟机。

(2)在弹出来的对话框中选择“Custom”对虚拟机进行定制安装,然后点击“下一步”

(3)选择OS的名称:

“Linux”,版本:

“RedHatEnterpriseLinux5”,然后点击“下一步”

(4)选择虚拟机在硬盘上的安装位置,然后点击“下一步”

(5)选择CPU的类型是否为双核,然后点击“下一步"

(6)选择虚拟机的虚拟内存大小,若物理内存较大,可适当增加其值,然后点击“下一步"

(7)选择网络联机模式,局域网用户选择桥接模式:

“Usebridgednetworking",然后点击“下一步”

(8)选择“创建一个虚拟硬盘",然后点击“下一步”

(9)选择硬盘类型,PC机一般选择“IDE",服务器一般选择“SCSI”,然后点击“下一步"

(10)选择硬盘类型,PC机一般选择“IDE”,服务器一般选择“SCSI",然后点击“下一步”

(11)选择虚拟硬盘容量,若硬盘空间较大可适当增加其值,然后点击“下一步",根据提示完成操作,并返回虚拟机主界面

(12)在虚拟机主界面点击如图所示的图标,编辑虚拟机设置

(13)选择系统安装文件(ISO)的位置

(14)在虚拟机主界面启动虚拟机

 

六、实验结果与分析

完成了安装VMwareWorkstation,并汉化,在VMwareWorkstation当中创建一个新的虚拟机,指定安装包的路径,安装定制RedhatEnterpriseLinux5。

0.

七、讨论、心得

本实验通过对Linux操作系统的定制安装,建立对Linux操作系统的初步认识,为后续实验的进行提供基础平台,掌握了Linux操作系统的虚拟机定制安装,熟悉了Linux文件目录的结构,在实验中遇到了一些问题,但是通过网上搜索和同学帮助最终还是完成了。

 

实验名称

实验二熟悉Linux基本命令和GCC编译器

实验地点

计算机学院

实验楼308

实验时间

2017.4。

18

一、实验目的和要求

1.掌握Linux常用命令

2.学会如何获取命令帮助信息

3.熟练掌握Linux常用命令

4.掌握GCC命令的使用及其常用参数的含义

二、实验内容和原理

实验内容:

系统设置命令、文件及文件夹操作命令、压缩与解压缩命令、自动补全与历史命令、软件的安装与卸载、文件挂载、管道与重定向命令、GCC命令的使用

三、主要仪器设备

PC机、VMWorkstation、Redhat5.0

四、操作方法与实验步骤

1.练习以下常用命令的使用shutdown、reboot、logout、exit、useradd、userdel、su、cd、ls、touch、mkdir、cp、rm、rmdir、mv、more、less、man、du、find、clear、grep、cat、history、tar、unzip、chmod、管道命令|以及重定向命令命令练习步骤如下:

⑴显示当前目录

⑵进入到当前用户的主目录

⑶查看ls的手册

⑷查看当前目录的所有文件,并显示每个文件的详细信息

⑸在根目录下创建test目录

⑹在test目录下创建user1/user2目录结构

⑺在user2下创建文件myfile

⑻将myfile复制到user1下

⑼用tar命令将test打包

⑽将打包好的文件改名为myfile.tar.gz

⑾将myfile.tar.gz移动到home目录下

⑿查找root用户下主目录中使用名为myfile的文件

⒀删除test子目录下的所有文件

⒁利用rmdir删除test

⒂显示系统的时间日期,显示一个日历

⒃查看内存使用情况、显示系统进程

⒄运行cat,利用kill将cat进程杀死

⒅在/var/lib目录下查找所有大小超过1000000B的文件,并以长格式显示

⒆利用rpm查询是否安装了squid软件包,如果已安装则卸载该软件

⒇将squid—2。

6。

STABLE21-3.el5。

i386。

rpm安装

2.举例说明重定向命令<、<〈、〉、〉>的使用

3。

编写一个C的源程序,并用gcc进行编译,练习使用gcc的各个参数,理解每个参数的意义

五、实验数据记录和处理

1.实验中的具体指令如下:

(1)ls

(2)cd/

(3)ls--help

(4)ls-al

(5)mkdir/root/test

(6)cd/root/testmkdiruser1/user2

(7)touchuser1/user2/myfile

(8)cpmyfile/root/test/user1

(9)(10)tarcvzfmyfile.tar。

gz/root/test

(11)mvmyfile。

tar。

gz/home

(12)find/—namemyfile

(13)rm—r/root/test

(14)rmdir/root/test

(15)显示系统时间date显示日历cal

(16)psaux

(17)cat1.txt

psaux(查看cat的进程号,假设为x)kill-sSIGKILLx

(18)find/var/lib/-size+1000000c

(19)rpm-qsquid

(20)rpm—ivhsquid—2。

6.STABLE6—4。

el5。

i386。

rpm

2.cat>a。

txt(键盘输入的内容保存在a。

txt中,覆盖之前的内容)

cat〉b。

txt

txt中的内容输入到文件b.txt中)

grep0b。

txt〈〈a.txt(把a.txt的内容输入到b。

txt中)

3.gcchello.c(程序文件)—ohello(目标执行文件)

—ofile:

指定生成的可执行文件名为file,若省略次选项,系统给出默认文件为a。

out?

—c:

只进行预处理、编译,不生成可执行文件。

即:

编译器只是把.c的源文件生成。

o的目标文件.?

—g:

产生调试工具(GNU的GDB)所必要的符号信息,要想对编译出的程序进行调试,必须加入此选项

六、实验结果与分析

通过一系列的Linux命令来熟悉linux,系统设置命令、文件及文件夹操作命令、压缩与解压缩命令、自动补全与历史命令、软件的安装与卸载、文件挂载、管道与重定向命令、GCC命令的使用.

七、讨论、心得

通过本实验,对之前学过的Linux基本操作命令进行了深化了解,包括系统设置命令、文件及文件夹操作命令、压缩与解压缩命令、自动补全与历史命令、软件的安装与卸载、文件挂载、管道与重定向命令、GCC命令的使用,在实验当中有些问题,铜鼓查找书籍进行了深入的了解,这些命令都是基础,需勤加练习.

实验名称

实验三VI编辑器的使用

实验地点

计算机学院

实验楼308

实验时间

2017。

4。

18

一、实验目的和要求

1.熟练掌握VI编辑器的三种工作模式

2。

掌握Vi编辑器每种模式下的命令

二、实验内容和原理

利用Vi编辑器完成文本的编辑

三、主要仪器设备

PC机、VMWorkstation、Redhat5。

0

四、操作方法与实验步骤

⑴在/root目录下建立一个名为vi的目录.

⑵进入vi目录

⑶将文件/etc/inittab复制到vi目录下

⑷使用vi打开vi目录下的inittab文件

⑸设定行号,指出id:

5:

initdefault所在行号

⑹将光标移动到该行

⑺复制该行内容

⑻将光标移动到最后一行行首

⑼粘贴复制行的内容

⑽撤销上一步的所做动作

⑾将光标移动到最后一行行尾

⑿粘贴复制行的内容

⒀光标移动到”si:

sysinit:

/etc/rc。

d/rc。

sysinit”

⒁删除该行

⒂存盘但不退出

⒃将光标移动到首行

⒄插入模式下输入“Hello,thisisviworld”

⒅返回命令行模式

⒆向下查找字符串“0:

wait”

⒇再向上查找字符串“halt”,强制退出vi,不存盘

五、实验数据记录和处理

对应的命令如下:

1。

mkdir/root/vi

2.cd/root/vi

3.cp/etc/inittab/root/vi/

4.viinittab

5.在底行模式下:

setnu(设定行号)

在命令行模式下键入[ESC]退入到命令行模式/id:

5:

initdefault(查找内容)

6。

enter

7。

yy

8。

G

9。

p

10。

u

11。

Gshrift+4

12。

p

13.命令行模式下:

/si:

:

sysinit:

/etc/rc.d/rc。

sysinit

14.dd

15。

底行模式下:

w

16。

1+G

17。

插入模式下输入:

hello,thisisviword

18.键入[ESC]退入到命令行模式

19./0:

wait

20.?

halt

底行模式下:

:

q!

六、实验结果与分析

利用Vi编辑器完成文本的编辑和一系列常用的指令,包括三种编辑模式和三种模式之间的切换,以及各种模式下的命令.

通常vi编辑的流程如下:

1.vi文件名

2.键入i进入插入模式

3.编辑

4。

键入[ESC]退入到命令行模式

5。

键入:

wq!

保存退出

七、讨论、心得

通过本实验熟练并掌握了VI编辑器的三种工作模式,掌握了Vi编辑器每种模式下的命令,利用vi编辑器来写一些程序很方便,只需要最后通过编译就可以直接运行,这是一个Linux比Windows系统操作下执行C语言程序方便之处吧,在实验过程,还有一些老师没有讲过的命令,通过上网XX还是解决了。

 

实验名称

实验四Shell编程和Makefile文件

实验地点

计算机学院

实验楼308

实验时间

2017。

4.20

一、实验目的和要求

1.了解什么是脚本

2.掌握shell编程方法

3。

掌握makefile的编写规则

二、实验内容和原理

1编写一个Shell脚本,要求:

显示当前目录的所有内容,并统计可执行文件(.sh)的数量,将统计结果输入到指定的文件当中;

2编写一个Shell脚本,

要求:

2。

1在屏幕上显示一行提示信息

2。

2读入一行命令

2.3判断此命令是否为“exit",若是则退出

2.4如果不是,分析并执行这行命令

3.假定一个程序由以下5个文件组成,其源代码如下,请编写一个Makefile文件,并运行。

文件1:

main。

c

#include”mytool1。

h”

#include"mytool2.h”

intmain(){

Mytool1_print(”hellomytool1!

”);

mytool2_print("hellomytool2!

");

return0;}

文件2:

mytool1.c

#include”mytool1.h”

#include〈stdio。

h〉

voidmytool1_print(char*print_str){

printf("Thisismytool1print:

%s”,print_str);}

文件3:

mytool1。

h

#ifndef_MYTOOL_1_H

#define_MYTOOL_1_H

voidmytool1_print(char*print_str);

#endif

文件4:

mytool2.c

#include”mytool2.h"

#include〈stdio.h>

voidmytool2_print(char*print_str){

printf(”Thisismytool2print:

%s",print_str);}

文件5:

mytool2.h

#ifndef_MYTOOL_2_H

#define_MYTOOL_2_H

voidmytool2_print(char*print_str);

#endif

三、主要仪器设备

PC机、VMWorkstation、Redhat5.0

四、操作方法与实验步骤

对应的具体程序代码如下:

1。

#!

/bin/bash

ls*sh

find.—name”*.sh”|wc-l>〉1。

txt

2.#!

/bin/bash

echo"Enteraorder!

"

readname

$name

3。

appexam:

main.omytool1.omytool2.o

$(CC)-o$@$^

main.o:

main。

cmytool1。

hmytool2.h

mytool1。

o:

mytool1。

cmytool1。

h

mytool2.o:

mytool2。

cmytool2。

h

clean:

rm-f*.o

五、实验数据记录和处理

对应的实验结果如下(截图):

1.在运行了1.sh这个脚本之后,会执行脚本中的命令。

2。

在运行之后,输入的内容会被2.sh脚本读入并以命令的形式输出

六、实验结果与分析

七、讨论、心得

通过本实验了解了什么是脚本,Shell就是UNIX提供用户的使用界面,Shell为用户提供了输入命令和参数并可得到命令执行结果的环境,Shell本身并不神秘,只是一个普通的应用程序,用户将多个命令按语法规则写在文本文件中,该文本文件就是Shell脚本。

掌握了shell编程方法,#!

具有特定的含义,表示Shell脚本解释器的版本,#开始表示注释,定义变量var,并复制,命令恶臭显示变量var的值.掌握了makefile的编写规则。

有个要注意的地方就是要在sh文件执行之前给sh文件增加可执行权,具体命令为:

$chomdu+xxx.sh

 

实验名称

实验五网络编程-设计并发服务器

实验地点

计算机学院

实验楼308

实验时间

2017。

4.20

一、实验目的和要求

1.了解TCP/IP协议

2。

掌握Socket编程,熟悉基于TCP和UDP的传输模型

3.掌握多线程编程

4。

掌握基于TCP的并发服务器设计

二、实验内容和原理

实验内容:

编写C程序,利用多线程构建TCP并发服务器,并实现客户端和服务器的传输(多个并发用户同时访问服务器)

实验原理:

TCP的传输模型和线程的并发执行

三、主要仪器设备

PC机、VMWorkstation、Redhat5.0

四、操作方法与实验步骤

1.线程并发客户端

#include〈netinet/in.h>   //forsockaddr_in

#include

h〉   //forsocket

#include〈sys/socket.h>   //forsocket

#include〈stdio.h>      //forprintf

#include

#include

h>      //forbzero

#include

#include〈sys/errno。

h>   //forerrno

#defineHELLO_WORLD_SERVER_PORT   6666 

#defineBUFFER_SIZE1024

char*server_IP=NULL;

void*talk_to_server(void*thread_num)

{

   //设置一个socket地址结构client_addr,代表客户机internet地址,端口

   structsockaddr_inclient_addr;

   bzero(&client_addr,sizeof(client_addr));//把一段内存区的内容全部设置为0

   client_addr。

sin_family=AF_INET;   //internet协议族

   client_addr。

sin_addr.s_addr=htons(INADDR_ANY);//INADDR_ANY表示自动获取本机地址

   client_addr。

sin_port=htons(0);   //0表示让系统自动分配一个空闲端口

   //创建用于internet的流协议(TCP)socket,用client_socket代表客户机socket

   intclient_socket=socket(AF_INET,SOCK_STREAM,0);

   if(client_socket<0)

   {

      printf("CreateSocketFailed!

/n”);

      exit

(1);

   }

   //把客户机的socket和客户机的socket地址结构联系起来

   if(bind(client_socket,(structsockaddr*)&client_addr,sizeof(client_addr)))

   {

      printf(”ClientBindPortFailed!

/n”); 

      exit

(1);

   }

   //设置一个socket地址结构server_addr,代表服务器的internet地址,端口

   structsockaddr_inserver_addr;

   bzero(&server_addr,sizeof(server_addr));

   server_addr。

sin_family=AF_INET;

   if(inet_aton(server_IP,&server_addr.sin_addr)==0)//服务器的IP地址来自程序的参数

   {

      printf("ServerIPAddressError!

/n”);

      exit

(1);

   }

   server_addr.sin_port=htons(HELLO_WORLD_SERVER_PORT);

   socklen_tserver_addr_length=sizeof(server_addr);

   //向服务器发起连接,连接成功后client_socket代表了客户机和服务器的一个socket连接

   if(connect(client_socket,(structsockaddr*)&server_addr,server_addr_length)〈0)

   {

      printf("CanNotConnectTo%s!

/n",server_IP);

      exit

(1);

   }

   charbuffer[BUFFER_SIZE];

   bzero(buffer,BUFFER_SIZE);

   //从服务器接收数据到buffer中

   intlength=recv(client_socket,buffer,BUFFER_SIZE,0);

   if(length<0)

   {

      printf("RecieveDataFromServer%sFailed!

/n",server_IP);

      exit

(1);

   }

   printf("FromServer%s:

/t%s”,server_IP,buffer);

   bzero(buffer,BUFFER_SIZE);

 sprintf(buffer,”Hello,World!

FromClientThreadNUM:

/t%d/n”,(int)thread_num);

   //向服务器发送buffer中的数据

   send(client_socket,buffer,BUFFER_SIZE,0);

   //关闭socket

   close(client_socket);

   pthread_exit(NULL);

}

intmain(intargc,char**argv)

{

   if(argc!

=2)

   {

      printf("Usage:

/%sServerIPAddress/n",argv[0]);

      exit

(1);

   }

   server_IP=argv[1];

    

   pthread_tchild_thread;

   pthread_attr_tchild_thread_attr;

   pthread_attr_init(&child_thread_attr);

   pthr

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

当前位置:首页 > 考试认证 > 司法考试

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

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