zoukankan      html  css  js  c++  java
  • 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

    参考资料

  • 相关阅读:
    hutool 解析 Excel
    上传文件
    Cannot construct instance of `com.**` (although at least one Creator exists)
    Java8之Optional
    java8之Stream
    java8之Lambda
    springboot+mybatis事务管理
    queryWrapper in like
    Java 组装 Tree
    JWT
  • 原文地址:https://www.cnblogs.com/20145229ss/p/5904796.html
Copyright © 2011-2022 走看看