20145335郝昊 《信息安全系统设计基础》期中总结
20145335郝昊 《信息安全系统设计基础》期中总结
教材学习内容总结
复习Linux常用命令
man命令:
-
是Linux下帮助指令,
man是manul的缩写,我们可以通过man man来查看man的帮助 -
选项:
-a:在所有man帮助手册中搜索-k:根据关键字搜索联机帮助,是一种模糊搜索-f:关键字精确搜索,显示给定关键字的简短描述信息-p:指定内容时使用分页程序-M:指定man手册搜索的路径
-
参数:
- 数字:指定从某本man手册中搜索帮助
- 关键字:指定要搜索帮助的关键字
-
常用命令:
man printf:普通Linux命令man 1 printf:操作系统提供的服务接口man 3 printf:函数库,c语言中的函数man -k sort:排序定位
cheat命令
- 是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。它没有提供其他额外多余的信息,只通过使用实例告诉你一个命令如何使用。
grep命令
-
Linux系统中
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。命令格式:grep [options] -
主要参数:
-
-c:只输出匹配行的计数 -
-I:不区分大小写(只适用于单字符) -
-h:查询多文件时不显示文件名 -
-l:查询多文件时只输出包含匹配字符的文件名 -
-n:显示匹配行及行号 -
-s:不显示不存在或无匹配文本的错误信息 -
-v:显示不包含匹配文本的所有行 -
如果想查找某个宏,我们已知宏保存在include文件夹中,所以可以使用下列语句:
grep -nr XXX /usr/include(XXX为所要找的宏)
find命令
-
find命令用来在指定目录下查找文件。
-
常用选项:
-name filename:查找名为filename的文件-mtime -n +n:按文件更改时间来查找文件,-n指n天以内,+n指n天以前-atime -n +n:按文件访问时间来查GIN: 0px">-ctime -n +n:按文件创建时间来查找文件,-n指n天以内,+n指n天以前-newer f1 !f2:查更改时间比f1新但比f2旧的文件-type b/d/c/p/l/f:查是块设备、目录、字符设备、管道、符号链接、普通文件-size n[c]:查长度为n块[或n字节]的文件-size n[c]:查长度为n块[或n字节]的文件-depth:使查找在进入子目录前先行查找完本目录
locate命令
-
locate命令是Linux一种查找命令,但是要比find命令快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。如指定范本为kcpaner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。 -
常用选项:
-
-e:将排除在寻找的范围之外 -
-f:将特定的档案系统排除在外 -
-q:安静模式,不会显示任何错误讯息 -
-n:至多显示 n个输出 -
-r:使用正规运算式 做寻找的条件 -
-o:指定资料库存的名称 -
-d:指定资料库的路径 -
-h:显示辅助讯息 -
-V:显示程式的版本讯息
whereis命令
whereis,which告诉你使用的命令工具装在什么地方,比如用whereis firefox、which firefox这两个命令查找firefox所在的目录
IS命令
-
显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。
-
参数:
-
a:显示所有档案及目录 -
A:与a相同,不列出目前目录及父目录
-
-
Linux Bash中,把ls命令显示当前目录的结果存入
ls.txt的命令输出重定向命令是(ls > ls.txt)
vi、gcc、gdb、make的使用
vi
-
三种模式的切换:
- 命名行模式中
vim +文件名进入vim普通模式 - 普通模式中按
i或a键都可以进入插入模式 - 在插入模式中是使用
esc键可以退出到普通模式 - 普通模式中输入
:wq回车后保存并退出vim
- 命名行模式中
-
光标的移动
上、下、左、右方向键可以达到相应效果,字母
h、j、k、l也可以在插入模式中使光标进行移动。
GCC基本操作
- 预处理:
gcc –E hello.c –o hello.i;gcc –E调用cpp - 编 译:
gcc –S hello.i –o hello.s;gcc –S调用ccl - 汇 编:
gcc –c hello.s –o hello.o;gcc -c调用as - 链 接:
gcc hello.o –o hello ;gcc -o调用ld - 运行:
./hello
GDB调试
-
进入gdb:
gdb+文件名 -
常用参数:
l:进行行号提示b n:在第n行设置断点r:运行代码,运行至断点处n:单步运行q:退出GDB
-
四种断点:
- 函数断点:
b 函数名 条件表达式 - 行断点:
b 行/函数名 条件表达式 - 条件断点:
b 行/函数名 if表达式 - 临时断点:
tbreak 行数或函数名 条件表达式
- 函数断点:
Makefile的使用
-
首先$ vim Makefile,识别文件代码是否更新,减少编译工作量
-
常用命令
- test: prog.o code.o
gcc prog.o code.o -o test
- prog.o: prog.c code.h
gcc -c prog.c -o prog.o
- code.o: code.c code.h
gcc -c code.c -o code.o
- clean:
rm -f *.o test
自己的收获
-
学习了Linux系统操作,这与原来一直接触的Windows系统还是有很大的不同的,学习了半学期的《信息安全系统设计基础》的课程,对于在Linux环境下操作和学习还是对于电脑有很多的提高,不论是从简单的使用命令
man、find、locate等,还是一些上升难度的代码的编译与分析GCC、GDB等都有提高
![]()
![]()
-
这周的复习前7章的知识点也有了收获,对于之前没有掌握或理解透彻的知识点也得到了复习,比如GDB断点的调试练习,再之前的学习中并没有掌握扎实。这次使用GDB对书上的一个代码进行分析,逐步调试,分析栈帧的变化。不仅书熟练掌握了GDB的使用,也掌握了栈帧的变化。
自己的不足
-
最大的不足在于有拖延,总是想着一周的博客内容放在周末再去完成,在周末加班加点完成博客,平时看看书就好。但是这样是错误的,这样仅仅是将学习当成一件任务去完成,而且完成的任务的质量也并不高。就像最初的健身教练与学员的关系一样,学员不能因为教练教了动作要领就认为自己也掌握了动作的精髓,所以在拖延方面还有待提高,需要去努力。
-
学习过的课程没有很及时的复习,很多知识在周测验结束后就认为已经掌握了,在等到真正运用的时候发向并没有掌握。在最初的Linux基本命令认为已经掌握了,但是等运用的时候删除一个文件夹简单的rm+文件名都不能很熟练的使用。所以在课程复习方面需要步步抓紧,才能对学习理解的更透彻
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 30篇 | 400小时 | |
| 第一周 | 200/200 | 2/2 | 20/20 | 掌握核心的linux命令,了解了linux操作系统 |
| 第二周 | 300/500 | 2/4 | 18/38 | 学会了虚拟机上的C编程 |
| 第三周 | 500/1000 | 3/7 | 22/60 | 初步学习计算机中各种数的表示和运算 |
| 第五周 | 300/1300 | 2/9 | 30/90 | 通过学习汇编,了解逆向的思想应用 |
| 第六周 | 300/1500 | 2/11 | 28/110 | 安装了Y86处理器,了解了ISA抽象 |
| 第七周 | 150/1700 | 2/13 | 30/130 | 学习了存储器的体系结构 |
| 第八周 | 200/1900 | 2/15 | 30/150 | 复习前7章知识 |


浙公网安备 33010602011771号