2018-2019-1 20165237 《信息安全系统设计基础》第一周学习总结
知识要点
基本操作
- 游标移动(在普通模式下,按Esc进入普通模式)
| 按键 | 说明 |
|---|---|
| h | 左 |
| l | 右 |
| j | 下 |
| k | 上 |
| w | 移动到下一个单词 |
| b | 移动到上一个单词 |
- 进入插入模式(在普通模式下进入)
| 命令 | 说明 |
|---|---|
| i | 在当前光标处进行编辑 |
| I | 在行首插入 |
| A | 在行末插入 |
| a | 在光标后插入编辑 |
| o | 在当前行后插入一个新行 |
| O | 在当前行前插入一个新行 |
| cw | 替换从光标所在位置后到一个单词结尾的字符 |
-
命令行模式下保存文档
:从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w文件名可以将文档另存为其他文件名或存到其它路径下。 -
退出vim(常用)
- 命令行模式下退出vim:从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑。
- 普通模式下退出vim:普通模式下输入Shift+zz即可保存退出vim。
-
普通模式下删除文本
| 命令 | 说明 |
|---|---|
| x | 删除游标所在的字符 |
| x | 删除游标所在前一个字符 |
| Delete | 同x |
| dd | 删除整行 |
| dw | 删除一个单词(不适用中文) |
| d$或D | 删除至行尾 |
| d^ | 删除至行首 |
| dG | 删除到文档结尾处 |
| d1G | 删至文档首部 |
| ndd | 删除n行 |
- 替换和撤销(Undo)命令(只针对普通模式)
| 命令 | 说明 |
|---|---|
| r+<待替换字母> | 将游标所在字母替换为指定字母 |
| R | 连续替换,直到按下Esc |
| cc | 替换整行,即删除游标所在行,并进入插入模式 |
| cw | 替换一个单词,即删除一个单词,并进入插入模式 |
| C | 替换游标以后至行末 |
| ~ | 反转游标所在字母大小写 |
| u{n} | 撤销一次或n次操作 |
| U | 撤销当前行的所有修改 |
| Ctrl+r | redo,即撤销undo的操作 |
-
快速缩进(普通模式)
- 使用命令进行快速调整缩进操作:通模式下输入
15G,跳转到15行;普通模式下输入>>整行将向右缩进(使用,用于格式化代码超爽);普通模式下输入<<整行向左回退;普通模式下输入:进入命令行模式下对shiftwidth值进行设置可以控制缩进和回退的字符数。 shiftwidth命令:shiftwidth命令是指>>命令产生的缩进(可以简写成sw) 普通模式下输入:进入命令行模式;对shiftwidth值进行设置可以控制缩进和回退的字符数。 获取目前的设定值:set shiftwidth?;设置缩进为10个字符:set shiftwidth=10。
- 使用命令进行快速调整缩进操作:通模式下输入
-
调整文本位置
- 命令行模式下输入:
ce(center)命令使本行内容居中 - 命令行模式下输入:
ri(right)命令使本行文本靠右 - 命令行模式下输入:
le(left)命令使本行内容靠左
- 命令行模式下输入:
-
查找:
- 普通模式下输入
/向下查找,输入?向上查找,n表示继续查找,N反向查找 - 普通模式下输入
*寻找游标所在处的单词 - 普通模式下输入
#同上,但*是向前(上)找,#则是向后(下)找 - 普通模式下输入
g*同*,但部分符合该单词即可 - 普通模式下输入
g#同#,但部分符合该单词即可
- 普通模式下输入
No.1
要求:
- 每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号
- 用Vi输入图中代码,并用gcc编译通过
- 在Vi中使用K查找printf的帮助文档
- 提交vi编辑过程截图,要全屏,包含自己的学号信息
截图


No.2
要求:
- 用gcc 进行预处理,编译,汇编,链接vi输入的代码
- 生成的可执行文件中要有自己的学号
- 提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息
截图



No.3
要求:
- 用gcc -g编译vi输入的代码
- 在main函数中设置一个行断点
- 在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
- 提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
截图

No.4
要求:
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?
- 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
截图

No.5
要求:
- 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?
- 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
截图

No.6
要求:
-
写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.
-
提交Make过程截图,要全屏,包含自己的学号信息
截图

码云链接
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 5000行 | 20篇 | 400小时 | |
| 第一周 | 61/61 | 1/1 | 10/10 | 了解vim,gcc,gdb基本操作 |