20145313张雪纯《信息安全系统设计基础》第2周学习总结
20145313《信息安全系统设计基础》第2周学习总结
vim学习笔记##
- 命令格式∶
[number] command object或者command [number] object- 其中
number代表命令执行的次数、command代表命令,比如d代表删除、object代表操作对象,比如w代表单字/单词,$代表到行末等等。
- 其中
ESC键回到正常(Normal)模式。- 移动光标,
h、j、k、l键分别表示← ↓ ↑ →。 - vim表示进入编辑器,
:q! <回车>为不保存改动退出,:wq <回车>为保存改动再退出。 - 正常(Normal)模式下(以下不再特别说明)
x键删除光标所在位置的字符。 i键插入文本。- 输入
∶dw从当前光标删除至单字/单词末尾, - 输入
∶d$从当前光标删除至当前行末尾 - 输入
∶dd删除整行 - 输入
∶u(小写的u)撤消以前的操作 - 输入
∶U(大写的U)撤消在一行中所做的改动 - 输入
∶CTRL-R撤消以前的撤消命令,恢复以前的操作结果。 - 输入小写字母
p,重新置入已经删除的文本内容。如果最后一次删除的是一个整行,那么该行将置于当前光标所在行的下一行。 - 输入小写的
r和要替换掉原位置字符的新字符,替换光标所在位置的字符。 - 更改类命令可改变指定的对象,从当前光标所在位置直到对象的末尾。比如输入
cw可以替换当前光标到单词的末尾的内容;输入c$可以替换当前光标到行末的内容。 Ctrl-g用于显示当前光标所在位置和文件状态信息。Shift-G用于将光标跳转至文件最后一行。先敲入一个行号然后按Shift-G则是将光标移动至该行号代表的行。- 输入
/然后紧随一个字符串是则是在当前所编辑的文档中向后查找该字符串。 - 输入问号
?然后紧随一个字符串是则是在当前所编辑的文档中向前查找该字符串。完成一次查找之后按n键则是重复上一次的命令,可在同一方向上查找下一个字符串所在;或者按Shift-N向相反方向查找下该字符串所在。 - 如果光标当前位置是括号
(、)、[、]、{、},按%可以将光标移动到配对的括号上。 - 在一行内替换头一个字符串
old为新的字符串new,输入:s/old/new - 在一行内替换所有的字符串
old为新的字符串new,输入:s/old/new/g - 在两行内替换所有的字符串
old为新的字符串new,输入:#,#s/old/new/g - 在文件内替换所有的字符串
old为新的字符串new,输入:%s/old/new/g - 进行全文替换时询问用户确认每个替换需添加
c选项,输入:%s/old/new/gc :!command用于执行一个外部命令command。:!dir用于显示当前目录的内容。:!rm FILENAME用于删除名为 FILENAME 的文件。:w FILENAME可将当前 VIM 中正在编辑的文件保存到名为FILENAME 的文件中。:#,#w FILENAME可将当前编辑文件第 # 行至第 # 行的内容保存到文件FILENAME 中。:r FILENAME可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面。- 输入小写的
o可以在光标下方打开新的一行并将光标置于新开的行首,进入插入模式。 - 输入大写的
O可以在光标上方打开新的一行并将光标置于新开的行首,进入插入模式。 - 输入小写的
a可以在光标所在位置之后插入文本。 - 输入大写的
A可以在光标所在行的行末之后插入文本。 - 输入大写的
R将进入替换模式,直至按<ESC>键退出替换模式而进入正常模式。 - 输入
:set xxx可以设置 xxx 选项。 - 启动vim帮助系统的三种方法:
- 按下
<HELP>键 (如果键盘上有的话) - 按下
<F1>键 (如果键盘上有的话) - 输入
:help <回车>
- 按下
- 输入
:q <回车>可以关闭帮助窗口。 - 提供一个正确的参数给
:help命令,可以找到关于该主题的帮助。如:help w <回车>、:help c_<T <回车>、:help insert-index <回车>、:help user-manual <回车>。 - 为了启动更多功能,需要创建一个vimrc文件。
- 开始编辑vimrc文件,这取决于您所使用的操作系统∶
:edit ~/.vimrc 这是Unix系统所使用的命令
:edit $VIM/_vimrc 这是Windows系统所使用的命令 - 接着导入vimrc范例文件∶
:read $VIMRUNTIME/vimrc_example.vim - 保存文件,命令为∶
:write
- 开始编辑vimrc文件,这取决于您所使用的操作系统∶
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 - 前三步,GCC的参数连起来是“ESc”,相应输入的文件的后缀是“iso”
![]()

gdb学习笔记##
gdb programm(启动GDB)b设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)run开始运行程序bt打印函数调用堆栈p查看变量值c从当前断点继续运行到下一个断点n单步运行s单步运行quit退出GDBdisplay跟踪变量值的改变until跳出循环finish跳出函数help帮助
![]()
![]()
makefile
- makefile带来的好处就是——“自动化编译”,一但写好,只需要一个make命令,整个工程完全编译,极大的提高了软件的开发效率。make是一个命令工具,是一个及时makefile中命令的工具程序。make工具最主要也是最基本的功能就是根据makefile文件中描述的源程序至今的相互关系来完成自动编译、维护多个源文件工程。而makefile文件需要按某种语法进行编写,文件中需要说明如何编译各个源文件并链接生成可执行文件,要求定义源文件之间的依赖关系。
练习##




(makefile例子使用的是另一实验中的代码。)
学习中遇到的问题及解决方法##
-
gdb调试显示“没有符号表被读取。请使用 "file" 命令。”
-
解决:原因是生成的二进制可执行文件没有使用-g选项。gcc中-g选项是为了获得有关调试信息,要用gdb进行调试,必须使用
gcc -g example.c -o example生成二进制可执行文件。
![]()
-
但对于这个问题仍有疑问,我之前用
gcc –E hello.c –o hello.igcc –S hello.i –o hello.sgcc –c hello.s –o hello.ogcc hello.o –o hello也已经生成了可执行文件hello,为什么不可以?
![]()
-
-
:wq保存退出显示没有文件名- 解决:新建文件保存时需要先输入
:w <文件名>设置文件名,再:wq保存退出
![]()
![]()
- 解决:新建文件保存时需要先输入
-
make命令显示“遗漏分隔符。停止。”
* 解决:gcc...前不应是空格,应该是Tab键,修改后即可。
![]()
![]()
![]()
家庭作业
-
7.7 在double x前加上static,把x定义为局部变量,
-
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小时 | |
| 第一周 | 200/200 | 1/1 | 20/20 | |
| 第二周 | 300/500 | 1/2 | 18/38 | |
| 第三周 | 500/1000 | 1/3 | 30/68 |












浙公网安备 33010602011771号