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

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

教材学习内容总结

一:三种常用模式的切换

·vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc或者Ctrl+[(这在vim课程环境中不管用)即可进入普通模式。

·普通模式中按i(插入)或a(附加)键都可以进入插入模式,普通模式中按:进入命令行模式。

·命令行模式中输入wq回车后保存并退出vim。

二:进入vim

使用vim命令进入vim界面

·vim后面加上你要打开的已存在的文件名或者不存在(则作为新建文件)的文件名。 打开Xfce终端,输入 vim practice.txt
·进入命令行模式后输入:e 文件路径 同样可以打开相应文件。

游标移动

·在进入vim后,按下i键进入插入模式。输入文本信息:

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

h	左
l	右(小写L)
j	下
k	上
w	移动到下一个单词
b	移动到上一个单词

三、进入插入模式

进入插入模式

命令	说明
i	在当前光标处进行编辑
I	在行首插入
A	在行末插入
a	在光标后插入编辑
o	在当前行后插入一个新行
O	在当前行前插入一个新行
cw	替换从光标所在位置后到一个单词结尾的字符

四、保存文档

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

五、退出vim

1.命令行模式下退出vim

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

·其它几种退出方式:

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

2.普通模式下退出vim

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

六、删除文本

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

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

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

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

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

查看源文件可以用od 命令 : od -tc -tx1 hello.c

·Linux的可执行文件并没有像 Windows 那样有明显的.exe后缀名, 只需向其分配x(可执行)权限即可 sudo chmod u+x excutefile
·作为Linux程序员,我们可以让gcc在编译的任何阶段结束,以便检查或使用该阶段的输出(这个很重要)

GDB

查询用法:在 gdb 命令行界面,使用 (gdb) help command 可以查看命令的用法。

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

Makefile的使用

首先$ vim Makefile

test: prog.o code.o
        gcc prog.o code.o -o test
prog.o: prog.c code.h
        gcc -c prog.c -o prog.o
code.o: code.c code.h
        gcc -c code.c -o code.o
clean:
        rm -f *.o test

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

问题1:在学习实验楼关于Makefile的应用时,运行prog发现有错:

解决方法:原来是程序里多打了一个“)”,所以程序无法进行编译,改正程序以后就可以运行了:

问题2:运行实验楼的程序出现下面的错误:

解决方法:

问题3:运行main:时发现div.c的结果和预期不符:

解决方法:暂时不知道是什么问题,看了一下div.c 的程序代码是正确的,所以应该不是代码的问题,这个问题仍然在解决中………………

补充:除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
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)

除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?(4分)
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

代码托管中的问题和解决过程

问题1:公钥生成以后打开http://git.oschina.net/profile网页,标题栏不能为空:

解决过程1:标题栏可以随意输入。

问题2:连接失败:

解决方法2:参考了这两个博客20145212罗天晨20145215卢肖明:

问题3:代码推送失败:

解决过程3:

本周代码托管截图代码托管连接

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 4000行 20篇 400小时
第0周 0/0 1/1 5/5
第1周 0/0 1/2 10/15
第2周 300/300 1/3 15/30

参考资料

原文地址:https://www.cnblogs.com/20145223ymy/p/5905810.html