20145229《信息安全系统设计基础》第2周学习总结

20145229吴姗珊 《信息安全系统设计基础》第2周学习总结

教材学习内容总结

1.vim

  • 普通模式
    可用i或者a进入插入模式

  • 插入模式
    大多数按键在此模式下会向文本缓冲中插入文本 可用ESC进行退出

  • 可视模式
    与普通模式相似的高亮模式

  • 选择模式

  • 命令行模式
    可以通过输入文本如:/ 执行命令

  • EX模式
    可以一次执行多条命令

  • 三种模式的切换
    vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc或者Ctrl+[(这在vim课程环境中不管用)即可进入普通模式。普通模式中按i(插入)或a(附加)键都可以进入插入模式,普通模式中按:进入命令行模式。命令行模式中输入wq回车后保存并退出vim

进入vim
1.使用vim命令进入vim界面

2.游标移动
在进入vim后,按下i键进入插入模式

3.进入插入模式

4.退出vim
从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑

2.vim文档编辑

  • 重复执行上次命令
    拷贝测试文件到本地目录,打开文件进行编辑,当输入x即删除第一个字母,再输入x时即再删除一个字母,用法与dd相似

  • 执行指定次数相同的命令
    进入普通模式输入N,N表示重复后面的次数,跟上一条相似的进行命令比如删除。在普通模式下,你还可以使用dw或者daw(delete a word)删除一个单词,所以你可以很容易的联想到dnw(n替换为相应数字)表示删除n个单词

  • 游标的快速跳转

    当完成依次跳转后,可以使用Ctrl+o快速回到上一次(跳转前)光标所在位置

    实验楼练习可将光标移至最末一行 或者ng

  • 复制粘贴和剪切

  • 普通模式中使用y复制
    普通模式中,yy复制游标所在的整行(3yy表示复制3行)
    普通模式中,y^ 复制至行首,或y0。不含光标所在处字符。
    普通模式中,y$ 复制至行尾。含光所在处字符。
    普通模式中,yw 复制一个单词。
    普通模式中,y2w 复制两个单词。
    普通模式中,yG 复制至文本末。
    普通模式中,y1G 复制至文本开头。

  • 普通模式中使用p粘贴
    普通模式中,p(小写)代表粘贴至光标后(下)
    普通模式中,P(大写)代表粘贴至光标前(上)
    通过实验楼练习会发现一些小技巧,如dd为删除,而P则为复制,则ddp即为复制粘贴了

3.查找替换

  • 字符的替换及撤销

    -普通模式下输入15G,跳转到15行
    普通模式下输入>> 整行将向右缩进(使用,用于格式化代码超爽)
    普通模式下输入<< 整行向左回退
    普通模式下输入:进入命令行模式下对shiftwidth值进行设置可以控制缩进和回退的字符数
  • shiftwidth命令
    shiftwidth命令是指上一节>>命令产生的缩进(可以简写成sw) 普通模式下输入:进入命令行模式下对shiftwidth值进行设置可以控制缩进和回退的字符数 获取目前的设定值
  • 调整文本位置
    命令行模式下输入:ce(center)命令使本行内容居中
    命令行模式下输入:ri(right)命令使本行文本靠右
    命令行模式下输入:le(left)命令使本行内容靠左
  • 查找
    普通模式下输入/然后键入需要查找的字符串 按回车后就会进行查找。 ?与/功能相同,只不过?是向上而/是向下查找。 进入查找之后,输入n和N可以继续查找 n表示继续查找,N反向查找
    普通模式下输入/icmp查找字符串icmp
    普通模式下输入n查找下一个icmp
    普通模式下输入?tcp向上查找字符串tcp
    普通模式下输入N查找上一个出现的tcp

4.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
    注意:编译时要加“-g”参数(参数连起来是“ESc”,相应输入的文件的后缀是“iso”)
  • gcc预处理源文件的时候(第一步),不会进行语法错误的检查,语法检查会在第二步进行。
  • gcc hello.c -o hello--- 第二个hello为文件名。
  • 大致流程:首先gcc会调用预处理程序cpp,由它负责展开在源程序中定义的宏.hello.i这是一个经过预处理器处理之后的C源文件
    实验楼里下载了学习的代码

5.GDB

  • gdb programm(启动GDB)
  • b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
  • run 开始运行程序
  • bt 打印函数调用堆栈
  • p 查看变量值
  • c 从当前断点继续运行到下一个断点
  • n 单步运行
  • s 单步运行
  • quit 退出GDB

教材学习中的问题和解决过程


在第一次的vim敲代码编译过程中,总是出现无法找到该文件,后发现在插入模式中输入代码需推出插入模式进入普通模式,shift+zz进行保存,后才可以进行编译

本周代码托管截图








其他(感悟、思考等,可选)

这周的学习任务跟上周的不一样,上周的主要是一些简单的命令输入,而这周的学习要用到陌生的vim编辑器,说实话快捷键的设定真有些不符常理,不过经常使用应该就习惯了,让我觉得非常便利的一点即是再查找、删除上可以直接进行到某一行,用起来十分方便。在后面的学会用vim编代码使用gdb进行调试比较复杂,过程中经历了百度以及询问同学,这一周的内容十分扎实也让我学到了很多,只是在代码的上传git上又要使用到上学期的知识,有一句老话,温故而知新,在以后的学习中应该经常温习以前的内容,特别是元知识,对后面的学习有着很大的帮助。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 2/2 17/17
第二周 300/300 3/3 15/15

参考资料

原文地址:https://www.cnblogs.com/20145229ss/p/5904796.html