实验七Linux基础实验

上传人:油条 文档编号:1726605 上传时间:2017-07-11 格式:DOCX 页数:9 大小:397.13KB
返回 下载 相关 举报
实验七Linux基础实验_第1页
第1页 / 共9页
实验七Linux基础实验_第2页
第2页 / 共9页
实验七Linux基础实验_第3页
第3页 / 共9页
实验七Linux基础实验_第4页
第4页 / 共9页
实验七Linux基础实验_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《实验七Linux基础实验》由会员分享,可在线阅读,更多相关《实验七Linux基础实验(9页珍藏版)》请在金锄头文库上搜索。

1、实验七 Linux 基础实验一、实验目的1、搭建 Linux 开发环境:包括安装虚拟机 VMware,在虚拟机中安装 Ubuntu,实现Ubuntu 和主系统 Windows 之间的文件相互访问。2、熟练使用 Linux 常用命令3、初步了解 Makefle能够解读 3 个 Makefile 例子中所有代码,二、实验设备及工具PC 机三、实验原理1、搭建 Linux 开发环境1)虚拟机:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实 windows 系统完全一样的功

2、能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。虚拟系统和传统的虚拟机( Parallels Desktop,Vmware,VirtualBox, Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动 windows 系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟

3、系统慢得多。流行的虚拟机软件有 VMware(VMWare ACE)、 Virtual Box 和 Virtual PC,它们都能在 Windows 系统上虚拟出多个计算机。2) Linux:Linux 是一套免费使用和自由传播的 类 Unix 操作系统,是一个基于POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位 和 64 位硬件。Linux 继承了Unix 以 网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。3) Ubutun:Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应

4、用为主的开源GNU/Linux 操作系统, Ubuntu 是基于 DebianGNU/Linux,支持 x86、amd64 (即x64)和 ppc 架构,由全球化的专业开发团队(Canonical Ltd)打造的。ubuntu 基于linux 的免费开源桌面 PC 操作系统,十分契合英特尔的超极本定位,支持 x86、64 位和ppc 架构。我们实验是在 VMware 上创建一个 Linux 虚拟机,并安装 Ubutun 操作系统。2、 Linux 命令ls 显示文件或目录-l 列出文件详细信息 l(list)-a 列出当前目录下所有文件及目录,包括隐藏的 a(all)mkdir 创建目录-p

5、创建目录,若无父目录,则创建 p(parent)cd 切换目录cat 查看文件内容cp 拷贝mv 移动或重命名rm 删除文件-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;-i :互动模式,在删除前会询问使用者是否动作rmdir 删除空目录(目录内容没空,目录才能删除)pwd 显示当前路径tar: 打包压缩-c 归档文件-x 压缩文件-z gzip 压缩文件-j bzip2 压缩文件-v 显示压缩或解压缩过程 v(view)-f 表示文件,后面跟着文件名-C 临时改变工作目录,用于解压时指定解压目录-P 表示压缩和解压时使用绝对路径sudo chown -R owner:

6、group File|Directory文件权限管理三种基本权限R 读 数值表示为 4W 写 数值表示为 2X 可执行 数值表示为 1-rw-rw-r一共十个字符,分成四段。第一个字符“-”表示普通文件;这个位置还可能会出现“l”链接;“d”表示目录第二三四个字符“rw-”表示当前所属用户的权限。 所以用数值表示为 4+2=6第五六七个字符“rw-”表示当前所属组的权限。 所以用数值表示为 4+2=6第八九十个字符“r”表示其他用户权限。 所以用数值表示为 2所以操作此文件的权限用数值表示为 662更改权限sudo chmod u 所属用户 g 所属组 o 其他用户 a 所有用户 +增加权限

7、-减少权限 r w x 目录名 例如:有一个文件 filename,权限为“-rw-r-x” ,将权限值改为 “-rwxrw-r-x”,用数值表示为 765sudo chmod u+x g+w o+r filename上面的例子可以用数值表示sudo chmod 765 filename3、 Makefile1) make 介绍make 在执行时,需要一个命名为 Makefile 的文件。这个文件告诉 make 以何种方式编译源代码和链接程序。典型地,可执行文件可由一些.o 文件按照一定的顺序生成或者更新。如果在你的工程中已经存在一个活着多个正确的 Makefile。当对工程中的若干源文件修改

8、以后,需要根据修改来更新可执行文件或者库文件,正如前面提到的你只需要在 shell 下执行“make” 。make 会自动根据修改情况完成源文件的对应.o 文件的更新、库文件的更新、最终的可执行程序的更新。make 通过比较对应文件(规则的目标和依赖, )的最后修改时间,来决定哪些文件需要更新、那些文件不需要更新。对需要更新的文件 make 就执行数据库中所记录的相应命令(在 make 读取 Makefile 以后会建立一个编译过程的描述数据库。此数据库中记录了所有各个文件之间的相互关系,以及它们的关系描述)来重建它,对于不需要重建的文件 make 什么也不做。2) Makefile 规则一个

9、简单的 Makefile 描述规则组成:TARGET. : PREREQUISITES.COMMAND.Target:规则的目标。prerequisites:规则的依赖。生成规则目标所需要的文件名列表。通常一个目标依赖于一个或者多个文件。command:规则的命令行。 (每个命令行前必须是一个 tab 字符)3)使用变量变量定义:immediate = deferred使用变量:$(inmediate)4) Makefile 函数调用格式:$(function arguments)Function 函数名 ,arguments 参数,参数函数名空格或 Tab 隔开,多个参数之间用逗号隔开。名称

10、:模式字符串替换函数patsubst。 功能:查找中的单词(单词以“空格” 、 “Tab”或“ 回车” “换行”分隔)是否 符合模式,如果匹配的话,则以替换。这里,可以包括 通配符“ %”,表示任意长度的字串。如果中也包含“%” ,那么, 中的这个“%”将是中的那个“% ”所代表的字串(可以用“” 来转义,以“%”来表示真实含义的“%”字符) 返回:函数返回被替换过后的字符串。示例:$(patsubst %.c,%.o,x.c.c bar.c)把字串“x.c.cbar.c”符合模式%.c的单词替换成%.o ,返回结果是“x.c.obar.o”产生一个所有以 .c 结尾的文件的列表。$(word

11、list , )名称:取单词串函数wordlist。 功能:从字符串中取从开始到 的单词串。 和是一个数字。 返回:返回字符串中从到 的单词字串。如果 比 中的单词数要大, 那么返回空字符串。如果大于的单词数,那么返回从开始,到结束 的单词串。 示例:$(wordlist2,3,foobarbaz) 返回值是“barbaz” 。5)一般搜索(变量 VPATH)GNU make 可以识别一个特殊变量 “VPATH”。通过变量“VPATH”可以指定依赖文件的搜索路径,当规则的依赖文件在当前目录不存在时,make 会在此变量所指定的目录下去寻找这些依赖文件。通常我们都是用此变量来指定规则的依赖文件的

12、搜索路径。其实“VPATH”变量所指定的是 Makefile 中所有文件的搜索路径,包括了规则的依赖文件和目标文件。定义变量“VPATH”时,使用空格或者冒号(: )将多个需要搜索的目录分开。make 搜索目录的顺序是按照变量“VPATH”定义中的目录顺序进行的(当前目录永远是第一搜索目录) 。例如对变量的定义如下:VPATH = src:./headers这样我们就为所有规则的依赖指定了两个搜索目录, “src”和“./headers” 。对于规则“foo:foo.c”如果“foo.c”存在于“src”目录下,此规则等价于“foo:src:/foo.c”。6)自动化变量$表示规则的目标文件名

13、。如果目标是一个文档文件(Linux 中,一般称.a 文件为文档文件,也称为静态库文件) ,那么它代表这个文档的文件名。在多目标模式规则中,它代表的是哪个触发规则被执行的目标文件名。$#include file2.hint main()printf(print file1*n);File2Print();file3print();return 0;/file2.c#include file2.h#include void File2Print()printf(Print file2*n);/file2.h#ifndef FILE2_H_#define FILE2_H_#ifdef _cplus

14、plusextern C #endifvoid File2Print();void file3print();#ifdef _cplusplus#endif#endif/file3.c#include void file3print()printf(print file3*n);Makefile:OBJS = file1.o file2.o file3.oCC = gccCFLAGS = -Wall -O -ghelloworld : $(OBJS)$(CC) $(OBJS) -o helloworldfile1.o : file1.c file2.h$(CC) $(CFLAGS) -c file1.c -o file1.ofile2.o : file2.c file2.h$(CC) $(CFLAGS) -c file2.c -o file2.ofile3.o : file3.c$(CC) $(CFLAGS) -c file3.c -o file3.oclean:rm -rf *.o helloworld运行结果:任务三:在目录下创建一个子目录 file3,将 file3.c 放在子目录下编译。Makefile:VPATH = file3OBJS = file1.o file2.o file3.oCC = gccCFLAGS = -Wall -O -gTARGET = ./hel

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号