20145301 《信息安全系统设计基础》第2周学习总结
教材学习内容总结
vim
- vim概述:
-
从vi演生出来的Vim具有多种模式,这种独特的设计容易使初学者产生混淆。几乎所有的编辑器都会有插入和执行命令两种模式,并且大多数的编辑器使用了与Vim截然不同的方式:命令目录(鼠标或者键盘驱动),组合键(通常通过control键(CTRL)和alt键(ALT)组成)或者鼠标输入。Vim和vi一样,仅仅通过键盘来在这些模式之中切换。这就使得Vim可以不用进行菜单或者鼠标操作,并且最小化组合键的操作。对文字录入员或者程序员可以大大增强速度和效率。
-
vim三种常用模式介绍:
-
普通模式(Normal mode) 在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。 Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个"d"的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的"j"键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够 灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。 在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。
-
插入模式(Insert mode) 在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。 在插入模式中,可以按ESC键回到普通模式。 命令行模式(Command line mode) 在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
-
三种模式的切换 vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc或者Ctrl+[(这在vim课程环境中不管用)即可进入普通模式。普通模式中按i(插入)或a(附加)键都可以进入插入模式,普通模式中按:进入命令行模式。命令行模式中输入wq回车后保存并退出vim。
- 操作截图:
-
命令行模式下退出vim
从普通模式输入
:
进入命令行模式,输入wq
回车,保存并退出编辑,以下为其它几种退出方式: -
命令 说明 :q!
强制退出,不保存 :q
退出 :wq!
强制保存并退出 :w <文件路径>
另存为 :saveas 文件路径
另存为 :x
保存并退出 :wq
保存并退出 -
普通模式下退出vim
普通模式下输入
Shift+zz
即可保存退出vim
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
b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时 断点)
run 开始运行程序
bt 打印函数调用堆栈
p 查看变量值
c 从当前断点继续运行到下一个断点
n 单步运行
s 单步运行
quit 退出GDB
断点的设置:
函数:b 文件名.c:函数名
行:b 行数
条件:b 行数 if 表达式(例如:b 9 if == 12)
临时:tb [文件名:]行号或函数名 <条件表达式>
Makefile 使用
- 一个工程中的源文件不计其数,按其类型、功能、模块分别放在若干个目录中。makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至进行更复杂的功能操作。其带来的好处就是——“自动化编译”,一但写好,只需要一个make命令,整个工程完全编译,极大的提高了软件的开发效率。
- makefile文件编写规则:
- 目标文件:由make创建,通常是目标文件或可执行文件
- 依赖文件:创建目标体所依赖的文件
- 运行命令:创建每个目标体时需要的运行命令,必须以tab键开头
- 格式为:目标文件:依赖文件列表 [tab键]各目标体运行命令
代码调试中的问题和解决过程
1.我在自己虚拟机上使用vim时,发现在插入模式中,使用“delete”并不能直接删除,而是移动光标并再次编辑,于是我上网搜vim的版本号,看是否为版本的原因,但没有找到想要的答案。
于是我便自己尝试,最后发现,此时移动的光标后的内容实则已经删除,用“esc”退出插入模式,光标后的内容自动消失。
另外,在在插入模式下“上下左右”方向移动键,却变成输入了“ABCD”,当想修改内容时就变得十分不方便,都需要现退回到普通模式下,再移动光标。而在普通模式下,移动光标又不单单可以使用“jkhl”来移动光标,还可以用“上下左右”...........不知道其他同学是否有遇到和我一样的问题?
本周代码托管截图
- git代码托管如图:
其他(感悟、思考等,可选)
本周的学习内容主要在vim、gcc和gdb上,vim对我们来说又是一个全新的领域,在vim上操作完全不需要鼠标,据说可以大大提高效率。初学还暂未体会到,还需要我们加强练习和了解。学习vim后本身有利对C语言、汇编等其他课程的深入了解和学习,并且让我们多了一种选择方式。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 4000行 | 24篇 | 400小时 | |
第一周 | 150/150 | 1/1 | 15/15 | 对Linux有了初步的认识 |
第二周 | 200/350 | 1/2 | 20/35 | vim的使用 |