《信息安全系统设计基础》第2周总结
vimtutor练习
这周我在实验楼里对vimtutor进行了练习,对vimtutor有了初步的了解,掌握了一些在nomal模式里的操作方法
•移动光标:左移:h;右移:l;上移:k;下移:j;
•退出: :q!<回车> (这个操作会丢弃我们之前做的任何改动)
•删除:x(看起来就像是一个叉号)
•插入:按下i键,接着输入想要输入的字符,输入完毕后按Esc键回到正常模式
•添加:按下A键,添加字符,结束之后按Esc回到正常模式(不过这跟i键插入有什么区别?)
•行内跳转:
w 到下一个单词的开头
e 到下一个单词的结尾
b 到前一个单词的开头
ge 到前一个单词的结尾
0或^ 到行头
$ 到行尾
f<字母> 向后搜索<字母>并跳转到第一个匹配的位置
F<字母> 向前搜索<字母>并跳转到第一个匹配的位置
t<字母> 向后搜索<字母>并跳转到第一个匹配位置之前的一个字母
T<字母> 向前搜索<字母>并跳转到第一个匹配位置之后的一个字母
•定位:按下Ctrl g键显示当前行信息
跳转至文件最后一行:按下G键
跳转至文件第一行:按下gg键
跳转至文件某一行:输入行号 G键
回到之前位置:输入Ctrl o,输入Ctrl I跳转到较新位置
GCC
1.基本操作
•预处理: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
2.gcc编译流程:
linux 的可执行文件并没有像windows那样有明显的.exe后缀,只需要向其分配x(可执行)权限即可:sudo chmod u+x excutefile
3.使用gcc编译一个c程序
•打开的gvim环境中输入i进入编辑模式,输入代码,保存为hello.c文件
•在XfceTerminal打开后的界面中输入:gcc hello.c -o hello,编译成功,将会在当前目录生成一个可执行文件 hello
•继续输入:./hello 就会运行该程序编译成功后如果没有出现error会在当前目录生成一个可执行的hello的新文件,继续输入:./hello
便可以运行
GDB
1.基本命令
•gdb programm(启动GDB)
•b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
•run 开始运行程序
•bt 打印函数调用堆栈
•p 查看变量值
•c 从当前断点继续运行到下一个断点
•n 单步运行
•s 单步运行
•quit 退出GDB
•list:显示源文件中的代码
•break:用来设置断点
makefile
1.Makefile文件规则:
·一个目标,即make最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如‘clean’
·一个或多个依赖文件的列表,通常是编译目标文件所需要的其他文件。
之后的一系列命令,是make执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,
每个命令占一行,并以tab开头(初学者务必注意:是tab,而不是空格) 执行以上Makefile后就会自动化编译。
2.Makefile的一般写法:
·test(目标文件): prog.o code.o(依赖文件列表)
·tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)
3.Makefile还可以定义和使用宏(也称做变量):
·定义宏的格式为:macroname = macrotext
·使用宏的格式为:$(macroname)
遇到的问题以及解决办法
在跟着练习的时候觉得i键插入和A键插入是一样的,在第一节的总结里我知道了
i键是在光标前插入文本;
A键是在一行后添加文本;