实验3-4 Linux系统 vi编辑器和C语言程序开发.doc_第1页
实验3-4 Linux系统 vi编辑器和C语言程序开发.doc_第2页
实验3-4 Linux系统 vi编辑器和C语言程序开发.doc_第3页
实验3-4 Linux系统 vi编辑器和C语言程序开发.doc_第4页
实验3-4 Linux系统 vi编辑器和C语言程序开发.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

实验三 Linux文件系统1、 实验目的(1) 熟悉和理解文件系统的概念和文件系统的类型。(2) 掌握文件系统的挂载方法。(3) 学会Linux中数据备份的方法。(4) 了解Linux系统中文件系统的管理机制。2、 实验要求(1) 掌握桌面环境下挂载和卸载移动存储介质的方法。(2) 掌握Shell命令挂载和卸载移动存储介质的方法。(3) 掌握mkfs、df等磁盘管理命令。3、 实验内容挂载文件系统,监视文件系统状态,维护文件系统,外部设备的使用,硬盘的使用,数据备份和文件的压缩,在GNOME下管理磁盘。4、 实验步骤第一步:挂载文件系统(1)手工挂载文件系统用mount命令挂载文件系统。命令格式:mount -fnrvw -t type device dir其中,-t type:指定文件系统类型;device:待安装文件系统的块设备名;dir:安装点(目录);-r:将文件系统挂载为只读模式;-w:将文件系统挂载为读写模式。操作:在软驱中插入一张磁盘,然后将软驱挂载为msdos文件类型。挂载软磁盘的命令:mount -t msdos /dev/fd0 /mnt/floppy挂载完成后,用ls命令查看软磁盘中包括的文件。用mount命令还可以显示所有已安装的文件系统。命令格式:mount -hV(2)手工卸载文件系统用umount命令卸载文件系统。命令格式:umount -hV umount -a -n -v -t types其中,-a:表示要卸载/etc/fstab中的所有文件系统;-t types:指定文件系统的类型。操作:卸载软盘的msdos文件系统。命令:umount -t msdos /dev/fd0卸载完成后,从软盘驱动器中取出软盘。操作:优盘的安装与卸载。在计算机的USB接口中插入优盘,然后用以下方法安装与卸载“优盘”。 对Linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。 插入U盘之前,输入命令“fdisk -l”查看系统的硬盘分区情况,屏幕显示如下:Disk /dev/sda: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 979 7759395 83 Linux/dev/sda3 980 1044 522112+ 82 Linux swap 然后插入U盘,再次输入命令“fdisk -l”,查看系统的硬盘分区情况,显示如下:Disk /dev/sda: 8589 MB, 8589934592 bytes255 heads, 63 sectors/track, 1044 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 979 7759395 83 Linux/dev/sda3 980 1044 522112+ 82 Linux swap Disk /dev/sdb: 2004 MB, 2004877312 bytes129 heads, 32 sectors/track, 948 cylindersUnits = cylinders of 4128 * 512 = 2113536 bytes Device Boot Start End Blocks Id System/dev/sdb1 * 1 949 1957872 6 FAT16Partition 1 has different physical/logical endings: phys=(956, 128, 32) logical=(948, 75, 32)此时,在硬盘分区中多了一个设备/dev/sdb1,这就是U盘在当前Linux系统下新加入的SCSI硬盘分区信息。 输入命令“mkdir /mnt/usb”,在/mnt目录下新建一个子目录。 输入命令“mount t vfat /dev/sdb1 /mnt/usb”,使用mount命令将优盘挂在/mnt/usb目录下。 输入命令“ls /mnt/usb”,查看U盘所有的文件,但是屏幕显示的中文有乱码。 输入命令“umount /mnt/usb”,卸载U盘。 输入命令“mount t vfat o iocharset=cp936 /dev/sdb1 /mnt/usb”,使用中文字符集形式挂载U盘。 输入命令“ls /mnt/usb”,此时屏幕正确显示文件的中文信息。 输入命令“umount /mnt/usb”,卸载U盘,最后才能拔出U盘。(3)自动安装和卸载文件系统除了可以用手工方式挂载文件系统外,还可以通过文件/etc/fstab自动挂载文件系统。/etc/fstab文件中包括了所有要挂载的文件系统的列表。在该文件中,每一行代表一个文件系统(除注释行外)。每行的构成如下。 设备名:指定要安装的存储设备或远程文件系统。 安装点:指定文件系统的安装点。 文件系统类型:指定要挂载的文件系统类型。 挂载选项:一组以逗号分开的挂载选项。 备份选项:指定是否使用dump命令备份文件系统。 检查选项:指定在系统引导时fsck检查文件系统的顺序。以下是一个/etc/fstab文件的实例:/dev/had3/ext3 defaults 1 1LABEL=/boot /boot ext3 defaults 1 2/dev/had1/doscvfat defaults 0 0/dev/had2 /dosdvfat defaults 0 0/dev/had4swapswap defaults 0 0/dev/fd0/mnt/floppy msdos noauto,user 0 0/dev/cdrom /mnt/cdrom iso9660 noauto,user 0 0None /proc proc defaults 0 0操作:查看自己计算机Linux系统的/etc/fstab文件构成,若系统中不包括自动挂载软盘和光盘的内容,请增加一行,使系统启动时自动挂载软盘和光盘文件系统。第二步:监视文件系统状态可以用df命令显示文件系统的使用情况。使用df的例子:Filesystem1k-blocks Used Available Use% Mounted on/dev/hda3 2563244 1344202 1086506 55% /dev/hda2 1614272 928 1613344 0% /dosc/dev/hda1 2004192 1509268 494924 75% /dosdNone 127788 0 127788 0% /devshm/dev/fd0 1423 195 1229 14% /mnt/floppy可以用du命令显示文件系统中一个目录及所有子目录所占空间。一个使用du的例子:du s /home310984 /home第三步:维护文件系统对文件系统进行维护的方法如下。(1)在文件/etc/fstab中检查选项参数设置为大于0的正整数,使系统在启动时自动检查文件系统的完整性。(2)用fsck命令检查文件系统。fsck命令是一个前端命令,根据不同的文件系统类型,将调用不同的检查程序,如fsck.ext2。第四步:软磁盘的使用为了在Linux中使用一张新的磁盘,可按以下步骤进行。(1)将软磁盘插入软驱。(2)对磁盘进行格式化,命令如下:fdformat /dev/fd0H1440(3)在软磁盘上建立文件系统,命令如下:mkfs /dev/fd0 (创建ext3文件系统)或mkdosfs /dev/fd0 (创建dos文件系统)(4)将软磁盘挂载到主文件系统上,命令如下:mount /dev/fd0 /mnt/floppy(5)进行文件复制等操作。(6)卸载文件系统,命令如下:umount /mnt/floppy第五步:硬盘的使用(1)创建分区在Linux中,硬盘(IDE设备)对应的设备文件均放在/dev目录下,一般一台计算机可以接多个物理硬盘,各硬盘对应的设备文件如下。/dev/had:Primary Master硬盘。/dev/hdb:Primary Slave硬盘。/dev/hdc:Secondary Master硬盘。/dev/hdd:Secondary Slave硬盘。 每个物理硬盘还可以分区,每个分区也有对应的设备文件。例如,若Primary Master硬盘有4个分区,则各分区的设备文件分别为/dev/hda1、/dev/hda2、/dev/hda3和/dev/hda4。硬盘使用前,应对其进行分区。在Linux中常用的分区工具是fdisk。用fdisk创建分区的命令:fdisk /dev/had 或 fdisk /dev/hdc执行该命令后,进入fdisk界面,如图2-1所示。图中创建了一个hda4的分区。图2-1 fdisk分区(2)创建文件系统硬盘分区后,可以在新建的分区上创建Linux兼容的文件系统。创建文件系统后,才可以使用分区上的存储空间。创建ext3文件系统的命令:mkfs /dev/hda4。创建dos文件系统的命令:mkdosfs /dev/hda4。(3)将分区挂载到主文件系统中除主文件系统以外,文件系统必须挂载到主文件系统目录树下才能使用。挂载文件系统的命令:mount -t vfat /dev/hda4 /mnt。(4)卸载文件系统的命令:umount /mnt第六步:数据备份和文件的压缩由于硬盘上的数据很容易受到损坏,需要将重要的数据和文件进行备份。备份文件一般存放在其他介质上,如软磁盘、优盘、光盘等。最简单的备份方法是文件复制,在Linux中广泛使用tar命令进行备份。操作:使用以下命令将/etc为起点的整个目录树进行备份。(1)用tar命令生成备份档文件:tar -cvf etcbak.tar /etc。(2)用gzip命令将备份文件进行压缩,生成压缩包文件etcbak.tar.gz:gzip etcbak.atr。上述操作也可以直接用tar命令带z参数实现,即tar -czvf etcbak.tgz /etc。备份的文件随时可以恢复还原。操作:将以上操作生成的“etcbak.tar.gz”还原。(1)用gzip命令将包文件解压缩:gzip -d etcbak.tar.gz。包文件etcbak.tar.gz被解压为etcbak.tar。(2)用tar命令还原etcbak.tar:tar -xvf etcbak.tar。上述操作也可以直接用带z参数的tar命令实现:tar -xzvf etcbak.tar.gz。(3)将数据备份在软磁盘上:tar -cvf /dev/fd0 /etc 或 tar -czvf /dev/fd0 /etc。该方法在软磁盘上建立的备份数据不需要任何文件系统,用户也不可能通过挂载磁盘来访问磁盘上的数据。其中,后一个命令用z参数实现带压缩备份。第七步:在GNOME下管理磁盘在图形用户界面GNOME下,可以直接在对话框中挂载软磁盘、光盘和其他存储器。下面以软磁盘为例进行挂载操作。(1)将软磁盘插入软驱。(2)在GNOME的“主菜单”中选择“系统工具磁盘管理”选项,弹出“用户挂载工具”对话框,如图2-2所示。图2-2 用户挂载工具对话框(3)“用户挂载工具”对话框中的第一项为软磁盘(其中挂载目录为“/mnt/floppy”,设备驱动为“/dev/fd0”,类型为“auto”即自动识别磁盘文件类型),单击“挂载(M)”按钮,将软磁盘载入系统。完成后,该按钮变为“卸载(M)”。(4)将系统中的一个文件复制到软磁盘上,命令如下: cp /etc/samba/smb.conf /mnt/floppy/smb.conf(5)查看磁盘上的文件,正确无误后,单击“用户挂载工具”对话框中“卸载(M)”按钮卸载磁盘。5、 实验总结(1) 写出实验报告。(2) 在光驱中插入一张包括msdos文件系统的光盘,然后将光驱挂载到Linux系统中,并写出挂载命令。(3) 查看自己计算机Linux系统的/etc/fstab文件构成,在系统中安装优盘的驱动程序,安装完成后再查看/etc/fstab文件的构成,并比较前后的不同。(4) 试在系统中进行数据备份和压缩。 实验四 vi编辑器和C语言程序开发1、 实验目的(1) 学习和掌握编写简单的shell程序。(2) 学习和掌握vi编辑器的基本使用方法。(3) 学习和掌握gcc等Linux的开发调试环境。(4) 掌握Linux下C语言程序的开发方法。2、 实验要求(1) 熟练掌握Shell命令的各项功能,熟悉重定向、管道、通配符、历史记录等命令的使用方法。(2) 熟练掌握vi编辑器的用法,以及vi编辑器下文件操作、文本编辑等操作。(3) 熟悉并掌握Linux下C程序编译器gcc和调试器gdb的使用方法。3、 实验内容熟悉Shell环境,使用Shell的各种功能;掌握vi编辑器的用法,熟悉vi命令模式、文本编辑模式和最后行模式三种工作模式之间的转换方法;掌握vi编辑器下新建和保存文件,熟悉光标的移动,文本的插入与删除,字符串替换,行的复制、移动、撤销和删除等操作;掌握gcc编译器和gdb调试器开发C程序的方法。4、 实验步骤第一步:图形化用户界面下的Shell命令操作(1)显示系统时间,并将系统时间修改为2010年5月31日零点。 启动计算机,以超级管理员身份登录图形化用户界面。 依次单击“主菜单”“系统工程”“终端”,打开桌面环境下的终端工具。 输入命令“date”,显示系统的当前日期和时间。 输入命令“date 053100002010”,屏幕显示新修改的系统时间。(2)查看2020年8月22日是星期几。输入命令“cal 2020”,屏幕上显示出2020年的日历,由此可查看详细的日期信息。(3)查看ls命令中-s选项的帮助信息。 输入“man ls”命令,屏幕显示出手册页中ls命令相关帮助信息的第一页。 输入“ls -help”,屏幕显示中文的帮助信息。由以上命令都可以查找ls命令的-s选项等同于-size选项,以文件块为单位显示文件和目录的大小。 输入“info ls”命令,屏幕显示出ls命令的程序研发说明文档,可以使用空格键、Page Up和Page Down进行翻页。(4)查看/etc目录下inittab文件的内容。 输入命令“cd /etc”,切换到/etc目录。 输入命令“ls -al”,显示/etc目录下所有文件和子目录的详细信息。 输入命令“more inittab”,屏幕分页显示inittab文件的具体内容,可以使用空格键翻页或Enter键显示下一行。第二步:字符界面下的Shell命令操作(1)查看当前目录。输入“pwd”命令,显示当前目录。(2)用cat命令在用户主目录下创建一个名为f1的文本文件,内容为:Linux is userful for us all.You can never imganie how great it is. 输入命令“cat f1”,屏幕上输入点光标闪烁。 依次输入上述文本内容。使用cat命令进行输入时,而且只能用退格键(Backspace)来删除光标前一位置的字符。并且一旦按下回车键,该行输入的字符就不可修改。 以上内容输入后,按Enter键,让光标处于输入内容的下一行,按Ctrl+D键结束输入。 想要查看文件是否生成,可以输入命令“ls”即可。 输入命令“cat f1”,查看f1文件的内容。(3)向f1文件增加以下内容:Why not have a try? 输入命令“cat f1”,屏幕上输入点光标闪烁。 输入上述内容后,按Enter键,让光标处于输入内容的下一行,按Ctrl+D键结束。 输入“cat f1”命令,查看f1文件的内容,会发现f1文件增加了一行。(4)统计f1文件的行数,单词数和字符数,并将统计结果存放在countf1文件。 输入命令“wc countf1”,屏幕上不显示任何信息。 输入命令“cat countf1”,查看countf1的内容,其内容是f1文件的行数、单词数和字符数信息,即f1文件共有3行,19个词和87个字符。(5)分页显示/etc目录中所有文件和子目录的信息。 输入命令“ls /etc|more”, 显示出“ls”命令输出结果的第一页,屏幕的最后一行上还出现“More-”字样,按空格键可查看下一页信息,按Enter键可查看下一行信息。 浏览过程中按q键,可结束分页显示。(6)仅显示/etc目录中前15个文件和子目录输入命令“ls /etc|head n 15”,屏幕显示出“ls”命令输出结果的前面15行。(7)清除屏幕内容输入命令“clear”,则屏幕内容完全被清除。第三步:通配符的使用(1)显示/bin/目录中所有以c为首字母的文件和目录。输入命令“ls /bin/c*”,屏幕将显示/bin目录中以c开头的所有文件和目录。(2)显示/bin/目录中所有以c为首字母,文件名只有3个字符的文件和目录。 按向上方向键,Shell命令提示符后出现上一次操作输入的命令“ls /bin/c*”。 将其修改为“ls /bin/c?”,按下Enter件,屏幕显示/bin目录中以c为首字母,文件名只有3个字符的文件和目录。(3)显示/bin目录中所有的首字母为c或s或h的文件和目录。输入“ls /bin/c,s,h*”,屏幕显示/bin目录中首字母为c或s或h的文件和目录。(4)显示/bin目录中所有的首字母不是a、b、c、d、e的文件和目录。输入命令“ls /bin/!a-e*”,屏幕显示/bin目录中的首字母不是a、b、c、d、e的文件和目录。(5)重复上一步操作。输入命令“!”,自动执行上一步操作中使用过的“ls /bin/!a-e*”命令。第四步:设置手工启动图形化用户界面(1)修改/etc/inittab文件。 按下Alt+F7键,切换回到图形化用户界面。 依次单击“主菜单”“附件”“文本编辑器”,打开gedit文本编辑器。 单击工具栏上的“保存”按钮,从“打开文件.”对话框中选择/etc目录中的inittab文件。 将文件总的“id:5:initdefault:”所在行的“5”修改为“3”。 单击工具栏上的“保存”按钮,关闭gedit。 单击“主菜单”“注销”,弹出对话框,选择“重新启动”,并单击“确定”按钮,重新启动Linux操作系统。(2)手工启动图形化用户界面 重启后显示字符界面,输入用户名和口令后,登录Linux系统。 输入命令“startx”,启动图形化用户界面。 单击“主菜单”“注销”,弹出对话框,单击“确定”按钮,返回字符界面。第五步:新建文本文件利用vi新建文件f2,内容为:How to Read FasterWhen I was a schoolboy I must have read every comic book ever published, But as I got older, my eyeballs must have slowed down or something I mean.The problem is that theres too much to read these days, and too little time to read every WORD of it. 启动Linux后登录字符界面。 在Shell命令提示符后输入命令“vi”,启动vi文本编辑器,进入命令模式。 按“i”键,从命令模式转换为文本编辑模式,此时屏幕的最底边出现“插入-”。 输入上述文本内容。如果输入出错,可以使用退格键或者Delete键删除错误字符。 按Esc键返回命令模式。 按“:”键进入最后行模式,输入“w f2”,就可以将正在编辑的内容另存为f2文件。屏幕底部显示“f2New 3L,272C Written”字样,表示此文件有3行,272个字符。注意:vi中行的概念与平时所说的行有所区别,在输入文字的过程中由于字符串长度超过屏幕宽度而发生的自动换行,vi并不认为是一行,只有在vi中按一次Enter键,另起一行的才是新的一行(概念上类似于中文的一段)。 按“:”键后输入“q”,不存盘退出vi。注:vi编辑器下三种模式的切换方法为:l 命令模式:按Esc键。l 文本编辑模式:按“i”键。l 最后行模式:先进入命令模式,再按“:”键。第六步:编辑文件(1)打开f2文件并显示行号 输入命令“vi f2”,启动vi文本编辑器并打开f2文件。 按“:”键切换到最后行模式,输入命令“set nu”,每一行前出现行号。 vi自动返回到命令模式,连续两次输入“Z”,就退出vi。(2)在f2文件的第一行后插入如下一行内容:“With the development of society, the ability of reading becomes more and more important.”,并在最后一行之后添加一行,内容为:“We must know some methods to read faster.” 在此输入命令“vi f2”,启动vi文本编辑器并打开f2文件。 按“a”键,进入文本编辑模式,屏幕的最底边出现“插入-”字样。 移动光标到第一行行尾后,按Enter键,另起一行。输入“With the development of society, the ability of reading becomes more and more important.”。 将光标移动到最后一行的行尾,按Enter键,另起一行。输入“We must know some methods to read faster.”。(3)将文本中所有的“eyeballs”用“eye-balls”替换。按Esc键后输入“:”,进入最后行模式。因为当前f2文件中共有5行,所以输入命令“1,5 s/eyeballs/eye-balls/g”,并按Enter键,将文件中所有的“eyeballs” 替换为“eye-balls”。(4)把第二行移动到文件的最后,删除第一行和第二行并恢复删除,并不保存修改。 按“:”键进入最后行模式,输入命令“2,2 m 5”,将第二行移动到第五行的后面。 按“:”键,输入“1,2 d”,删除第一和第二行。 按“u”键,恢复被删除的部分。 按“:”键,进入最后行模式,输入“q!”,不保存对文件的修改,忽略最底边的提示信息,直接退出vi。(5)复制第二行,并添加到文件的最后,删除第二行,保存修改后退出vi。 再次输入命令“vi f2”,启动vi文本编辑器并打开f2文件。 按“:”键,进入最后行模式,输入“2,2 co 3”,将第二行的内容复制到第三行的后面。 移动光标到第二行,输入“dd”命令,原来的第二行消失。 按“:”键,进入最后行模式,输入“wq”,存盘并退出vi。第七步:C程序开发在vi中编写一个test1.c程序,对程序进行编译、连接、运行。 输入命令“mkdir mytest”,在用户当前目录下创建一个目录mytest。 输入命令“cd mytest”,进入刚才新建的目录mytest。 输入命令“vi test1.c”,启动vi文本编辑器并打开test1.c文件。 按“i”键,进入文本编辑模式,屏幕的最底边出现“插入-”字样,并输入以下C程序代码:main() int i,sum=0; for(i = 1; i = 100; i+) sum=sum+i; printf(n1+2+3+.+99+100=%dn,sum); 按Esc键,将vi编辑器从插入模式转换为命令模式。 按“:”键,进入最后行模式,输入“wq”存盘并退出vi。 输入命令“gcc test1.c o test1”,使用gcc编译器对test1.c文件进行编译,并生成test1可执行文件。 输入命令“./test1”,运行test程序,屏幕显示test1.c文件的运行结果。第八步: 调试C程序(1)在vi中编写一个test2.c程序,对程序进行编译、连接、运行。 输入命令“vi test2.c”,启动vi文本编辑器并打开test2.c文件。 按“i”键,进入文本编辑模式,屏幕的最底边出现“插入-”字样,并输入以下C程序代码:#include void my_prtint(char *str) /正序输出 printf(The string1 is : %sn, str);void my_print2(char *str) /反序输出char *str2; int size, i;size = strlen(str);str2 = (char *) malloc(size + 1);for(i = 0; i size; i+) str2size - i = stri;str2size + 1 = 0;printf(The string2 is : %sn, str2);main()char my_str = Hello Linux C!;my_print(my_str); my_print2(my_str); 按Esc键,将vi编辑器从插入模式转换为命令模式。 按“:”键,进入最后行模式,输入“wq”存盘并退出vi。 输入命令“gcc test2.c o test2”,使用gcc编译器对test2.c文件进行编译,并生成test2可执行文件。 输入命令“./test2”,运行test2程序,屏幕显示程序的运行结果如下:The string1 is Hello Linux C!The string2 is 此时,发现反序输出的结果不正确。(2)使用gdb调试C程序 输入命令“gcc test2.c g o test2”,重新编译源代码。 输入命令“gdb test2”,使用gdb调试器对test

温馨提示

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

评论

0/150

提交评论