您的位置:首页 > 其它

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

2016-09-25 13:00 267 查看

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

教材学习内容总结

vi的基本操作

vim 文件名:打开当前目录下相应的文件(如果不存在会自动新建)

光标移动:

h-←,j-↓,k-↑,l-→,方向键也可以控制相应的光标移动方向;w-移动到下一个单词,b-移动到上一个单词。

[[ 转到上一个位于第一列的"{";]] 转到下一个位于第一列的"{";{ 转到上一个空行;} 转到下一个空行

插入模式:(不同模式之间需要先esc退出后才能切换)

i 在当前光标处进行编辑

I 在行首插入

A 在行末插入

a 在光标后插入编辑

o 在当前行后插入一个新行

O 在当前行前插入一个新行

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

保存和退出vim:

w 保存文档

:q! 强制退出,不保存

:q 退出

:wq! 强制保存并退出

:w <文件路径> 另存为

:saveas 文件路径 另存为

:x 保存并退出

:wq 保存并退出

删除文本

x 删除游标所在的字符

X 删除游标所在前一个字符

Delete 同x

dd 删除整行

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

d$或D 删除至行尾

d^ 删除至行首

dG 删除到文档结尾处

d1G删至文档首部

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 programm(启动GDB)

b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)

run 开始运行程序

bt 打印函数调用堆栈

p 查看变量值

c 从当前断点继续运行到下一个断点

n 单步运行

s 单步运行

quit 退出GDB



静态库和共享库

静态库制作(以实验为例)

gcc -c add.c sub.c mul.c div.c

ar rcvs libmymath.a add.o sub.o mul.o div.o

gcc main.c -o main -L. -lmymath (or gcc main.c ./libmymath.a -o main)

共享库制作(以实验为例)

gcc -fPIC -c add.c sub.c mul.c div.c

gcc -shared -o libmymath.so add.o sub.o mul.o div.o

gcc -o main main.c -L. -lmymath

libmymath.so 要拷贝到/lib or /usr/lib



makefile

以实验为例

gcc -c code.c -o code.o

gcc -c prog.c -o prog.o

gcc prog.o code.o -o test

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

问题一:敲入:wq 退出保存时,出现 E212:无法打开并写入文件 的错误提示。



这是由于在该目录下当前用户没有写权限导致。

解决方案:在不需要root权限的文件夹中建立文件

或保存文件时用 : w ! sudo tee %(tee 用于读取输入文件,同时保存;%表示当前编辑文件 )

问题二:不能成功编译

如下错误:



源代码没有加stdio.h头文件

问题三:未定义引用



暂时合并到一个c文件中,但正确的解决方式应该不是这样

课后作业中的问题和解决过程

7.8

答:

A.main.1,main.2;

B.UNKNOWN;

C.ERROR.

7.10

答:

A.gcc p.o libx.a p.o

B.gcc p.o libx.a liby.a libx.a

C.gcc p.o liby.a libx.a liby.a libz.a

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

代码托管截图

代码托管网址



学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行30篇400小时
第一周0/01/220/20学会了虚拟机安装和Ubuntu的基本操作
第二周56/561/320/40学会了Ubuntu终端下的C语言编写

参考资料

2016-2017-1 《信息安全系统设计基础》教学进程

无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用)解决方案

解决Vbox里的Linux虚拟机上网问题

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

教材导读

因为权限无法写入文件解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: