linux实验报告(2)30389.pdf
《linux实验报告(2)30389.pdf》由会员分享,可在线阅读,更多相关《linux实验报告(2)30389.pdf(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 Linux 实验报告 姓 名 黄芳恺 班 级 软件工程 114 学 号 8 指导教师 阮越 目录 实验一 Linux 基本命令的使用 实验二 简单 Shell 程序设计 实验三 Linux 下简单 C 程序设计与文件操作 实验四 Linux 下进程操作与进程间通信 实验五 Linux 线程的使用 实验六 Linux 进程间的 IPC 实验七 Linux 下访问 Mysql 数据库 实验八 Linux 下网络编程 练习题:grep、bash、生产者消费者 实验一 Linux 基本命令的使用 1、实验目的 学习和掌握 Linux 的基本命令。2、实验内容和步骤 步骤 1:以 user_login
2、 用户身份并使用 telnet 登录 Linux 服务器,按照提示创建自己的账户和口令。步骤 2:使用新创建的用户账户和口令登录 Linux 系统,察看登录后的界面。步骤 3:使用 pwd 命令察看当前的工作目录,然后用 ls 命令查看当前目录下的内容,尝试使用-a,-l,-F,-A,-lF 等不同选项并比较不同之处。-a do not ignore entries starting with -I,-ignore=PATTERN do not list implied entries matching shell PATTERN-l use a long listing format -F,
3、-classify append indicator(one of*/=|)to entries -A,-almost-all do not list implied.and.-lF ignore file 步骤 4:在当前目录下建立一个名为 test 的新目录,然后将工作目录切换到 test 下,尝试将/etc 目录下的文件 passwd 拷贝到该目录下(cp 源文件 目的目录)。察看当前目录下的passwd 文件的属主和文件权限。步骤 5:尝试向当前目录下的 passwd 文件和/etc/passwd 文件分别写入一些新内容(可使用echo“字符串”文件的命令),看看操作能否成功,如果不能
4、成功,请说明原因。用 cat命令浏览文件 password 的内容,用 more 命令进行浏览翻页操作,再用 less 命令浏览文件的内容。比较这几个命令的不同之处 对当前目录中成功,因为该目录下的 passwd 文件对当前用户具有写的权限。对/etc/passwd文件的操作被拒绝因为对当前用户不具有写的权限 cat 命令将文件的内容全部显示,more 命令将文件内容分屏显示,less 命令进行刷新的全部显示 步骤 6:用 ls 命令查看 test 下文件的权限,用 mv 命令更改文件 password 的文件名为,尝试用 chown 和 chgrp 更改文件的属主为 root、组为 root
5、,看看能否成功,不成功,请说明原因。尝试用 chomd 将文件权限为“-rw-”。看看能否成功,不成功,请说明原因。用 chown 和 chgrp 更改文件的属主为 root、组为 root,不成功。因为 chown 和 chgrp 一般是 root 的权限 步骤 7:用 rm 命令删除 test 目录下的所有文件,再用 rmdir 命令删除 test 目录。(想一想有没有一条命令将目录及目录下的所有文件删除,写出这条命令)rm-rf test 步骤 8:使用 ps 命令查看当前系统内的进程,并利用 man 命令获取 ps 命令的参数,写出获取当前终端进程执行情况的 ps 命令。步骤 9:使用
6、 df 命令查看当前系统已安装的文件系统的空间使用情况,记录结果。步骤 10:使用 du 命令查看用户的工作目录占用了多少空间,记录结果。步骤 11:使用 free 命令查看内存资源的使用情况,记录结果。步骤 12:使用 man 获取 tar 和 gzip 的帮助信息,尝试将 test 目录下的文件打包并压缩,然后到另外一目录 tmp 下解包,写出这几条命令。步骤 13:尝试执行“ls l tmp”,看看这条命令的执行会出现什么结果,解释一下这条命令。创建一个名为 tmp 的文件并将 ls-l 输出的内容写入 tmp 中 步骤 14:尝试执行 find/usr/src-name*.c-prin
7、t|xargs grep“#include”,看看这条命令的执行会出现什么结果,解释一下这条命令。匹配查找列表输出/usr/src 下以.c 结尾的文件中含有“#include”的内容 步骤 15:执行 cal 和 date 命令,说说这两条指令的用途。步骤 16:执行命令 clear 和 logout,退出系统。(想一想有没有其他的方法,写出这种方法)Exit 步骤 17:执行命令 shutdown,关闭系统。(想一想有没有更简单的命令,写出这条命令)Init 0 3、实验结论 通过对 linux 的常用命令的学习,让我对 linux 的系统有了初步的认识-这是一个完全基于命令操作的操作系统
8、,这些命令组成了强大的命令系统,提供了完善的功能。这些命令操作将为我以后的 linux 学习打下良好的基础。实验二 简单 Shell 程序设计 1、实验目的 (1)学习和掌握 vi 编辑器的基本使用方法。(2)学习和掌握编写简单的 shell 程序。2、实验内容和步骤 vi 的使用 步骤 1:以 root 用户身份登录进入 Linux 系统。步骤 2:启动 Vi,切换到输入模式,输入一段英文:This ia an exercise!We use Vi to edit it.Left,down,up,right 步骤 3:尝试匹配其中的一串字符,写出这命令及执行结果。:/Left 步骤 4:尝试
9、替换其中的一串字符,写出这命令及执行结果。:3s/Left/123/g 步骤 5:尝试复制/删除其中的一行或几行文本,写出命令及执行结果。命令模式下,光标移动到那一行按”nyy”(n为要复制的行数)再按p粘贴。命令模式下,光标移动到那一行按”ndd”(n为要删除的行数)删除一行或几行。步骤 6:尝试复制/删除其中的一个单词或几个字符,写出命令及执行结果。命令模式下,光标移动到那一行按”nyw”(n为要复制的单词数)再按p粘贴。命令模式下,光标移动到那一行按”ndw”(n为要删除的单词数)删除一个或几个字符。步骤 7:尝试使用鼠标复制文本,写出命令及执行结果。直接使用鼠标选中复制,将光标移动到要
10、粘贴的地方用鼠标粘贴即可完成复制文本。步骤 8:尝试存盘退出操作,写出命令。:wq 简单的 shell 程序 步骤 1:使用 Vi 将程序清单 2-1 的程序输入。步骤 2:尝试运行该程序,如果不能运行,原因是什么,怎样修改。没有执行权限 chmod+x test 步骤 3:执行程序,写出程序的执行结果。步骤 4:阅读程序,掌握 shell 函数的编写方法,补全函数 file_run。file_run()ls-l|awk/-(.x)+/print$9 步骤 5:修改程序中的函数 uers(),使得显示在线用户时不分行。(提示:可以使用循环,对每个在线用户分别处理。)uers()echo the
11、re are who|wc-l users online echo who are for i in$(who|awk print$1);do printf%s$i done echo 3、实验结论 Linux 系统 shell 编程其本质就是 linux 命令的组合,通过许多简单命令的组合可以完成很多功能,可以开发一些小型程序。实验三 Linux 下简单 C 程序设计与文件操作 1、实验目的 (3)学习和掌握 gcc 等 Linux 的开发调试环境。(4)学习并掌握 Linux 的文件操作。(5)编写并实现实验步骤 6 要求的程序。2、实验内容和步骤 步骤 1:使用 Vi 将程序清单 3-1
12、 和 3-2 的程序输入,并在当前目录下创建文件“”和文件“”,尽可能的使文件“”大一些。步骤 2:利用 gcc 分别编译这两个程序,写出编译命令和执行结果,如果不成功,尝试利用gdb 调试。gcc o list3_1 gcc o list3_2 步骤 3:仔细观察这两个程序,比较标准 C 的文件操作和 Linux 的系统调用 open、read、write等的使用区别。答:标准 c 的文件操作一个是库函数的调用,linux 中系统调用文件操是底层的文件调用,其运行效率略有差距,同时参数也不同,返回的数据类型也不同。步骤 4:按照说明重新修改程序 3-2,并使用 time 命令察看程序执行的时
13、间效率上有何区别。步骤 5:输入、编译并运行程序 3-3 和 3-4,写出执行结果,并比较他们 fseek 和 lseek 在使用方法上的异同 两者都是对文件的读写指针进行设置但两者的返回类型不同,fseek 返回的是 int 型 lseek返回的是 off_t 型 步骤 6:学习并分别使用标准 C 的文件操作函数和 Linux 的系统调用创建一个对学生基本信息进行操作(插入、修改和删除)的 C 程序,学生基本信息以结构体的形式存储在文件中,struct stu_info 的定义如下:struct stu_info char stu_num12;char name10;short int se
14、x;/*0 为女生,1 为男生*/char mobile_phone12;3、实验结论 通过对文件操作的编程,让我掌握了文件的创建,打开,读写,以及特定位置的读写关闭等操作。并且从系统底层调用和标准 c 函数库两个角度对文件的操作比较中,认识到两者的异同。实验四 Linux 下进程操作与进程间通信 1、实验目的 (1)学习和掌握 fork 等系统调用的基本使用方法。(2)利用 Linux 中的管道实现父子进程间的同步。2、实验内容与步骤 步骤 1:使用 Vi 将程序清单 4-1 的程序输入、编译并运行,学习和掌握 fork 的基本调用方法。步骤 2:使用 Vi 将程序清单 4-2、4-3 和
15、4-4 的程序输入、利用 gcc 分别编译这三个程序,写出编译命令和编译结果,如果不成功,尝试利用 gdb 调试。gcc-o list4_2 gcc-o father gcc-o child 步骤 3:写出编译这三个程序的 makefile,然后利用 make 进行编译,谈谈这么做的好处。可以节省劳动时间,让三个程序同时编译,简化了操作。步骤 4:运行这三个程序,写出运行结果。步骤 5:屏幕上显示出的执行结果是哪一个进程执行的结果 father 和 child 步骤 6:父进程中的 printf 有向屏幕输出吗为什么 没有,因为父进程的标准输出已经被重定向。步骤 7:利用父子进程间的管道通信方
16、式,改写实验 3 步骤 6 要求的程序。3、实验结论 通过该节实验,我更进一步理解了 fock 函数 dup 函数 exercl 函数的工作原理,让我了解到了进程并发的概念。学习了如何创建子进程,进程映象替换,以及通过无名管道实现父子进程中的输入输出重定向 实验五 Linux 线程的使用 1、实验目的 学习和掌握 Linux 线程的创建以及同步方法。2、实验内容和步骤 步骤 1:输入程序 5-1,编译并运行写出执行结果。thread_function is was 10 Waiting for thread to finish.Thread joined,it returned Thank y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 实验 报告 30389
限制150内