Linux实验报告【全集】

若对你有帮助,记得点赞、关注我哦!

博客总领目录请看这篇,超级干货

软件工程专业大学四年学什么_大学近代史学分是多少-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_41587612/article/details/104362661B站同名up猪,欢迎关注我的账号鸽子不二的个人空间-鸽子不二个人主页-哔哩哔哩视频哔哩哔哩鸽子不二的个人空间,提供鸽子不二分享的视频、音频、文章、动态、收藏等内容,关注鸽子不二账号,第一时间了解UP主动态。icon-default.png?t=N7T8https://space.bilibili.com/204913846

实验目录:Linux常用命令、linux下的shell编程、 Linux下的c编程、Linux下的API编程(每个实验的图片都比较多)

一开始实验基本都是书上的例题、后面会变难,做实验时往往会想:为什么每届都做同样的实验,却没有留传下来“成果”?

所以就有了我的“实验报告”博文,写这种博文也挺麻烦的。

实验一  Linux常用命令

【实验题目】

       Linux常用命令

【实验目的】

熟练掌握Linux常用命令

【实验内容与实现】

1. 使用联机帮助命令,包括man命令和info命令。

                     图1 使用man ls命令获取ls的联机说明

                    图2 使用info ls获取ls的联机说明

2. 熟练使用目录和文件操作命令。

(1)使用cd命令改变当前工作目录,使用pwd命令显示当前工作目录的绝对路径。

(2)linux提供的mkdir、rmdir两个命令分别用于创建新的目录、删除空目录。删除非空目录要用到rm命令。要求在某个mkdir、rmdir、rm命令后跟ls(list)命令,列出文件目录,以验证目录创建、目录删除操作是否成功。

3. ls命令用于检视指定目录下的文件列表与文件属性。

(1)回到用户的“家”目录

(2)显示当前目录列表,包括文件名以“.”开头的隐藏文件

   (3)给出绝对路径,列出目录/etc下的文件名列表

(4)列出当前目录列表,给出每个文件的类型标记

(5)将家目录(可用符号“~”表示)下的所有文件及详细属性列出来,每行一个文件

(6)显示当前目录(省略目录名为当前目录)下所有文件的文件名及其i节点号(显示于文件名的前面)

(7)显示当前目录下的所有文件

3. 熟练使用文件权限命令。

(1)在/tmp目录下创建文件f52、f521、f522,将文件f522的文件权限更改为777,为所有用户添加对f521文件的读写权限,去掉所有用户对f522文件的写权限。

(2)文件档案归属更改:chown、chgrp

以root身份登录,在/tmp目录下创建文件f53,将其文件主、所属用户组分别更改为can、bin。

4. 熟练运行通配符。

(1)在/tmp目录下创建两个文件ff1和ff2,将所有文件名ff开头,长度为3个字符的文件复制到目录personal中。

(2)删除personal目录下的所有名字以ff开头的文件。

(3)删除personal目录下的所有文件、目录、包括子目录。

5. 熟练使用输入输出重定向和管道命令。

(1)将前一命令给出的passwd联机帮助重定向到文件a,覆盖文件a的所有内容。

(2)将命令date给出的日期时间信息追加到文件a

(3)不带参数的cat命令本来是从终端读取输入,通过输入重定向改从文件读取

(4)将文件/etc/passwd的内容送往命令sort排序输出

(5)find命令在当前用户的家目录树中查找所有文件名后缀为.c的文件信息交由more分页显示

(6)grep命令在当前目录树文件中搜索包含”main()”的文本,交由命令more分页显示

【实验心得】

       通过本次试验我熟练掌握了使用联机帮助命令man和info命令来获取相应命令的联机说明,学会使用目录和文件操作命令,同时还会用文件权限管理命令,熟练运行通配符、输入输出重定向和管道命令,受益匪浅。

实验二  linux下的shell编程

【实验题目】

      Linux下的shell编程

【实验目的】

      掌握shell脚本的设计方法。

【实验内容与实现】

1. 根据提示输入你的用户名和密码,并将结果显示在屏幕上。

2. 对IF行的命令进行测试,如果命令执行成功,则执行then分支的语句序列(“it worked”)。

3. 对IF的命令进行测试,如果在IF行放了一条错误的命令,显示语句序列为”we’re outside of the if statement”

4. if语句行使用grep命令搜索/etc/passwd文件,查看系统是否正在使用某个特定的用户名。如果一个用户拥有该用户名,脚本会显示一些文本,然后列出用户家目录下的bash文件。

5. 定义两个变量val1和val2,比较val1是否大于5,val1是否等于val2,并输出比较的结果。

6. 检查对象是否存在,在使用脚本或目录之前,-e选项能检查它们是否存在。若要确定指定的对象是否为文件,可使用-f选项。

7. 检查文件是否能够运行,请使用-x选项确定是否拥有指定文件的运行权限。

8. 编写程序,使用case语句对指定的不同变量进行模式匹配。

9. 编写程序,请读取列表或变量中的值。

10.编写程序,请读取命令结果中的值。

11. 使用通配符读取目录。

12. 利用一个until循环对一个值为整数的变量做递减运算,并显示运算结果。

13. 使用管道,将cat命令的输出通过管道送给read命令。若输入文件有多行数据要读出来,则将cat输出送往while read命令。

14. 在Shell脚本中调用同一个函数3次,最后打印结果“This is the end of the loop”。

15. 逆序输出一个字符串。

16. 编写一个shell脚本,利用for循环将当前目录下的.c文件移动到指定的目录,并按文件大小显示出移动后指定的目录的内容。

17. 利用数组形式存放10个城市的名字,然后利用for循环把它们打印出来。

实验三   Linux下的c编程

【实验目的】

        熟练使用Linux自带系统库,执行教材3.2.4、3.2.5、3.5.1、3.5.2节中的示例程序,对程序进行功能扩充。分别在教材第70-71页、第72-73页、第90-91页、第91页。

【实验内容与实现】

1. 应用time函数,将两次调用的时间相减得到代码的执行时间。

2. 使用qsort函数,对整型数组int num[10]={90,51,32,83,94,45,36,47,28,19}进行排序。

3. 利用linux C程序相关函数展示环境变量的读取方法。

4. 请编写程序演示命令行的读取方法。

5. 用希尔排序法将数组中的数据按由小到大的顺序进行排序

实验四  Linux下的API编程

【实验目的】

  1. 熟练使用signal函数,执行教材5.4.4节中的示例程序,并分析程序执行结果。教材第191-193页。
  2. 熟练掌握管道编程方法,执行教材7.1.2节中的示例程序,观察程序执行结果,并对程序进行改进。教材第275-277页。

【实验内容与实现】

5.4.4节中的示例程序

        信号处理函数的定义在第3~6行。main函数在第8和第9行设置信号处理程序,然后进入休眠状态,直到接收到一个信号(第10行)。当接收到SIGINT信号时,运行信号处理程序,输出一条信息(第4行),然后终止这个进程(第5行)。

1. 捕获用户在键盘上键入CTRL+C时Shell的SIGINT信号。

2. 思考下列程序的输出是什么?

3. 通过命令行创建命名管道。

4. 通过程序在目录/tmp下创建一个FIFO文件,文件名为myfifo。

5. 使用命令访问FIFO。

6. 编写程序将命令行参数argv[1]的值写入/tmp/myfifo,再编写另一个不同的程序实现从/tmp/myfifo读出数据并显示出来。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值