zoukankan      html  css  js  c++  java
  • 20145301 《信息安全系统设计基础》第2周学习总结

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

    教材学习内容总结

    vim

    • vim概述:
    • 从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆。几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截然不同的方式:命令目录(鼠标或者键盘驱动),组合键(通常通过control键(CTRL)和alt键(ALT)组成)或者鼠标输入。Vim和vi一样,仅仅通过键盘来在这些模式之中切换。这就使得Vim可以不用进行菜单或者鼠标操作,并且最小化组合键的操作。对文字录入员或者程序员可以大大增强速度和效率。

    • vim三种常用模式介绍:

    • 普通模式(Normal mode) 在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。 Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个"d"的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的"j"键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够 灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。 在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。

    • 插入模式(Insert mode) 在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。 在插入模式中,可以按ESC键回到普通模式。 命令行模式(Command line mode) 在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。

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

    • 操作截图:
    • 命令行模式下退出vim

      从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑,以下为其它几种退出方式:

    • 命令说明
      :q! 强制退出,不保存
      :q 退出
      :wq! 强制保存并退出
      :w <文件路径> 另存为
      :saveas 文件路径 另存为
      :x 保存并退出 
      :wq 保存并退出

    • 普通模式下退出vim

      普通模式下输入Shift+zz即可保存退出vim

    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
     编译过程比较难记,我们简化一下,前三步,GCC的参数连起来是“ESc”,相应输入的文件的后缀是“iso”,这样记忆起来就容易多了。
    
    gdb
     b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时  断点)
     run 开始运行程序
     bt 打印函数调用堆栈
     p 查看变量值
     c 从当前断点继续运行到下一个断点
     n 单步运行
     s 单步运行
     quit 退出GDB
    
     断点的设置:
          函数:b 文件名.c:函数名
          行:b 行数
          条件:b 行数 if 表达式(例如:b 9 if == 12)
          临时:tb [文件名:]行号或函数名 <条件表达式>
     
    Makefile 使用
    • 一个工程中的源文件不计其数,按其类型、功能、模块分别放在若干个目录中。makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至进行更复杂的功能操作。其带来的好处就是——“自动化编译”,一但写好,只需要一个make命令,整个工程完全编译,极大的提高了软件的开发效率。
    • makefile文件编写规则:
      • 目标文件:由make创建,通常是目标文件或可执行文件
      • 依赖文件:创建目标体所依赖的文件
      • 运行命令:创建每个目标体时需要的运行命令,必须以tab键开头
      • 格式为:目标文件:依赖文件列表 [tab键]各目标体运行命令

     

    代码调试中的问题和解决过程

    1.我在自己虚拟机上使用vim时,发现在插入模式中,使用“delete”并不能直接删除,而是移动光标并再次编辑,于是我上网搜vim的版本号,看是否为版本的原因,但没有找到想要的答案。  
    于是我便自己尝试,最后发现,此时移动的光标后的内容实则已经删除,用“esc”退出插入模式,光标后的内容自动消失。  


    另外,在在插入模式下“上下左右”方向移动键,却变成输入了“ABCD”,当想修改内容时就变得十分不方便,都需要现退回到普通模式下,再移动光标。而在普通模式下,移动光标又不单单可以使用“jkhl”来移动光标,还可以用“上下左右”...........不知道其他同学是否有遇到和我一样的问题?

    本周代码托管截图

    • git代码托管如图:

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

    本周的学习内容主要在vim、gcc和gdb上,vim对我们来说又是一个全新的领域,在vim上操作完全不需要鼠标,据说可以大大提高效率。初学还暂未体会到,还需要我们加强练习和了解。学习vim后本身有利对C语言、汇编等其他课程的深入了解和学习,并且让我们多了一种选择方式。

    学习进度条

     代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
    目标  4000行  24篇  400小时   
    第一周  150/150  1/1  15/15  对Linux有了初步的认识
    第二周  200/350 1/2 20/35 vim的使用

    参考资料

  • 相关阅读:
    连续子数组的最大和
    孩子们的游戏(圆圈中最后剩下的数)
    左旋转字符串
    业界难题-“跨库分页”的四种方案
    InnoDB意向锁的作用
    Linux下Fork与Exec使用
    minixml的安装教程
    main()函数的形参
    结构体数组初始化
    fork函数详解
  • 原文地址:https://www.cnblogs.com/5301z/p/5907577.html
Copyright © 2011-2022 走看看