2017-2018-1 20155305 《信息安全系统设计基础》第1周学习总结

2017-2018-1 20155305 《信息安全系统设计基础》第1周学习总结

教材学习内容总结

vi的基本操作

  • 对Vim的基本介绍

  • vim的模式

1、基本模式

    普通模式(常用)
    插入模式(常用)
    可视模式
    选择模式
    命令行模式(常用)

2、常用模式的切换:vim启动后进入普通模式,若处于插入模式或者命令行模式时按EscCtrl+[(这在vim课程环境中不管用)即可返回普通模式。普通模式按i(插入)a(附加)键可以进入插入模式,命令行模式中输入wq回车后保存并退出vim。
3、进入vim: vim后面加上打开的已存在的文件名或者新建文件的文件名。 vim 文件名vim

4、退出与保存:

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

    普通模式下输入Shift + zz即可保存退出vim
  • 建立vim文件并进入

      ```vim <文件名><回车> ```  新建文件
      :e 1.txt    打开新文件1.txt
      :ls     可以列出以前编辑过的文档
      :f      显示正在编辑的文件名
      :f 2.txt  改变正在编辑的文件名字为2.txt
    
  • 文档加密:输入vim -x file1

  • 查看文件内容
    输入od -tc hello.c

gcc编译器

  • GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++等语言编写的程序。

  • 编译

      预处理:gcc –E hello.c –o hello.i;   gcc –E调用预处理器
      编 译:gcc –S hello.i –o hello.s;    gcc –S调用编译器
      汇 编:gcc –c hello.s –o hello.o;    gcc -c 调用汇编器
      链 接:gcc hello.o –o hello ;    gcc -o 调用链接器
    
  • 使用gcc编译一个c程序
    1、打开的gvim环境中输入i进入编辑模式,输入代码,保存为hello.c文件

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

  • 打开窗口
    crtl+shift+T打开三个窗口(vi gcc gdb)

gdb调试技术

  • gdb主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,必须要把调试信息加到可执行文件中。如:

      gcc -g hello.c -o hello
    
  • 老师课上提醒使用GCC编译时一定要加“g”参数。

  • GDB基本命令:

      gdb m(启动GDB)
      b 设断点(4种断点:函数断点、条件断点、临时断点,行断点)
      run (r)开始运行程序
      info b
      n (next)单步运行
      s (step) 单步运行
      c(countinu)从当前断点继续运行到下一个断点
    
      display 跟踪变量值的改变
      quit 退出GDB
     
      until 结束循环
      finish 结束函数
    
  • 使用gdb调试c程序

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

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

  • 问题1:编译出现错误,提示对“main”未定义的引用

  • 问题1解决方案:后来查阅百度资料,知道是自己的不小心代码main写错了,后来经过改正成功编译运行

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

结对及互评

点评模板:

  • 博客中值得学习的或问题:

    • 学习态度认真
  • 代码中值得学习的或问题:

    • 编写代码严谨
  • 提出问题

  • 第一章
    什么是计算机系统?它包括什么?研究它有什么意义?

  • 第二章
    计算机中的数据和平常我们生活中的数据有什么异同?

  • 第三章
    为什么要学习汇编?

  • 第四章
    ISA是什么?

  • 第五章
    如何优化程序性能?

  • 第六章
    存储系统层次结构分为什么?

  • 第七章
    链接是如何进行的?

  • 第八章
    常见异常怎么解决?

  • 第九章
    虚拟存储器如何工作?它有什么特性?

  • 第十章
    Unix I/O是什么?

  • 第十一章
    网络编程步骤?

  • 第十二章
    并发编程是什么?

本周结对学习情况

- [20155311](博客链接)
- 结对照片
- 结对学习内容
    -vim内容
    -gcc内容
    -gdb内容

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 10/ 10 1/1 10/10

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

参考:软件工程软件的估计为什么这么难软件工程 估计方法

  • 计划学习时间:15小时

  • 实际学习时间:10小时

  • 改进情况:学期初没有好好准备学习工作,且由于校庆一周内很繁忙,没有认真学习课程知识。以后一定会努力赶上进度认真学习。

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料

原文地址:https://www.cnblogs.com/20155305ql/p/7583514.html