20145335郝昊 《信息安全系统设计基础》期中总结

20145335郝昊 《信息安全系统设计基础》期中总结

教材学习内容总结

复习Linux常用命令

man命令:
  • 是Linux下帮助指令,manmanul的缩写,我们可以通过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 firefoxwhich firefox这两个命令查找firefox所在的目录
IS命令
  • 显示指定工作目录下之内容(列出目前工作目录所含之档案及子目录)。

  • 参数:

    • a:显示所有档案及目录

    • A:与a相同,不列出目前目录及父目录

  • Linux Bash中,把ls命令显示当前目录的结果存入ls.txt的命令输出重定向命令是(ls > ls.txt

vi、gcc、gdb、make的使用

vi
  • 三种模式的切换:

    • 命名行模式中vim +文件名进入vim普通模式
    • 普通模式中按ia键都可以进入插入模式
    • 在插入模式中是使用esc键可以退出到普通模式
    • 普通模式中输入:wq回车后保存并退出vim
  • 光标的移动

    上、下、左、右方向键可以达到相应效果,字母hjkl也可以在插入模式中使光标进行移动。

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环境下操作和学习还是对于电脑有很多的提高,不论是从简单的使用命令manfindlocate等,还是一些上升难度的代码的编译与分析GCCGDB等都有提高

  • 这周的复习前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章知识

参考资料

posted @ 2016-11-06 13:20  20145335郝昊  阅读(148)  评论(2编辑  收藏  举报