2017-2018-1 20155313 《信息安全系统设计基础》第四周学习总结
2017-2018-1 20155313 《信息安全系统设计基础》第四周学习总结
学习任务
补充完成课上没有完成的内容(2分)
学习教材附录A,第十章内容
参考别出心裁的Linux系统调用学习法,学习视频,掌握两个重要命令:
man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用
grep -nr XXX /usr/include :查找宏定义,类型定义
完成head,tail的使用,相关API的分析,伪代码,产品代码,测试代码的编写(3分)
发表相关内容的学习博客(课堂上完成实践内容的可以选做),博客标题“2017-2018-1 学号 《信息安全系统设计基础》第四周学习总结”,博客(随笔)要通过作业提交,截至时间 本周日 23:59。
课堂任务
这次课堂任务完成度达到80%,可是在调试好调用文本主函数的以后,打印出来的od出现了乱码,在课堂时间没有发现原因是什么,所以选择了直接提交。
课下在学习中发现了问题,因为在定义字符串STR[1000]
的时候没有进行初始化,所以在后面读取完文本以后,字符串STR就生成了乱码。
课下对STR[1000]
进行了初始化,定义字符串初始值为0,就不会出现乱码的情况。
课下对myod_2.c文件又进行了调试最终运行的myod文件实现了与od -tx1 -tc
命令几乎相同的效果,以下是课堂截图与课下截图。
课堂笔记
man -k read | grep 2(搜到的结果用2过滤)
man -k read | grep 2 | grep file
man -k find | grep 3(寻找查找的功能并用3过滤)
课上老师讲了通过man命令来查找Linux命令的详细介绍,然后通过自己学习介绍中的信息理解该命令。以上是我课堂记录的关系关键字检索的命令。
grep 数字
是一个过滤除此结构的信息的命令,过滤的数字是指具体如下所示:
1、Standard commands (标准命令)
2、System calls (系统调用)
3、Library functions (库函数)
4、Special devices (设备说明)
5、File formats (文件格式)
6、Games and toys (游戏和娱乐)
7、Miscellaneous (杂项)
8、Administrative Commands (管理员命令)
9、其他(Linux特定的), 用来存放内核例行程序的文档。
也可以通过命令行输入man man来进行查看。
grep -nr O_RDONLY /user/include
课堂上我还记录了老师写的另一条代码,但是当时并不是很明白什么意思,所以通过课下学习对此命令进行了理解。
grep是Linux中查找文本内容的命令,参数后面的搜索内容O_RDONLY
是指read only只可读文件的意思,最后的内容是指搜索位置。
附grep的参数列表:
-a或--text 不要忽略二进制的数据。
-A<显示列数>或--after-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之后的内容。
-b或--byte-offset 在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。
-B<显示列数>或--before-context=<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前的内容。
-c或--count 计算符合范本样式的列数。
-C<显示列数>或--context=<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作>或--directories=<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式>或--regexp=<范本样式> 指定字符串做为查找文件内容的范本样式。
-E或--extended-regexp 将范本样式为延伸的普通表示法来使用。
-f<范本文件>或--file=<范本文件> 指定范本文件,其内容含有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每列一个范本样式。
-F或--fixed-regexp 将范本样式视为固定字符串的列表。
-G或--basic-regexp 将范本样式视为普通的表示法来使用。
-h或--no-filename 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H或--with-filename 在显示符合范本样式的那一列之前,表示该列所属的文件名称。
-i或--ignore-case 忽略字符大小写的差别。
-l或--file-with-matches 列出文件内容符合指定的范本样式的文件名称。
-L或--files-without-match 列出文件内容不符合指定的范本样式的文件名称。
-n或--line-number 在显示符合范本样式的那一列之前,标示出该列的列数编号。
-q或--quiet或--silent 不显示任何信息。
-r或--recursive 此参数的效果和指定“-d recurse”参数相同。
-s或--no-messages 不显示错误信息。
-v或--revert-match 反转查找。
-V或--version 显示版本信息。
-w或--word-regexp 只显示全字符合的列。
-x或--line-regexp 只显示全列符合的列。
-y 此参数的效果和指定“-i”参数相同。
--help 在线帮助。
课下任务
head命令的c语言编写
通过man head
命令得知head命令是输出文件的前面部分,具体的输出模式需要参照具体参数。
head的命令的具体格式为:head [OPTION]... [FILE]...
。
输出截图如下所示。
tail命令的c语言编写
通过man tail
命令查看tail命令的作用,是输出文件的结尾部分或文件更新部分,具体的输出模式需要参照具体参数。
tail的命令具体格式为:tail [OPTION]... [FILE]...
。
tail命令是一个与head命令输出形式差不多,输出顺序不同或者相反的一个命令。
输出截图如下所示。