太原理工大学Linux实验报告_第1页
太原理工大学Linux实验报告_第2页
太原理工大学Linux实验报告_第3页
太原理工大学Linux实验报告_第4页
太原理工大学Linux实验报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

实验由本人当时亲自完成仅供参考,希望会帮助大家课程名称: LINUX系统及其编程 实验项目: LINUX系统及其编程实验 实验地点: 逸夫楼304教室 专业班级: 嵌入式专业202 学生姓名: 氣宇軒昂 学号: 指导教师: 2013年 13 月 13 日实验1、Linux操作基础和系统界面的熟悉一实验目的通过本实验,可以掌握Linux的基本操作、Linux的文本编辑以及Linux系统界面的转换和使用,使学生对Linux有一个基本的了解。二操作步骤及要求:1、 Linux的基本操作。1) 在超级用户下新建立一个用户,查看/etc/passwd文件中新用户添加完成后的情况。(1)useradd student(2)passwd 12345(3)cat /etc/passwd2)用此用户名和口令登录系统,并用passwd命令修改口令,使用chfn命令输入用户的个人资料,并用finger查看该用户的详细资料。(1)passwd student(2)chfn student(3)finger student3)用who命令查看当前登录在系统中的用户列表、登录终端和登录时间以及系统中的用户总数。2、 熟悉Linux操作系统vi编辑器的使用。1)首先使用vi编辑器编辑一个C语言源程序hello.c,程序的功能是接受用户输入的姓名,然后在屏幕上输出一条语句“Welcome 姓名”。#include Main()char name20;printf(“Please input your name:”);scanf(“%s”,name);printf(“Welcome %s!n”,name);reture 0; 2)对上述的hello.c文件进行增、删、改操作。(1)增加文字时用i命令。(2)删除文字时用dd命令。(3)修改文字时用x命令。(4)使用命令“gcc o hello hello.c”编译源程序,如果发现程序错误,则需要反复使用vi编辑器修改源程序文件并且在修改后重新编译。3)在vi编辑器中列出用户当前目录下的文件。(1)利用命令:vi。(2)利用命令:e。3、 熟悉控制台的基本操作以及控制台与X Window桌面的转换。4、 熟悉X Window桌面及文件管理器Nautils的使用。5、 通过文件管理器Nautils在X Window的桌面上建立文件hello.c的链接。打开文件管理器,找到hello.c文件,单击鼠标右键,选择“创建链接”命令,则在文件管理器的窗口中出现一个图标,名字为“到的链接”,并且带一个小箭头符号。只要将该图标拖放到桌面就可以建立到该项目的链接。然后通过链接打开该文件。6、 通过控制台和X Window中的文件管理器Nautils进行文件的基本操作。最后分别通过控制台和X Window中的文件管理器Nautils在用户主目录下建立一个hello子目录,将hello.c源程序文件和编译以后产生的目标代码文件和可执行文件复制到hello子目录中,删除hello子目录中的hello.c源程序文件,最后再将hello子目录以及其中的文件一并删除。三操作结果:1.基本操作(1)用命令cat /etc/passwd后显示出很多用户,组,以及用的哪种shell等信息,如图:显示了用户id,组id,用户所在目录以及用户用的bash的shell命令。(2)添加用户以及为用户设定密码 useradd student,passwd 12345,如图:如图建立了student 用户,并且设定了密码12345,有时图中出现乱码,是因为在装fedora16的时候装的是简体中文,在网络终端不现实汉字。(3)root用户修改密码,键入passwd student;修改成功最后提示successfully。(4)继续查看,看看/etc/passwd中是否有了student用户,如图:从上图可以看出,添加了新用户,并且为其分配了id号,创建了自己的组和目录。(4)修改和查看用户信息在屏幕上键入chfn fzhaocaixuan p03587613256 student回车继续键入finger student 显示如下图:如图可是显示用户信息。(4)键入who aH 显示当前登录在系统中的用户列表、登录终端和登录时间以及系统中的用户总数。如图:因为一台机器可以开启六个终端,所以用令两个终端登录后系统显示在线用户的信息,但是不仅root有权限看这些信息,普通用户也有,如下图:2.熟悉Linux操作系统vi编辑器的使用(1)用vi编辑其写一段c程序hello.c,程序的功能是接受用户输入的姓名,然后在屏幕上输出一条语句“Welcome 姓名”。(2)使用命令i可以在vi编辑器中进行改写其中的内容,用dd命令可以一次删除一行,用x命令可以删除一个字符,注意dd和x不能对vi进行添加,这里就不做截图了。(3)用gcc编译文件hello.c键入gcc o hello hello.c,如下图:注意刚装上fedora16 并没有gcc这个命令,必须先把它装好,yum install gcc ,然后用gcc v进行测试。(4)执行hello.out可执行文件,键入./hello,结果如下图:(5)用vi操作文件就不截图了,因为有刚编写的C程序已经足够了。3.控制台的基本操作以及控制台与X Window桌面的转换与X Window的操作是startx命令,但是fedora16默认是X Window,需要切换到控制台还得改变一些默认的target。4.熟悉X Window桌面及文件管理器Nautils的使用。5. 通过文件管理器Nautils在X Window的桌面上建立文件hello.c的链接。打开文件管理器,找到hello.c文件,单击鼠标右键,选择“创建链接”命令,则在文件管理器的窗口中出现一个图标,名字为“到的链接”,并且带一个小箭头符号。只要将该图标拖放到桌面就可以建立到该项目的链接。然后通过链接打开该文件。如图:但是还是要说明的是在fedora在安装完成后并不会让别人在桌面建立链接,必须安装gnome-tweak-tool。6.通过控制台和X Window中的文件管理器Nautils进行文件的基本操作。(1)在X Window下就不去操作了,和window下的操作基本一致。(2)在控制台下操作不是很难,就不论述了,不过要注意的是要明白绝对路径和相对路径!四,心得,体会 通过第一节的实验是我明白了如何在控制台下操作目录文件,并且在控制台下创建用户,查看用户信息,删除用户,还学会了一点儿vi编辑器,并且会用编写的程序便已执行,在遇到问题时通过网上各种解答最后找到自己的解决方法,这点对我来说意义是重大的,因为可以不用翻任何书籍找到解决方法,而且非常高效!思考题1.查阅资料,理解passwd和shadow文件的内容。 /etc/passwd 文件是一个纯文本文件,每行采用了相同的格式,格式为:name:password:uid:gid:comment:home:shell;name 用户登录名,password 用户口令。uid 指定用户的 UID。gid GID。如果系统要对相同的一群人赋予相同的权利,则使用该值。comment 用来保存用户的真实姓名和个人细节。home 指定用户的主目录的绝对路径。shell 如果用户登录成功,则要执行的命令的绝对路径放在这一区域中。它可以是任何命令。 /etc/shadow由pwconv命令根据 /etc/passwd 中的数据自动产生。如果查看/etc/shadow下存放的普通帐号信息如下:每个字段用 : 隔开。(1):帐号名称(2):密码:这里是加密过的,但高手也可以解密的。要主要安全问题(代!符号标识该帐号不能用来登录)(3):上次修改密码的日期(4):密码不可被变更的天数(5):密码需要被重新变更的天数(99999表示不需要变更)(6):密码变更前提前几天警告(7):帐号失效日期(8):帐号取消日期(9):保留条目,目前没用 实验2、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文件,执行的结果是什么?4)改变文件home_mycal的权限,使拥有者只具有读的权限。试着再运行home_mycal文件,它运行了吗?为什么?5)删除home_mycal,这样做也删除了mydir/mycal文件吗?为什么?3、掌握Linux下存储设备的挂载与卸载的方法。1)建立挂载点,使用mount和umount命令手工挂载本地磁盘(U盘以及Windows的分区)。2)使用fdisk -l命令查看设备的连接情况,主要查看U盘以及Windows分区的名称。3)卸载本地磁盘(U盘以及Windows的分区)。4)设置/etc/fstab文件,以便在系统启动时自动挂载文件系统。三操作结果:1.了解Linux系统的文件、文件系统的概念,并观察Linux系统的目录结构。(1)查看/proc/filesystems目录,结果如下图:(2) 查看Linux目录结构/如下图:/usr目录包含所有的命令、程序库、文档和其他文件。这些文件在正常操作中不会被改变,该目录也包含用户的Linux发行版本的主要应用程序,如Netscape。/home是用户的主目录。Linux是多用户环境,每个用户都有一个只有自己才能访问的目录,一般该目录以用户帐号命名。该目录包含用户的参数设置文件、个性化文件、文档、数据、E-male、缓存数据等。/bin相对于/sbin,该目录包含一些系统管理员和普通用户都可以使用的命令。该目录包含bash、csh、等shell,也包含cp,mv,rm,ls等非常有用的、不可缺少的命令。/dev存放Linux的外部设备,如硬盘、分区、键盘、鼠标、usb等。Linux下设备被当成文件,这样一来硬件被抽象化,便于读写,网络共享以及根据需要临时装载到文件系统中,Linux没有所谓的驱动符。/var目录包含在操作系统中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等。/etc用来存放所有的系统管理所需要的配置文件和子目录。/mnt是被挂载文件系统的挂载点。系统对挂载目录的位置没有强制性要求,可以在系统任意位置建立加载目录,建立/mnt只是为了使系统更加完整。2.控制文件和目录的存取权限1)在用户主目录中创建一个名为mydir的目录。进入用户主目录,将/usr/bin目录中的cal文件和/bin目录中的cat文件复制到mydir目录中,并分别命名为mycal和mycat。使用长列表命令来查看mydir目录中的各个文件。如下图:先查看/root目录下无mydir目录,然后键入mkdir mydir,再查看,如下图:复制文件到mydir如下图:Cal和Cat 分别被复制到mydir目录中,然后在对其进行重命名,如下图:如上图所示,改名成功!2) 设法在用户主目录中以home_mycal的文件名来调用mydir/mycal文件。主要是用链接命令,如下图:比较:其实就是建立了一个快捷方式,其实新建的快捷方式执行的是原来的文件而不是其本生,这样做的好处是节省资源,不必在进行复制。3) 改变文件home_mycal的权限,使拥有者只具有读的权限。试着再运行home_mycal文件,它运行了吗?为什么?键入chmod 444 home_mycal后改变home_mycal 的权限,然后执行,结果如下:说明修改链接的权限相当于修改源文件的权限!4)删除home_mycal,这样做也删除了mydir/mycal文件吗?为什么?存在,可以把链接文件看成一个指向文件,其实是删除了一个指针,但并没有删除源文件!3、 掌握Linux下存储设备的挂载与卸载的方法。1)在虚拟机下,当插入U盘后Fedora会自动挂载,这点可以在图形界面上显示出U盘的标志,为了用手动方式挂载,事先也不卸载自动挂载的的文件然后用root用户键入fdisk -l命令,查看设备信息,如下图:2) 重新将U盘挂载在/mnt/usb目录上,键入 mount -t vfat /dev/sdb1 /mnt/usb,如下图:由于在终端不能显示中文所以会出现如上的一些乱码,为了能够看到汉字的效果,我在图形界面的终端上继续演示一遍,如下图:这样就解决了汉字问题。3) 卸载U盘,键入umount /mnt/usb即可,这里就不需要截图了,因为在Linux下没有提示任何信息就是好消息,意味着卸载成功了。四,心得,体会 通过这一节的实验首先对Linux系统的文件目录有了一个初步的了解,然后就是对链接也有了进一步的了解,使我们可以用一个很小的空间就可以执行另一个程序,比复制这种方法显然又是很多,最后对Linux的硬件管理有了初步了解,学会了如何挂载如何卸载,并且明白了如何得到硬件的逻辑名,使操作更加容易,总的说Linux的优势很多,希望在以后能更多的了解!五、思考题1. 在命令行下如何检查新插入的USB设备是否被系统识别?在命令行下插入设备后输入fdisk l可以查看新插入的USB设备,或者是输入cat/proc/partitions命令获取设备的信息。2. 使用umount命令需要注意什么问题?如果挂载的设备正在使用,那么执行卸载命令会出现“device busy”的错误信息。3. 比较实验内容2中的home_mycal文件和mydir/mycal文件有什么不同?文件的链接数是多少?执行home_mycal文件的执行结果是什么?home_mycal是文件的一个链接,而mydir/mycal是文件复制后重命名的文件名,链接指向的是一个路径,而复制后的文件指向的确实真正的文件。执行home_mycal与执行mydir/mycal的结果是一样的,与执行cal命令的结果相同。4. 改变文件home_mycal的权限,使拥有者只具有读的权限时再运行home_mycal文件,它运行了吗?为什么?运行了,运行结果与修改前的相同。这是因为home_mycal只是一个链接,修改链接的权限无法起到实际的效果,真正有效果的是修改实际文件的权限。5. 删除home_mycal文件,这样做也删除了mydir/mycal文件吗?为什么?没有删除,因为home_mycal只是一个链接,删除链接不会影响到真正的文件。实验三Linux下shell编程一实验目的使学生熟悉shell的基本操作,掌握shell的基本编程方法和技巧,并通过使用Linux中最常用的参数处理创建简单的shell程序来简化日常管理任务,为系统管理服务。二操作步骤及要求:1、以root身份登录Linux系统,查看系统的命令提示符,确定系统使用的shell程序类型。列出Linux系统常见的shell种类。2、编写一个shell脚本程序,打印出班级总成绩排名在前3名(按总成绩递增)学生的姓名、学号和总成绩。打印输出的格式如下(姓名、学号、第1、2、3门课程成绩及总成绩):Zhang san 23 40 70 60 170Wang wu 31 60 60 80 200Li si 2 100 50 90 2403、编写一个shell脚本程序,使用弹出式菜单,并实现其简单的菜单功能: * * MENU * * 1.copy 2.rename * * 3.remove 4.find * * 5 exit * *即用户按下数字1,则提示用户输入源文件和目标文件后执行复制;输入数字2,则提示用户输入要更名的文件名或目录名后执行更名操作;输入数字3和4后分别执行删除和查找操作;输入数字5,则退出该菜单shell程序的执行。要求shell脚本程序有清屏功能,能正确地执行各项命令并显示。3 操作结果:1. 通过查看/etc/passwd 得知root用的shell是bash,如下图2.(1)先建立一个四个人的基本成绩信息文件chengji,然后把文件中写入学生的姓名、学号、成绩,如下图:(2) 编写shell脚本sortCJ.sh,如下图:(3) 改变sortCJ.sh的权限,然后执行,如下图:3.菜单实验说明:以下三个图是合在一起的,但是为了可以在实验报告中体现出来,所以通过分页来显示!(1)先编写shell脚本(2) 将脚本的权限改变成可执行后,执行文件说明:由于菜单选项很多,我就选menu 1来演示1. 查看主目录(/root)和/home目录,主目录中有test.c文件,而/home中没有,如下图:2. 现在执行menu.sh脚本,如下图:3. 在脚本左下角的_输入1,然后根据提示进行操作,如下图:四,心得,体会通过这一节实验的学习我又一次了解了linux的强大,其实虚拟机本身也很强大,如果没有虚拟机的话还要在电脑上折腾半天才能做,这样节省了学习实践,提高了效率,总的来说shell脚本然后linux更加灵活,在做实验的过程中遇到的问题都是我们能够想的到怎么操作,但不知道操作命令,这样一来Internet成了我们的好帮手,对于shell脚本,我还想说的是,其实我们主要是通过加一些控制语句去灵活的控制Linux的执行,但是对于脚本而言并不难,比起C+这简单多了,所以在用脚本的同时逻辑思维必须够敏捷!最后我们基本可以想到的就能够实现,在这linux相对window更安全,而且界面更轻松,非常喜欢用linux系统,希望在以后的学习中可以了解linux内核,深入研究,哈哈,说不定将来的某一天我也可以做我的linux!实验四Linux文件系统和设备管理一实验目的通过GCC工具的熟练使用,熟悉GCC编译的四个阶段,掌握Linux下C/C+程序的设计、调试与运行的原理、方法与应用技能。二操作步骤及要求:1、 编写一个C语言源程序test,实现从键盘输入n个整数,在内存中自小到大排序后输出。要求在vi中编辑,用GCC编译、链接、运行,用GCC进行调试,记录输出的结果并分析。2、程序调试实践:程序清单:#include #include main() char c; char name 20,name220; FILE *fp1,*fp2; printf(“Input sorfilname:”); scanf(“%s”,name1); printf(“Input desfilname:”); scanf(“%s”,name2); fp1=fopen(name1,“r”); if(fp1=NULL) printf(“Cannot open rfilen”); exit(1); fp2=fopen(name2,“w”);if(fp2=NULL) printf(“Cannot open wfilen”);exit;while(c=fgetc(fp1)!=EOF)fputc(c,fp2);fclose(fp1);fclose(fp2);printf(“copy complete!n”); 录入、编辑、调试、运行以上程序,记录程序的运行结果,在每行的后面加上注释并说明程序实现的功能。3 操作结果:1.用vi编辑器标记sort.c,如下图:编译程序键入gcc -o sort sort.c,然后键入./sort,然后输入要排序的数字(23 45 67 89 45 22 33 44 56 11),截图如下:2.用vi编辑器编辑test.c,如下图:(1) 建立一个文件zhaocaixuan,并写入Welcome ZhaoCaiXuan!,键入touch zhaocaixuan,并用vi来编写。(2) 编译程序键入gcc -o test test.c,然后执行./test如下图:四,心得,体会 这一节实验是在Linux环境下编辑c程序,然后便已执行,主要是对一个已知文件内容的复制,从这个程序中不仅我对c语言操作文件的内容有了进一步的了解,而且在linux控制台下熟练的掌握了对c程序的编译和执行,收获很大!五、思考题查阅资料,总结Linux下的4种常用的编译开发工具编辑器、编译器、调试器及项目管理器的功能。Linux下编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。编译器可以Linux下的编译器:在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一 位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C+和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。Linux下的调试器:程序编写完毕以后,可能或多或少会存在一些问题,为了解决这些问题,我们就需要对程序进行调试。Linux 下的调试工具很多,常见的有 strace、gdb、valgrind 等。strace 工具用于跟踪进程执行时的系统调用和所接收的信号,包括参数、返回值、执行时间;gdb 工具用于单步、多步运行程序,可以在指定位置设置断点,可以实时的查看堆栈信息,对于附加调试信息的可执行程序,还可以打印当前运行位置的源代码,查看任意变量内的值;valgrind 用于程序的内存调试和代码剖析,它可以跟踪程序的内存使用情况,检测出内存管理方面的 bug 。Linux下的项目管理器: 熟悉了gcc、gdb,就基本了解了Linux下使用编辑器编写代码,会用gcc把代码编译成可执行程序,也会使用gdb等调试程序对编译后的程序进行调试了,接下来我们就要讲到了开发流程中非常重要的另外一步。尽管它不是必须的,但在大的复杂程序的开发中非常重要。这就是make项目管理器。实验五文件系统和设备管理一实验目的使学生熟悉shell的基本操作,掌握shell的基本编程方法,并通过使用Linux中最常用的参数处理创建简单的shell程序来简化日常管理任务,为系统管理服务。二操作步骤及要求:假设有一台Windows和Linux双启动的主机,Windows有C、D两个分区,编写一个负责挂载的脚本程序mmnt,参数为cdrom时挂载光驱;参数为floppy时挂载软驱;参数为C(大小写都可以)时挂载Windows的C盘(有中文字符);参数为D(大小写都可以)时挂载Windows的D盘(有中文字符);参数为U(大小写都可以)时挂载U盘(有中文字符); 参数为其他值时显示帮助信息:“Usage:mmnt cdrom|floppy|C|c|D|d|U|u”。编写一个负责卸载的脚本程序umnt,完成相应的存储设备的卸载,参数的含义同上。1、以root身份登录Linux系统,查看系统的命令提示符,确定系统使用的shell程序类型。列出Linux系统常见的shell种类。(1)echo $SHELL2、使用fdisk -l命令查看系统连接的存储设备,主要查看U盘以及Windows分区的名称,比如hda3, hda5和sda,以确定挂载的设备名。3、建立挂载点。mkdir /mnt/Cmkdir /mnt/Dmkdir /mnt/USB4、编写/etc/fstab文件,编辑或者添加如下5行代码:/dev/hda3 /mnt/C vfat noauto,iocharset=cp936 0 0/dev/hda5 /mnt/D vfat noauto,iocharset=cp936 0 0/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0/dev/fd0 /mnt/floppy auto no

温馨提示

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

最新文档

评论

0/150

提交评论