• 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章知识

    参考资料

  • 相关阅读:
    第一次结对作业
    第二次个人编程作业
    第一次个人编程作业
    第一次个人作业
    个人总结-人生如戏
    第二次结对编程
    第一次结对作业
    第二次个人编程作业:代码互改
    第一次个人编程作业
    软件工与UML程第一次作业
  • 原文地址:https://www.cnblogs.com/20145335hh/p/6035068.html
Copyright © 2020-2023  润新知