20145314郑凯杰《信息安全系统设计基础》第10周学习总结

20145314郑凯杰《信息安全系统设计基础》第10周学习总结

明确教材学习目标

本周的学习计划是上一周的补充与完善,并对一些代码进行深入理解思考。

重点如下:

  • 注意每个系统调用的参数、返回值,会查帮助文档

  • 阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下

  • 学习视频,掌握两个重要命令:

    man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用
    t5:

    grep -nr XXX /usr/include :查找宏定义,类型定义

t6:

  • 教材中相关代码运行、思考一下,读代码的学习方法见「代码驱动的程序设计学习」。
  • 代码重点:课程演示代码

重点分析老师所给我们的代码:

图2:

教材学习内容总结

① cp命令####

功能: 复制文件或目录

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

图1:

其详细的使用方法为:

复制文件,只有源文件较目的文件的修改时间新时,才复制文件

cp -u -v file1 file2

将文件file1复制成文件file2

 cp file1 file2

采用交互方式将文件file1复制成文件file2

 cp -i file1 file2

将文件file1复制成file2,因为目的文件已经存在,所以指定使用强制复制的模式

 cp -f file1 file2

将目录dir1复制成目录dir2

 cp -R file1 file2

同时将文件file1、file2、file3与目录dir1复制到dir2

cp -R file1 file2 file3 dir1 dir2

复制时保留文件属性

 cp -p a.txt tmp/

复制时保留文件的目录结构

 cp -P  /var/tmp/a.txt  ./temp/

复制时产生备份文件

 cp -b a.txt tmp/

复制时产生备份文件,尾标 1格式

 cp -b -V t   a.txt /tmp    

指定备份文件尾标

 cp -b -S _bak a.txt /tmp

运行截图:

图3:

② echostate.c####

功能:检查命令行中的提示符是否是可见的,可见返回1,否则返回0:

运行结果:

图4:

③ setecho.c####

功能:可以改变符号显示状态,no是不显示符号,yes是显示。
设置回显位的状态,命令行参数为y则开启,否则关闭。

注意

  • 标准输入的文件描述符为0.
  • 使用tcgetattr()函数和termios结构体可获得标准输入的属性。
  • 使用tcsetattr()函数和termios结构体可以将更改后的属性设置重新写回标准输入。

运行结果:

图5:

并没有什么显示。

④ ioctl

功能:ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。系统调用ioctl提供对连接到fd设备驱动程序的属性和操作访问,每种类型的设备都有自己的属性集和ioctl操作集。

查看帮助文档 man ioctl

图6:

运行代码:

图7:

⑤ls命令

功能:读取文件名和文件属性,按照字典序排序后输出。

首先是ls1:简单的显示所在文件夹中的文件及文件夹列表

运行结果:

图8:

ls2.c功能:显示指定目录下的文件详细信息

运行结果:

图9:

⑥filesize.c

功能:通过stat得到文件大小信息,即指定查找etc/passwd文件的大小

运行结果:

图10:

编译

图11:

⑦fileinfo.c

功能:如其名字一样,用来实现显示文件信息。首先判断命令是否有操作数,有的话继续进行下去,如果没有报错就打印出来相关文件信息,报错就用perror将报错信息打印出来。

图12:

图14:

一个小测试,当文件不存在时

⑧WHO

功能:读取系统中用户信息

运行截图:

图15:

代码上传链接与截图

本周五百行代码:

图20:

链接:http://git.oschina.net/qiaokeli26/linux

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第七周 1300/1750 11/11 140/140
第八周 1700/2000 13/13 160/160
第九周 2000/2400 14/15 180/180
第十周 2500/2800 15/17 0/200

| 第十周 | 3000/3000 | 15/17 | 0/200 | |

参考资料

原文地址:https://www.cnblogs.com/5314zkj/p/6081872.html