2014539 《信息安全系统设计基础》第2周学习总结
教材学习内容总结
vim编辑器
常用的三种模式:
- 普通模式(Normal mode)
- 插入模式(Insert mode)
- 命令行模式(Command line mode)
三种常用模式的切换
vim启动进入普通模式,处于插入模式或命令行模式时只需要按Esc
或者Ctrl+[
(这在vim课程环境中不管用)即可进入普通模式。普通模式中按i
(插入)或a
(附加)键都可以进入插入模式,普通模式中按:
进入命令行模式。命令行模式中输入wq
回车后保存并退出vim。
一些常用指令
-
游标移动(在普通模式下,按Esc进入普通模式):
按键 | 说明 |
---|---|
h | 左 |
l | 右 |
j | 下 |
k | 上 |
w | 移动到下一个单词 |
b | 移动到上一个单词 |
- 进入插入模式(在普通模式下进入):
命令 | 说明 |
---|---|
i | 在当前光标处进行编辑 |
I | 在行首插入 |
A | 在行末插入 |
a | 在光标后插入编辑 |
o | 在当前行后插入一个新行 |
O | 在当前行前插入一个新行 |
cw | 替换从光标所在位置后到一个单词结尾的字符 |
-
命令行模式下保存文档:从普通模式输入
:
进入命令行模式,输入w
回车,保存文档。输入:w 文件名
可以将文档另存为其他文件名或存到其它路径下。 - 退出vim(常用):
- 命令行模式下退出vim:从普通模式输入
:
进入命令行模式,输入wq
回车,保存并退出编辑。 - 普通模式下退出vim:普通模式下输入shift+zz即可保存退出vim
- 命令行模式下退出vim:从普通模式输入
安装完成的vim:
键入vimtutor命令可以进行一个vim练习程序:
一些vim常用命令的练习:
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 [文件名:]行号或函数名 <条件表达式>
- 函数:
GCC、GDB的使用(以helloworld为例):
首先建立一个名为linuxC的文件夹:
建立一个文本文档:
在vim里撰写C语言代码:
用cat指令查看写好的代码:
检查gdb是否安装好:
尝试使用gdb命令并运行程序:
Makefile:
- 一个工程中的源文件不计其数,按其类型、功能、模块分别放在若干个目录中。
makefile
定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至进行更复杂的功能操作。其带来的好处就是——“自动化编译”,一但写好,只需要一个make
命令,整个工程完全编译,极大的提高了软件的开发效率。 - makefile文件编写规则:
- 目标文件:由make创建,通常是目标文件或可执行文件
- 依赖文件:创建目标体所依赖的文件
- 运行命令:创建每个目标体时需要的运行命令,必须以tab键开头
- 格式为:
目标文件:依赖文件列表
[tab键]各目标体运行命令
(注意不是空格) - 使用make的格式:make 目标文件
教材学习中的问题和解决过程
安装vim时遇到了如下问题:
查了百度百科后找到了解决办法:
小技巧
刚安装的VIM,可能界面并不是十分友好,这就需要我们去更改vim的配置文件,我们可以按我们的需求去修改它。
在命令行下,输入命令:
sudo vim /etc/vim/vimrc
必须加上sudo,否则你是没有权限编辑vimrc的。
然后找到这几行语句:
syntax on
意思是语法高亮,如果您的被注释掉了,请“让它出来”。
除此之外还有一些可以让vim界面看起来更舒服方便的指令:
在vim的最后一行输入他们:
set nu // 在左侧行号
set tabstop //tab 长度设置为 4
set nobackup //覆盖文件时不备份
set cursorline //突出显示当前行
set ruler //在右下角显示光标位置的状态行
set autoindent //自动缩进
本周代码托管截图
其他
这周末因为天气原因没有外出,所以一心一意的在宿舍学linux,第一次基本上把老师要求的学习任务都过了一遍,学到东西的感觉很好,连博客都有的写了,继续努力!
不过vim编辑器指令太多太繁琐,其实感觉有些快捷键是挺多余的,不过存在即合理,可能在今后不断的练习中才能发觉它们的方便之处吧。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/2 | 25/45 | 学习了几个Linux核心命令 |
第二周 | 55/55 | 2/4 | 27/72 |