20145228 《信息安全系统设计基础》第二周学习总结

教材学习内容总结

VIM

一 vi的操作模式

vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。

在输入模式下,用户可输入文本资料。

在指令模式下,可进行删除、修改等各种编辑动作。

在输入模式下,按Esc键切换到指令模式下。

在指令模式下,按输入指令(i、a、o等)进入输入模式。

二 进入vi

$ vi filename
直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。
$ view filename
以只读方式打开文件filename

三 指令模式

3.1 进入输入模式

a 在当前游标之后输入

A 在当前行之末输入

i 在当前游标之前输入

I 在当前行之首输入

o 在当前行之下新增一行,并在新增行输入

O 在当前行之上新增一行,并在新增行输入

输入结束后,按Esc键退出输入模式。

3.2 游标移动

h 向左移动一个字元

l 向右移动一个字元

j 向下移动一个字元

k 向上移动一个字元

b 左移一个单词,至词首

w 右移一个单词,至词尾

0 移到当前行行首

$ 移到当前行行尾

  • 移至下一行的行首
  • 移至上一行的行首

H 移至视窗的第一行

M 移至视窗的中间一行

L 移至视窗的最后一行

G 移至该文件的最后一行

nG 移至该文档的第n行

n+ 下移n行

n- 上移n行

3.3 视窗移动

+ f 视窗下卷一页

+ b 视窗上卷一页

+ d 视窗下卷半页

+ u 视窗上卷半页

+ e 视窗下卷一行

+ y 视窗上卷一行

3.4 删除操作

x 删除游标所在字元

X 删除游标前一字元

dw 从游标当前位置开始向后删除一个单词

db 从游标当前位置开始向前删除一个单词

d0 从行首删除至当前游标位置

d$ 从游标当前位置删除至行尾

dd 删除游标所在行
D 同d$

3.5 修改操作

s 修改游标所在字元,修改完成后按Esc键结束

S 修改整行内容,修改完成后按Esc键结束

r 替换当前游标所在字元

R 进入替换状态,直至按Esc键结束

cw 修改一个单词(从游标位置至词尾)

cb 修改一个单词(从词首至游标位置)

cc 修改整行内容,完成后按Esc键结束,同S

c0 修改行首至游标位置的内容

c$ 修改游标位置至行尾的内容
游标所在字元大小写切换

3.6 指令重复

在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有:

nx 删除n个字元

ndd 删除n行

ns 修改n个字元

3.7 取消前一动作(Undo)

u 撤消上一指令的结果

3.8 查找字符串

/字符串 从当前游标向后查找该字符串

?字符串 从当前游标向前查找该字符串

n 从当前游标向后查找下一个字符串

N 从当前游标向前查找下一个字符串

3.9 查看编辑状况

+ g 显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改

四 保存与退出

:w 保存,但不退出

:wq 保存并退出

:x 同:wq

:q 退出,如果当前文件没有保存,禁止退出

:q! 不保存退出

:w file1 将内容保存至文件file1中,注意:此时编辑的仍为原文件

:w! file1 将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行

gcc

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

GDB

•gdb programm(启动GDB)

•b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)

•run 开始运行程序

•bt 打印函数调用堆栈

•p 查看变量值

•c 从当前断点继续运行到下一个断点

•n 单步运行

•s 单步运行

•quit 退出GDB

Makefile

文件编写规则:
•目标文件:由make创建,通常是目标文件或可执行文件

•依赖文件:创建目标体所依赖的文件

•运行命令:创建每个目标体时需要的运行命令,必须以tab键开头

•格式为:目标文件:依赖文件列表 [tab键]各目标体运行命令

•使用make的格式:make 目标文件

本周代码托管

感悟

这周主要任务在于gcc、gdb以及能提升编码速度的工具vim,这些也是学习LINUX的基础。能够灵活熟练地应用这些基本方法,我们学习Linux的效率将会飞速提高。这周还温习了上学期的git上传代码托管,发现在Linux上git和在Windows上git方法其实是一样的。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 4000行 25篇 350小时
第一周 0/ 0 2/2 20/30
第二周 100/100 1/3 20/50

参考资料

posted @ 2016-09-25 21:47  20145228江苒  阅读(213)  评论(5编辑  收藏  举报