20135223何伟钦—信息安全系统设计基础第十周学习总结

时间:2022-08-12 03:30:31

本周学习任务:

1. 编译运行代码 2. 使用man学习理解相关系统调用, 理解参数、返回值的含义 3. 会用grep -nr xxx  /usr/include 查宏定义

一、重要命令

   ① man :查看Linux中的指令帮助、配置文件帮助和编程帮助等信息

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

   ③grep -nr XXX /usr/include  :查找宏定义,类型定义(n:为显示行号 r:为递归查找)

二、编译运行代码和理解相关系统调用、参数、查宏定义

此次学习任务代码如下:

 20135223何伟钦—信息安全系统设计基础第十周学习总结

20135223何伟钦—信息安全系统设计基础第十周学习总结

(1)CP:复制文件或目录

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

20135223何伟钦—信息安全系统设计基础第十周学习总结

如上图,将CP1的代码已复制到文本destination.c中,如下查看destination.c确定

20135223何伟钦—信息安全系统设计基础第十周学习总结

20135223何伟钦—信息安全系统设计基础第十周学习总结

20135223何伟钦—信息安全系统设计基础第十周学习总结

man cp 查看CP指令的功能说明、语法、参数

 20135223何伟钦—信息安全系统设计基础第十周学习总结

20135223何伟钦—信息安全系统设计基础第十周学习总结

 

(2)echostate.c:显示终端是否已经开启

说明:tcgetattr()函数用于获取与终端有关的参数。成功返回0;失败返回非0,接口设置errno错误标识。

读取驱动设置并显示回显位的状态:1.标准输入的文件描述符为0

                                           2.使用tcgetattr()函数和termios结构体可以读取到设备的属性

                                           3.回显位状态放置在termios.c_lflag中

20135223何伟钦—信息安全系统设计基础第十周学习总结

(4)fileinfo.c:显示文件信息,包括使用者,分组,大小,修改时间和文件名。

说明:后跟文件名作为参数

(1)用来实现显示文件信息,建立了一个stat数据结构。

(2)要先判断命令是否有操作数

20135223何伟钦—信息安全系统设计基础第十周学习总结

(5)filesize:计算文件的字节数大小

说明:显示/etc/passwd文件的大小。/etc/passwd文件用于用户登录时校
验用户的口令

20135223何伟钦—信息安全系统设计基础第十周学习总结

(6)ls1.c:显示目录内容

说明:如果后跟目录,则显示指定目录的成员,否则,默认显示当前目录内容

20135223何伟钦—信息安全系统设计基础第十周学习总结

对比正常的LS命令,显然ls1.c是纵向逐一显示,linux中是横向叙述

20135223何伟钦—信息安全系统设计基础第十周学习总结

(7)ls2.c:显示目录内容的文件名、权限控制,大小,拥有者,修改时间等信息

说明:与ls -l命令相似

20135223何伟钦—信息安全系统设计基础第十周学习总结

(8)setecho.c:用于开关终端显示

说明:假如参数为空,直接关闭;假如参数为‘y’,则开启显示;假如为其他参数,则关闭显示。

设置回显位的状态,命令行参数为y则开启,否则关闭。

1.标准输入的文件描述符为0.

2.使用tcgetattr()函数和termios结构体可获得标准输入的属性。

3.使用tcsetattr()函数和termios结构体可以将更改后的属性设置重新写回标准输入。

如下图:其中宏ECHO经grep可知为000010

20135223何伟钦—信息安全系统设计基础第十周学习总结

20135223何伟钦—信息安全系统设计基础第十周学习总结

(9)spwd.c:默认显示当前所在目录的名字

20135223何伟钦—信息安全系统设计基础第十周学习总结

(10)testioctl.c:将winsize结构体中的行和列显示出来,可以用于测试ioctl函数

说明:其中ioctl函数提供了一种获得设备信息和向设备发送控制参数手段。

20135223何伟钦—信息安全系统设计基础第十周学习总结

20135223何伟钦—信息安全系统设计基础第十周学习总结

(11)who1.c&&who2.c:显示系统登录的记录,包括登录者名字,登录装置名和时间

20135223何伟钦—信息安全系统设计基础第十周学习总结

 

 

学习体会:

通过编译运行、思考、查阅代码1.理解了相关系统调用, 理解参数、返回值的含义2.学会了用grep -nr xxx  /usr/include 查宏定义3.理解linux系统基本指令的运行原理但是学习过程中很多不足:
1.代码理解能力有待提高,代码中很多细节不理解
2.信息筛选能力较低,当查阅所需资料时,当出来很多详细信息,我只能慢慢找;3.英语有待提高,很多指令多是用英语叙述,英语水平较低基本不能理解。

参考资料

1.博客:《信息安全系统设计基础》第一次实验报告--Linux 基础入门http://www.cnblogs.com/20135223heweiqin/p/4824516.html

2.Linux常用命令全集.CHM(很早以前已经下载,无链接)

3. LINUX 使用tcgetattr函数与tcsetattr函数控制终端http://blog.chinaunix.net/uid-10747583-id-97303.html

4.Linux文件权限详解http://blog.chinaunix.net/uid-25052030-id-174343.html