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

    信息安全系统设计基础第二周学习总结

    学习目标

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


    内容一:vim编辑器的使用

    1.vim编辑器的三种模式

    Ⅰ正常模式:(按Esc或Ctrl+[进入) 左下角显示文件名或为空
    Ⅱ插入模式:(按i键进入) 左下角显示--INSERT--
    Ⅲ可视模式:左下角显示—VISUAL

    2、vim的一些基本操作

    Ⅰ、游标移动:

    在进入vim后,按下i键进入插入模式。在该模式下您可以输入文本信息,下面请输入如下三行信息:

    12345678

    abcdefghijk

    shiyanlou.com

    按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标。

    按键

    说明

    h

    l

    右(小写L)

    j

    k

    w

    移动到下一个单词

    b

    移动到上一个单词

    请尝试在普通模式下使用方向键移动光标到shiyanlou这几个字母上面

    Ⅱ.插入模式

    在普通模式下使用下面的键将进入插入模式,并可以从相应的位置开始输入

    命令

    说明

    i

    在当前光标处进行编辑

    I

    在行首插入

    A

    在行末插入

    a

    在光标后插入编辑

    o

    在当前行后插入一个新行

    O

    在当前行前插入一个新行

    cw

    替换从光标所在位置后到一个单词结尾的字符

    请尝试不同的从普通模式进入插入模式的方法,在最后一行shiyanlou前面加上www.,注意每次要先回到普通模式才能切换成以不同的方式进入插入模式

    Ⅲ.保存文档

    命令行模式下保存文档:

    保存文档从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w 文件名可以将文档另存为其他文件名或存到其它路径下

    Ⅳ.退出vim

    命令行模式下退出vim:

    从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑

    以下为其它几种退出方式:

    命令

    说明

    :q!

    强制退出,不保存

    :q

    退出

    :wq!

    强制保存并退出

    :w <文件路径>

    另存为

    :saveas 文件路径

    另存为

    :x

    保存并退出

    :wq

    保存并退出

    Ⅴ.普通模式下退出vim

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

    Ⅵ.删除文本

    1.普通模式下删除vim文本信息

    进入普通模式,使用下列命令可以进行文本快速删除:

    命令

    说明

    x

    删除游标所在的字符

    X

    删除游标所在前一个字符

    Delete

    同x

    dd

    删除整行

    dw

    删除一个单词(不适用中文)

    d$或D

    删除至行尾

    d^

    删除至行首

    dG

    删除到文档结尾处

    d1G

    删至文档首部

    除此之外,你还可以在命令之前加上数字,表示一次删除多行,如:

    2dd表示一次删除2行

    3.vim的按键图

    内容二:Linux基础

      1 Linux命令

    如果使用GUI,Linux和Windows没有什么区别。Linux学习应用的一个特点是通过命令行进行使用。

    登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着选项(options)或参数(arguments)。即Linux中命令格式为:

    command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数

    选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同。

    参数是指命令的作用对象。

    如ls命令,lsls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略。我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a” 就是选项,改变了显示的内容,如下图所示:

    内容三:Linux下C语言编程基础

    一、GCC编译器

    二、使用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支持的文件类型

     

     

    三、gdb

    建议使用CGDB,比GDB好用,熟悉VC的调试方式,可以使用DDD。 注意使用GCC编译时要加“-g”参数。 参考gdb参考卡GDB最基本的命令有

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

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

    其他几个我认为应该掌握的调试命令有:

    • display 跟踪变量值的改变
    • until 跳出循环
    • finish 跳出函数
    • help 帮助
      • gdb常用代码指令
      • $gdb 
      • 这样可以和gdb进行交互了。 
      • *启动gdb,并且分屏显示源代码: 
      • $gdb -tui 
      • 这样,使用了'-tui'选项,启动可以直接将屏幕分成两个部分,上面显示源代码,比用list方便多了。这时候使用上下方向键可以查看源代码,想要命令行使用上下键就用[Ctrl]n和[Ctrl]p. 
      •  
      • *启动gdb调试指定程序app: 
      • $gdb app 
      • 这样就在启动gdb之后直接载入了app可执行程序,需要注意的是,载入的app程序必须在编译的时候有gdb调试选项,例如'gcc -g app app.c',注意,如果修改了程序的源代码,但是没有编译,那么在gdb中显示的会是改动后的源代码,但是运行的是改动前的程序,这样会导致跟踪错乱的。 
      •  
      • *启动程序之后,再用gdb调试: 
      • $gdb  
      • 这里,是程序的可执行文件名,是要调试程序的PID.如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。 
      •  
      • *启动程序之后,再启动gdb调试: 
      • $gdb  
      • 这里,程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID,是要调试程序的PID.这样gdb就附加到程序上了,但是现在还没法查看源代码,用file命令指明可执行文件就可以显示源代码了。 
      •  
      •  
      • **启动gdb之后的交互命令: 
      • 交互命令支持[Tab]补全。 
      •  
      • *显示帮助信息: 
      • (gdb) help 


      • *载入指定的程序: 
      • (gdb) file app 
      • 这样在gdb中载入想要调试的可执行程序app。如果刚开始运行gdb而不是用gdb app启动的话可以这样载入app程序,当然编译app的时候要加入-g调试选项。 
      •  
      • *重新运行调试的程序: 
      • (gdb) run 
      • 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和> )和shell通配符(*、?、[、])在内。 
      • 参考资料:一、百度百科
      • 二、vaqeteart的博客—常用gdb代码大全

     

    遇到的问题

    一:一开始按q!无法退出vimtutor

    解决方法:通过询问同学,了解到需要打:才能退出

    二:在文件夹中可以搜索到add.c文件,但是通过gcc编译却无法打开。

    还未找到解决方法,准备询问同学或翻阅书本

  • 相关阅读:
    简单介绍三层架构
    Java字符串常量池是什么?为什么要有这种常量池?
    java中String、StringBuffer和StringBuilder的区别(简单介绍)
    java中equals以及==的用法(简单介绍)
    关于java中Exception异常
    职场沟通,别光靠嘴
    小目标 | DAX高级实践-Power BI与Excel联合应用
    本号讯 | 微软和百度携手推进全球自动驾驶技术; 微软发布新一代可垂直可水平滚动的Arc鼠标
    你有一枚私人同声传译员待领取
    有了这套物联网节水平台,他决定回去继续管理农场
  • 原文地址:https://www.cnblogs.com/5320zhq/p/4842841.html
Copyright © 2011-2022 走看看