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

    20145336张子扬 《信息安全系统设计基础》第2周学习总结

    教材学习内容总结

    学习目标

    1. 熟悉Linux系统下的开发环境
    2. 熟悉vi的基本操作
    3. 熟悉gcc编译器的基本原理
    4. 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术
    5. 熟悉makefile基本原理及语法规范
    6. 掌握静态库和动态库的生成

    vim

    命令行模式 (command mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

    插入模式(Insert mode):只有在 Insert mode 下,才可以做文字输入,按「ESC」键可回到命令行模式。

    vim相关快捷键

    • k、j、h、l      功能分别上、下、左、右
    • w          在指定行内右移光标,到下一个字的开头
    • e                   在指定行内右移光标,到一个字的末尾
    • b                   在指定行内左移光标,到前一个字的开头
    • 0                   数字0,左移光标,到本行的开头 
    •  G                  光标移动到文章的最后
    • M                  将光标移到屏幕的中间(Middle)
    • L                   将光标移到屏幕的最下行(Lowest)
    • H                   将光标移到屏幕的最上行(Highest)
    • nH                 将光标移到屏幕的第 n 行(如 2H: 将光标移到屏幕的第 2 行)
    • nL                 将光标移到屏幕的倒数第 n 行(如 3L:将光标移到屏幕的倒数第 3 行)
    • nG                光标移动到文章的第 n行(如8G:移动到文章的第 8行)
    • x                   删除光标所在位置后面的一个字符,同delete
    • d+空格 删除光标所在位置的字符
    • dd 删除整行
    • dw 删除一个单词(不适用中文)
    • d$或D 删除至行尾
    • d^ 删除至行首
    • dG 删除到文档结尾处
    • d1G删至文档首部
    • Ctrl+b            在文件中向上移动一页(相当于 PageUp 键)
    • Ctrl+f             在文件中向下移动一页(相当于 PageDown 键)
    • ctrl+u             屏幕往后移动半页
    • ctrl+d            屏幕往前移动半页
    • u                  撤消前一条命令的结果 
    • p                  小写字母 p,将缓冲区的内容粘贴到光标的后面
    • yy                 复制当前行到内存缓冲区
    • i                   在光标左侧输入正文
    • a 在光标后插入编辑
    • w 保存文档
    • q! 强制退出,不保存
    • q 退出
    • [[ 转到上一个位于第一列的"{"
    • ]] 转到下一个位于第一列的"{"
    • { 转到上一个空行
    • } 转到下一个空行

    使用vim进行c语言的编写

    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

    gdb

    GDB最基本的命令

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

    问题:GDB的n(next)命令让GDB执行下一行,然后暂停。 s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,那么实际使用中应该优先选用哪个?为什么?

    在网上查阅了相关资料,在函数调用时step会进入函数,next导致下一次暂停出现在调用函数之后。next被称为单步越过函数,而step被称为单步进入函数。单步跳入碰到函数调用,就展开跟进调试。单步跳过碰到函数调用,就跳过去,并不展开函数,也就是说不会再调用的函数里中断。所以我觉得应该使用step命令

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

    在使用vimtutor中还是不太习惯使用hjkl键,对于快捷键的掌握一开始也不太娴熟,每次在使用vim时经常会去查表,渐渐的就能够熟练地掌握一些快捷键的运用,还需要多加练习。

    在学习vimtutor的过程中,发现打不开命令模式。每次打开vimtutor却不能使用q!退出只能关掉程序重新进。

    在使用linux中用vim编写代码时,虚拟机死机了!然后我就强行关闭重新进了,还是打不开,再重启电脑之后,重新打开linux虚拟机,发现之前码的代码都没有了。

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

    对于helloworld程序在vim中进行编译并进行了运行

    本周代码托管截图

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

    上周主要了解了linux环境,学习了如何使用linux系统。本周主要使用vimtutor和一些教程来掌握vim的使用方法,我感觉vim和五笔输入法一样,比较不容易掌握,但学会了是一个非常实用工具。使用vim编写c程序,使用gcc进行编译,使用gdb进行调试代码。本周的学习重点就是掌握vim的使用方法,掌握vim的最好途径就是练习,在练习中熟悉vim。

    学习进度条

     代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时    
    第一周 / 1/2 19/20  
     第二周 80/80  1/3  25/44  

    参考资料

  • 相关阅读:
    jsp mysql 配置线程池
    服务端 模拟 检测 攻击。。乱写
    硕思闪客精灵 7.2 破解版
    unity UnityAwe 插件
    smartfoxserver 2x 解决 Math NAN
    unity 断点下载
    java 监听文件目录修改
    wind7 64 setup appjs
    sfs2x 修改jvm 内存
    unity ngui 解决图层问题
  • 原文地址:https://www.cnblogs.com/20145336yang/p/5907655.html
Copyright © 2011-2022 走看看