博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20145206 《信息安全系统设计基础》第2周学习总结
阅读量:5256 次
发布时间:2019-06-14

本文共 3067 字,大约阅读时间需要 10 分钟。

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

教材学习内容总结

·源程序实际上就是一个由值0和1组成的位(bit)序列,8个位被组织成一组,称为字节。每个字节表示程序中某个文本字符。

·在Unix系统上,从源文件到目标文件的转化是由编译器驱动程序完成的:
unix> gcc -o hello hello.cGCC编译器驱动程序读取源程序文件hello.c,并把它翻译成一个可执行目标文件hello,翻译过程分为四个阶段:

·将系统中的存储设备划分成层次结构--CPU寄存器在顶部,接着是多层的硬件高速缓存存储器、DRAM主存和磁盘存储器。

·操作系统内核是应用程序和硬件之间的媒介。它提供三个基本的抽象:1)文件是对I/O设备的抽象;2)虚拟存储器是对主存和磁盘的抽象;3)进程是对处理器、主存和I/O设备的抽象。
·从特殊系统的角度来看,网络就是一种I/O设备。

实验楼学习内容

·实验二 Linux下C语言编程基础

1、vim

877170-20160924121953418-322671220.png

877170-20160924122209934-2030074645.png

2、gcc

能够编译用C、C++和Object C等语言编写的程序。GCC编译代码的过程如下:

877170-20160924122801309-585974978.png

把编译过程分成四步,以编译hello.c生成可执行文件hello为例,如下图:

877170-20160924122841481-681189938.png

·预处理: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

3、gdb

GDB最基本的命令有:
·gdb programm(启动GDB)
·b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
·run 开始运行程序
·bt 打印函数调用堆栈
·p 查看变量值
·c 从当前断点继续运行到下一个断点
·n 单步运行
·s 单步运行
·quit 退出GDB
应该掌握的调试命令有:
·display 跟踪变量值的改变
·until 跳出循环
·finish 跳出函数
·help 帮助

4、makefile

Makefile带来的好处就是——“自动化编译”,一但写好,只需要一个 make 命令,整个工程便可以完全编译,极大的提高了软件的开发效率(特别是对于那些项目较大、文件较多的工程)。
实践了一下实验楼上的实验:
·gcc -c code.c -o code.o
·gcc -c prog.c -o prog.o
·gcc prog.o code.o -o test

5、静态库和共享库

静态链接库的生成:ar rcsv libxxx.a xxx.o

静态库的使用: gcc -o main main.c -L. -lxxx 注意-L -l 的含义

共享库的生成 gcc -fPIC -c xxx.c

gcc -shared -o libxxx.so xxx.o

共享库的使用:gcc -o main main.c -L. -lxxx

静态库、动态库(共享库)解决了不想给别人xxx.c时还要别人用xxx.c的功能的好办法。

·vim编辑器

首先安装好vim

877170-20160925140708691-2007677373.png

1、Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个"d"的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的"j"键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。

2、在插入模式中,可以按ESC键回到普通模式。
3、vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc或者Ctrl+[(这在vim课程环境中不管用)即可进入普通模式。普通模式中按i(插入)或a(附加)键都可以进入插入模式,普通模式中按:进入命令行模式。命令行模式中输入wq回车后保存并退出vim。

877170-20160925113319494-1437697142.png

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

按键 说明
h 左
l 右(小写L)
j 下
k 上
w 移动到下一个单词
b 移动到上一个单词
4、在普通模式下使用下面的键将进入插入模式,并可以从相应的位置开始输入
命令 说明
i 在当前光标处进行编辑
I 在行首插入
A 在行末插入
a 在光标后插入编辑
o 在当前行后插入一个新行
O 在当前行前插入一个新行
cw 替换从光标所在位置后到一个单词结尾的字符

877170-20160925113923895-1656411951.png

注意每次要先回到普通模式才能切换成以不同的方式进入插入模式

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

877170-20160925162434302-1528598157.png

在实验楼中输入vim helloworld.c新建程序,然后输入i进入插入模式,输入一段helloworld程序,esc退出插入模式进入普通模式,再:wq退出并保存

如果下次再想找到这个程序,直接输入vim 文件名就行了。

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

命令 说明
:q! 强制退出,不保存
:q 退出
:wq! 强制保存并退出
:w 另存为
:saveas 文件路径 另存为
:x 保存并退出
:wq 保存并退出

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

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

命令 说明

x 删除游标所在的字符
X 删除游标所在前一个字符
Delete 同x
dd 删除整行
dw 删除一个单词(不适用中文)
d$或D 删除至行尾
d^ 删除至行首
dG 删除到文档结尾处
d1G 删至文档首部

2dd表示一次删除2行

8、在普通模式下.(小数点)表示重复上一次的命令操作,普通模式下输入x,删除第一个字符,输入.(小数点)会再次删除一个字符,除此之外也可以重复dd的删除操作

9、进入普通模式输入N,N表示重复后面的次数
例如:输入10x,删除10个连续字符

练习

1.练习vimtutuor至少一遍。

877170-20160924152125324-454754767.png

877170-20160924155613543-723893766.png

2 利用gcc编译hello.c程序:

877170-20160925141141554-649389103.png

877170-20160925141929305-739867376.png

3 git代码:

在百度上搜索怎样用ubuntu git代码,自己根据教程做出的过程如下:

877170-20160925145311713-1125536568.png

877170-20160925145339997-1126648131.png

代码上传结果:

877170-20160925160622616-1227891199.png

学习中的问题和解决过程

在自己的电脑上直接输入vimtutor不能直接打开编辑器,需要安装,但在安装过程中出现如下问题:

877170-20160924155613543-723893766.png

在百度上搜索找到解决办法:输入ps aux,找到-apt对应的数字4503,然后输入sudo kill 4503,成功安装!

877170-20160924161441496-980175223.png

877170-20160924161456637-1715535246.png

本周代码托管截图

877170-20160925160622616-1227891199.png

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

本周学会了一些基本用法,知道了怎样应用vim编译器在终端里编程序,了解了普通模式、命令行模式以及插入模式的切换方法,编译并运行成功程序,但实验楼中的知识点较多,不能完全掌握,还需要更多地练习来巩固。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/2 20/30 学习了一些Linux核心命令
第二周 250/250 1/3 20/50 学习了vim编辑器基础

参考资料

  • ...

转载于:https://www.cnblogs.com/ZouJR/p/5903465.html

你可能感兴趣的文章
关闭Chrome浏览器的自动更新和升级提示
查看>>
移动、尺寸改变
查看>>
poj2255Tree Recovery【二叉树重构】
查看>>
tcpcopy 流量复制工具
查看>>
vue和react的区别
查看>>
第十一次作业
查看>>
负载均衡策略
查看>>
微信智能开放平台
查看>>
ArcGIS Engine 中的绘制与编辑
查看>>
Oracle--通配符、Escape转义字符、模糊查询语句
查看>>
子网划分讲解及练习(一)
查看>>
c# 文件笔记
查看>>
第一页 - 工具的使用(webstorm)
查看>>
Linux 进程资源用量监控和按用户设置进程限制
查看>>
IE浏览器整页截屏程序(二)
查看>>
D3.js 之 d3-shap 简介(转)
查看>>
制作满天星空
查看>>
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>
adidas crazylight 2018 performance analysis review
查看>>