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  

    参考资料

  • 相关阅读:
    ABP框架理论研究总结(典藏版)
    ABP系列文章总目录:
    使用NServiceBus开发分布式应用
    shell脚本进阶 详解及其实例(一)
    linux模拟实现主机跨路由通信
    网络管理之基础知识详解
    RAID RAID 大揭秘~
    磁盘管理(一)磁盘结构
    如何在centos7上安装源码包
    压缩与解压缩
  • 原文地址:https://www.cnblogs.com/20145336yang/p/5907655.html
Copyright © 2011-2022 走看看