20145318 《信息安全系统设计基础》第2周学习总结
教材学习内容总结
Linux系统下的开发环境
-
Teiminal终端(Bash环境)
-
vim编辑器
-
git托管工具
-
gcc,gdb,makefile等编译调试工具
vi的基本操作
-
vim可以仅仅通过键盘在任意模式之中进行切换,这就使得Vim可以不用进行菜单或者鼠标操作,并且最小化组合键的操作,对文字录入员或者程序员可以大大增强速度和效率。vim有6种基本模式(常用的是普通模式、插入模式和命令行模式):
-
普通模式(Normal mode):在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。在普通模式中,进入插入模式比较普通的方式是按a(append/追加)键或者i(insert/插入)键。
-
插入模式(Insert mode):在插入模式中,可以按ESC键回到普通模式。
-
命令行模式(Command line mode):在命令行模式中,执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
Ex模式(Ex mode):这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。 -
三种常用模式的切换:
vim启动进入普通模式;
处于插入模式或命令行模式时只需要按Esc或者Ctrl+[即可进入普通模式;
普通模式中按i(插入)或a(附加)键都可以进入插入模式;
普通模式中按:进入命令行模式;
命令行模式中输入wq回车后保存并退出vim。
-
游标移动(在普通模式下,按Esc进入普通模式):
-
进入插入模式(在普通模式下进入):
-
退出vim(常用):
命令行模式下退出vim:从普通模式输入:进入命令行模式,输入wq回车,保存并退出编辑。
普通模式下退出vim:普通模式下输入Shift+zz即可保存退出vim
-
普通模式下删除文本:
-
替换和撤销(Undo)命令(只针对普通模式):
-
快速缩进(缩进操作均在普通模式下有效):
使用命令进行快速调整缩进操作:通模式下输入15G
,跳转到15行;普通模式下输入>>
整行将向右缩进(使用,用于格式化代码超爽);普通模式下输入<<
整行向左回退;普通模式下输入:进入命令行模式下对shiftwidth
值进行设置可以控制缩进和回退的字符数。
shiftwidth
命令:shiftwidth
命令是指>>
命令产生的缩进(可以简写成sw
) 普通模式下输入:
进入命令行模式;对shiftwidth
值进行设置可以控制缩进和回退的字符数。 获取目前的设定值:set shiftwidth?
;设置缩进为10个字符:set shiftwidth=10
。
- 调整文本位置:
命令行模式下输入:ce
(center)命令使本行内容居中
命令行模式下输入:ri
(right)命令使本行文本靠右
命令行模式下输入:le
(left)命令使本行内容靠左
- 查找:
普通模式下输入/
向下查找,输入?
向上查找,n
表示继续查找,N
反向查找。
普通模式下输入*
寻找游标所在处的单词
普通模式下输入#
同上,但*
是向前(上)找,#
则是向后(下)找
普通模式下输入g*
同*
,但部分符合该单词即可
普通模式下输入g#
同#
,但部分符合该单词即可
GCC
gcc 编译程序的流程(参数是ESc
,文件的后缀是iso
):
预处理:gcc –E hello.c –o hello.i
;gcc –E
调用cpp,产生预处理过的C原始程序
编译: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,产生可执行文件
运行:./hello
GDB
-
程序的运行状态有“运行”、“暂停”、“停止“三种
-
主要基本操作
查看文件:
l
设置断点:在
b
后加入相对应的行号。例b 6
查看断点情况:设置完断点后键入
info b
,在gdb中可以设置多个断点。bt
查询调用函数的情况运行代码:默认从首行开始运行代码,键入
r
;r+行号
:从该行号开始运行查看变量值:
p
变量。例:p n
单步运行:
n
或s
,s
会进入函数,n
不会进入函数恢复程序运行:
c
帮助信息:
h
-
断点的设置
函数:
b 文件名.c:函数名
行:
b 行数
条件:
b 行数 if 表达式
(例如:b 9 if == 12
)临时:
tb [文件名:]行号或函数名 <条件表达式>
Makefile
-
Makefile的一般写法
test(目标文件): prog.o code.o(依赖文件列表) tab(至少一个tab的位置) gcc prog.o code.o -o test(命令)
-
使用带宏的 Makefile
Makefile还可以定义和使用宏(也称做变量),从而使其更加自动化,更加灵活,在Makefile中定义宏的格式为:macroname = macrotext
使用宏的格式为:$(macroname)
本周代码托管截图
其他(感悟、思考等,可选)
认真学习,希望逐渐找到状态。