UnixLinux实验指导书王学文_第1页
UnixLinux实验指导书王学文_第2页
UnixLinux实验指导书王学文_第3页
UnixLinux实验指导书王学文_第4页
UnixLinux实验指导书王学文_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Unix/Linux操作系统实验指导书王学文桂林电子科技大学计算机科学与工程学院20153目 录实验一Linux系统安装与简单配置3实验二Linux环境和基本命令10实验三Linux vi编辑器使用12实验四Linux常用开发工具14Linux常用开发工具之一:gcc的基本用法及GDB调试工具的基本用法14Linux常用开发工具之一:makefile的编写与使用15实验五Linux C语言编程16Linux C语言编程之一:使用系统调用对文件进行操作16Linux C语言编程之一:使用系统调用对进程进行控制16Linux C语言编程之一:进程通信编程17实验一、 Linux系统安装与简单配置一

2、、 实验目的1. 学会在操作系统安装之前,根据硬件配置情况,指定安装计划2. 掌握多操作系统安装前,利用硬盘分区工具(如PQMagic)为Linux准备分区3. 掌握Linux操作系统的安装步骤4. 掌握Linux系统的简单配置方法5. 掌握Linux系统的启动、关闭步骤6. 掌握在虚拟机上的Linux安装步骤和使用方法二、 实验内容1. 安装并使用硬盘分区工具,为Linux准备好分区2. 安装Linux系统(如红旗Linux桌面版)3. 配置Linux系统运行环境4. 正确的启动、关闭系统注意:为了避免新手在第一次安装Linux时,破坏掉磁盘上的有用数据,推荐第一次在winxp系统上的虚拟机

3、上安装linux。因此需要一下步骤:1 安装winxp下的虚拟机软件vmware,并创建一个虚拟机。2 在虚拟机环境中安装linux系统。3 配置Linux系统运行环境4 正确启动、关闭系统。三、 背景知识Linux安装有三种方式,分别是:通过光盘安装、硬盘安装和网络安装。另外有三种形式,分别是:Linux独立操作系统、Linux与windows共存的双(多)操作系统、Windows下虚拟机安装Linux的双(多)操作系统。在三种安装方式中,通过光盘安装最为简单,但是需要事先从网络上下载安装镜像文件,并将其刻录到光盘上;或者直接从外面买别人刻好的安装光盘。由于Linux是开源的操作系统,因此不

4、存在“盗版”的说法。另一种是通过硬盘安装,需要事先将安装镜像文件下载到本地fat32格式的磁盘分区上,然后重新启动进入纯dos下,进行一些必要的设置就可以从硬盘自动安装了,其后的安装步骤跟光盘安装一样。网络安装需要事先下载一些必要的文件,经过设置后重新启动,对硬盘做分区并安装最小的系统,然后通过网络下载其他必须的文件组件。在进行网络安装时,需要确定网络正常可用,ftp或者http网站地址正确。在三种安装形式中,安装Linux独立操作系统是最简单的一种形式,这种形式需要光盘安装,安装完毕后,计算机系统中只有Linux操作系统。因为属于单操作系统,因此不用担心会破坏其他的数据信息,也不用考虑其他分

5、区的情况。当然,安装完毕后,如果需要的话,还可以安装其他的操作系统,形成双(多)操作系统。一般来说,如果要安装双(多)操作系统时,应该先安装windows操作系统,并为linux操作系统保留必要的分区,然后再安装linux操作系统。此时linux操作系统可以使用上述的三种安装方法的任意一种。Linux操作系统在安装过程中,会自动寻找其他操作系统,并通过grub对所有的操作系统进行管理。目前一种新的为大家所喜爱的安装方式为虚拟机安装。这种安装方式是基于windows之上的,现在windows操作系统中安装一个虚拟机软件vmware,然后启动vmware,配置一台用于安装linux的虚拟机,启动虚

6、拟机,就可以在虚拟机上安装其他操作系统了。这种安装比较方便,启动虚拟机后,虚拟机可以使用pc实体机的各种硬件接口,比如usb接口,光驱等;同时还可以很方便的在虚拟机软件与windows操作系统间进行转换而不用重启计算机。这种安装形式可以使用上述三种安装方式的任意一种。在实验中,将会要求大家任选一种方式安装Linux操作系统。由于虚拟机安装相对复杂,本实验步骤主要演示虚拟机安装Linux的全过程。硬盘安装请参照本步骤“3. 在虚拟机上安装操作系统”。四、 主要实验步骤1. 安装虚拟机软件:vmware,建议安装VMware-workstation-6.0.0-45731版本。2. 配置虚拟机。配

7、置步骤如下:i. 选择“New Virtual Machine”ii. 选择“Next”iii. 选择“Typcal”然后点击“下一步”iv. 选择“Linux”,并在下拉列表中选择合适的操作系统类型,比如“Red Hat Linux”,如果是红旗Linux的话,就选择“Other Linux 2.6x kernel”,然后选择“下一步”v. 输入虚拟机的名字,并选择存储的位置。一般来讲,应该放在除c盘以外的地方,因为它需要至少8G的空间。vi. 网络连接,选择第一项“Use Bridged networking”,然后选择下一步。这样,虚拟机就可以通过windows的网络设置上网。vii.

8、设置分配空间的大小,默认为8GB,可以自己调整。然后点击“完成”,就配置好了一个虚拟的计算机,随后启动该虚拟机,就可以像在一个真正的计算机上一样安装操作系统了。3. 在虚拟机上安装操作系统。具体步骤如下:i. 在vmware主界面上选择刚刚配置的虚拟机,可以看到该虚拟机的配置信息:下方右边“Device”中是该虚拟机根据主机的情况配置的资源,包括内存大小、硬盘空间、光驱、软驱、网络、usb设备(接口)、声卡、显示以及cpu等。下方左边是对虚拟机的操作,其中第一项“Start this virtual machine”是启动虚拟机,如果没有安装操作系统,则该虚拟启动之后会告诉你没有操作系统。第二

9、项“Edit virtual machine settings”是针对该虚拟机的配置可以进行设置。第三项“Clone this virtual machine”可以将该虚拟机包括配置克隆一个,在另外一个虚拟机上进行加载。ii. 注意,这里的配置光驱选项,可以双击它进行更改为虚拟光驱。更改后,虚拟光驱可以直接当作光驱使用。选择 “Use ISO image”选项后,就可以加载iso镜像了。硬盘安装可以采用这种方式。iii. 如果还没有安装,则将安装光盘放入光驱中,或者在上一部中找到iso镜像的地址,单击“Start this virtual machine”,就可以安装操作系统了,具体步骤跟在p

10、c实体机上安装一样。如果已经安装了操作系统,则单击“Start this virtual machine”就可以直接启动虚拟机并进入操作系统了。iv. 此时虚拟机为窗口形式的,鼠标和键盘也是属于windows管理的。如果想在虚拟机中使用键盘和鼠标,只要将鼠标在虚拟机窗口中单击即可,随后的鼠标和键盘的操作都是在虚拟机中进行的。如果要转换到windows中操作,只需要同时按下“ctrlalt”键即可。v. 此时的虚拟机为窗口形式,如果想要虚拟机全屏,只要同时按下“ctrlaltenter”即可切换的全屏。如果想回到窗口形式,再次按下三键组合即可。vi. 双操作系统图示:实验二 Linux环境和基本

11、命令一、实验目的1. 掌握Linux一般命令格式和Linux各类命令的使用方法2. 熟悉Linux操作环境,掌握有关文件和目录操作的常用命令3. 熟练使用man命令。二、实验内容练习使用Linux常用命令,要求使用man命令对每条命令获取帮助,并了解各命令的高级使用方法。练习Linux中文件管理、目录管理相关命令的使用。三、实验主要步骤:1、获取当前目录(pwd)获知当前所处的目录2、列出目录内容(ls)列出当前目录下的文件可带参数ls 目录名或文件名,可以使用通配符*、?等3、改变当前目录(cd)不带参数,则回到用户的主目录带参数,则进入参数所指定的目录4、显示文本文件(cat)例: cat

12、 filename,用于显示filename的内容5、获取命令帮助(man)例: man ls,则显示ls命令的帮助信息6、拷贝文件(cp)例: cp file1 file27、删除文件(rm)例: rm filename,删除文件filename8、创建目录(mkdir)例: mkdir dirname,创建一个名为dirname的目录9、删除目录(rmdir)例: rmdir dirname,删除目录dirname10、查找文件(find)例: find . name filename功能: 从.目录(即当前目录)开始查找文件名为filename的文件11、查找文件内容(grep)例: g

13、rep string filename在filename文件中查找字符串string12、文件或目录打包(tar)例1: tar cvf destname filename/dirname将filename文件或者dirname目录下的所有文件打包成文件,文件名为destname例2: tar xvf filename将打包文件filename解包13、显示系统时间(date)14、判断文件类型(file)例: file filename,判断filename文件的类型15、显示进程状态(ps)16、设置文件的访问权限(chmod)例: chmod +r filename,为filename加

14、上读权限,使filename对当前用户可读,(试用两种方式改变file1的权限)17、清除屏幕命令clear.18、查看系统中文件系统命令df, 如df a19 挂载文件系统命令mount 如:mount t vfat /dev/sdb /media/disk.实验三 Linux vi编辑器使用一、实验目的学习并熟练掌握Linux操作系统字符界面下vi编辑器的使用学习使用vi编辑器建立、编辑、显示及加工处理文本文件二、实验内容vi编辑器的启动与退出vi各操作模式的切换、vi命令的使用文本编辑文件的保存三、实验环境Linux字符界面vi的三种操作模式:命令模式(任意模式下,按ESC键进入命令模式

15、,用以向vi发出操作命令,类似于Windows软件中的菜单命令)编辑模式(命令模式下,通过a、i、A、o、O、R等键进入编辑模式,用以编辑文本)末行命令模式(命令模式下,通过:、/、?等键进入,用以执行关于文件的一些特殊操作)vi 编辑器的启动:vi(启动vi编辑器)vi filename(用vi打开文件并编辑)vi+filename(用vi打开文件并编辑,并将光标定位于文件的最后一行)vi+Nfilename(用vi打开文件并编辑,并将光标定位于文件的第N行)vi+/string filename (用vi打开文件并编辑,并将光标定位于文件第一次出现string的位置)vi编辑器的退出(用:

16、进入末行命令方式):q(退出vi,若文件未保存,将报错):wq(保存文件并退出,若文件未命名,将报错):wq filename(以filename命名文件并保存退出):w filename(以filename命名文件):q!(不保存文件,强制退出):x(同:wq)zz(同:wq,注意zz前没有:)文本编辑a(在当前光标之后进行插入编辑)i(在当前光标之后进行插入编辑)A(在当前行最后进行添加)o(在当前行之下新添一行并进入编辑)O(在当前行之上新添一行并进入编辑)文本编辑x(删除当前光标的字符)Nx(删除当前光标开始的N个字符)r(修改当前光标处的字符)R(修改当前光标开始之后的字符,直到按E

17、SC)u(撤销上次的操作)dd(删除当前行)Ndd(删除当前光标开始的N行)文本编辑yy(复制当前行到缓冲区)Nyy(复制当前行开始的N行到缓冲区)p(将缓冲区的内容粘贴到当前位置):e filename(打开一个文件)常用命令(命令模式)操作符 操作效果h() 光标左移一个字符l() 光标右移一个字符k() 光标上移一行j() 光标下移一行G 光标移至文件最后一行NG 光标移至文件第N行0 光标移至行首$ 光标移至行尾H 光标移至屏幕的最上行M 光标移至屏幕的中部L 光标移至屏幕的最下行w 光标右移一个单词文字搜索命令/string(向后搜索string)?string(向前搜索string

18、)n(继续正向搜索)N(继续反向搜索)实验四 Linux常用开发工具第一部分:gcc的基本用法及GDB调试工具的基本用法一、实验目的掌握Linux下C语言编译工具GCC的基本用法及基本编译连接过程。掌握GDB调试工具的基本用法二、实验内容1、编写一个可以输出”Hello World”字符串C程序,使用不同编译选项,观察并分析显示结果。2、用GDB调试一个编译后的C语言程序:编写一个输出10000以内所有素数的程序,并调试该程序。3、下面程序的功能是输出一个字符串, 再反序将它输出,调试并改正之。#include <stdio.h>#include <string.h>#

19、include <malloc.h>void my_print (char *string);void my_print2 (char *string);void main() char my_string = "hello there" my_print (my_string); my_print2 (my_string);void my_print (char *string) printf ("The string is %sn", string);void my_print2 (char *string) char *string2;

20、 int size, i; size = strlen (string); string2 = (char *) malloc (size ); for (i = 0; i < size; i+) string2size - i = stringi; printf ("The string printed backward is %sn", string2);第二部分:makefile的编写与使用一、 实验目的1. 理解makefile的语法格式2. 学会使用makefile组织工程文件3. 掌握makefile的用法二、 实验内容1、编写makefile文件,维护下

21、列项目(该项目由文件main.c, function1.c, function2.c, function1.h和function2.h组成,其中function1.h和function2.h的内容由同学们补充完成。)/ =main.c=#include "function1.h"#include "function2.h" int main(int argc, char *argv) function1_print("hello"); function2_print("hello");/=function1.c=#

22、include "function1.h"#include "function2.h"#include <stdio.h>void function1_print(char *str) printf("This is function1 print %sn", str);printf("Calling Function2 -n");function2_print(""Hello" from function 1n");/=function2.c=#include

23、"function2.h"#include <stdio.h>void function2_print(char *str) printf("This is function2 print %sn", str);2、编写一个由多个文件构成的C语言项目,编制makefile,运行make工具进行维护。3、设某个正在开发的程序由以下几个内容组成:4个C语言源文件:a.c,b.c,c.c和d.c。设b.c和d.c都是用了def.h中的声明。汇编语言源文件assmb.s被某个C语言文件调用。使用了在/home/user/lib/libm.so中的一组

24、例程。设最后生成的可执行文件名为prog。试编写对应的makefile文件。实验五Linux C语言编程一、 实验目的1理解系统调用和库函数的异同。2掌握用系统调用和库函数进行编程。3掌握一些常用的系统调用和库函数的功能及应用。第一部分:使用系统调用对文件进行操作二、实验内容和步骤1、在 ./tmp 目录下调用 open( )函数,以可读可写的方式创建 hello.c 文件。open 函数带有 3 个 flag 参数:O_CREATE、O_TRUNC、O_WRONLY,文件权限设置为 0600。2、打开 open 函数创建的文件,然后对此文件进行读写操作,写入“Hello!I am writi

25、ng to this file!”,此时 文件指针位于文件尾部。接着再使用 lseek 函数将文件指针移动文件开始处,并读出 10 个字节并将其打印出来。3、 编写一个程序, 把一个文件的内容复制到另外一个文件上,即实现简单的copy功能。要求:只用open(), read(),write()和close()系统调用,程序的第一个参数是源文件,第二个参数是目的文件。第二部分:使用系统调用对进程进行控制二、实验内容和步骤1. 可以用一些Linux命令操作和管理进程。1用ps命令观察Linux正在运行的进程(1)ps命令:用于观察正在运行的进程的情况。ps命令包括较丰富的可选参数,常见的可选参数包

26、括如下几个。-A:显示所有用户启动的进程。-a:显示所有其他用户的进程。-u:显示进程拥有者、进程启动时间等更详细的信息。-x:显示不是由终端提供的进程信息。-r:只显示正在运行的进程。-m:显示线程信息。-w:宽行显示进程信息。-l:用长格式显示进程信息。-t:只显示由终端/dev/tty提交的进程。(2)执行ps命令操作:ps命令可以显示本机正在运行的所有进程(包括其他用户和系统运行的进程)的详细列表。命令格式:ps aux根据命令的执行结果,分析各进程的运行情况。2、进程创建1) 编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。

27、让每一个进程在屏幕上显示一个字符:父进程显示“father“;子进程分别显示字符串”child One“和 字符串“child Two”。试观察记录屏幕上的显示结果,并分析原因。2)编写一个程序它利用 fork()创建一个子进程;父进程打开一个文件,父子进程都向文 件中写入信息(利用 write),表明是在哪个进程中;每个进程都打印两个进程的 ID 号。 最后父进程执行 wait()。第三部分:进程通信编程二、实验内容和步骤1、进程的管道通信 编写程序实现进程的管道通信。使用系统调用pipe()建立一个管道,二个子进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message!父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,再接收P2)。2、编写一个程序,他创建一个子进程。父进程向子进程发送一个信号,然后等待子进程终止;子进程接收信号,输出自己的状态信息,最后终止自己。3、 阅读下列程序,分析程序功能。#include <s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论