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


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

    vimtutor练习

    这周我在实验楼里对vimtutor进行了练习,对vimtutor有了初步的了解,掌握了一些在nomal模式里的操作方法

    •移动光标:左移:h;右移:l;上移:k;下移:j;

    •退出: :q!<回车> (这个操作会丢弃我们之前做的任何改动)
    •删除:x(看起来就像是一个叉号)

    •插入:按下i键,接着输入想要输入的字符,输入完毕后按Esc键回到正常模式

    •添加:按下A键,添加字符,结束之后按Esc回到正常模式(不过这跟i键插入有什么区别?)

    •行内跳转:
    w 到下一个单词的开头
    e 到下一个单词的结尾
    b 到前一个单词的开头
    ge 到前一个单词的结尾
    0或^ 到行头
    $ 到行尾
    f<字母> 向后搜索<字母>并跳转到第一个匹配的位置
    F<字母> 向前搜索<字母>并跳转到第一个匹配的位置
    t<字母> 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母
    T<字母> 向前搜索<字母>并跳转到第一个匹配位置之后的一个字母

    •定位:按下Ctrl g键显示当前行信息

    跳转至文件最后一行:按下G键

    跳转至文件第一行:按下gg键

    跳转至文件某一行:输入行号 G键

    回到之前位置:输入Ctrl o,输入Ctrl I跳转到较新位置

    GCC

    1.基本操作
    •预处理: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

    2.gcc编译流程:
    linux 的可执行文件并没有像windows那样有明显的.exe后缀,只需要向其分配x(可执行)权限即可:sudo chmod u+x excutefile

    3.使用gcc编译一个c程序

    •打开的gvim环境中输入i进入编辑模式,输入代码,保存为hello.c文件

    •在XfceTerminal打开后的界面中输入:gcc hello.c -o hello,编译成功,将会在当前目录生成一个可执行文件 hello

    •继续输入:./hello 就会运行该程序编译成功后如果没有出现error会在当前目录生成一个可执行的hello的新文件,继续输入:./hello便可以运行

    GDB

    1.基本命令
    •gdb programm(启动GDB)
    •b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
    •run 开始运行程序
    •bt 打印函数调用堆栈
    •p 查看变量值
    •c 从当前断点继续运行到下一个断点
    •n 单步运行
    •s 单步运行
    •quit 退出GDB
    •list:显示源文件中的代码
    •break:用来设置断点

    makefile

    1.Makefile文件规则:
    ·一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如‘clean’
    ·一个或多个依赖文件的列表,通常是编译目标文件所需要的其他文件。
    之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,
    每个命令占一行,并以tab开头(初学者务必注意:是tab,而不是空格) 执行以上Makefile后就会自动化编译。
    2.Makefile的一般写法:
    ·test(目标文件): prog.o code.o(依赖文件列表)
    ·tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)
    3.Makefile还可以定义和使用宏(也称做变量):
    ·定义宏的格式为:macroname = macrotext
    ·使用宏的格式为:$(macroname)

    遇到的问题以及解决办法

    在跟着练习的时候觉得i键插入和A键插入是一样的,在第一节的总结里我知道了
    i键是在光标前插入文本;
    A键是在一行后添加文本;

    代码托管

  • 相关阅读:
    charles安装以及手机端的设置
    ON DUPLICATE KEY UPDATE 用法与说明
    亿级流量架构之网关设计思路、常见网关对比
    灰度发布系统架构设计
    Jmeter 并发测试
    springboot --- Swagger UI初识
    TortoiseGIT 一直提示输入密码的解决方法!
    MySQL 5.6 参数详解
    LVS 轮询调度详解
    MongoDB 权限
  • 原文地址:https://www.cnblogs.com/20145210ysy/p/5907593.html
Copyright © 2020-2023  润新知