20145304 《信息安全系统设计基础》第二周学习总结
20145304 《信息安全系统设计基础》第二周学习总结
教材学习内容总结
vim
- 光标移动:h键左移,j键下移,k键上移,l键右移。
ESC
返回正常模式。:q!(回车)
丢弃改动后退出。x键
删除光标所在处文本。i键
文本插入,在光标前插入。A键
添加文本,光标该行随意放,在光标后添加,a
可以在光标所在位置之后插入。:wq(回车)
保存并退出。vim+文件名
启动vim编辑文件。操作符d+(数字)+动作w/e/$
分别表示从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符;从当前光标当前位置直到单词末尾,包括最后一行字符;从当前光标当前位置直到当前末尾。0
可移动光标到行首。dd
删除整行。u
撤销最后执行的命令,U
撤销对整行的修改,CTRL+R
撤销掉撤销命令。p
剪切,将文本内容置于光标之后。r+新字符
替换光标所在位置的字符,R
可替换多个。c+e/$
替换当前光标到单词末尾的内容;替换光标到行末的内容。CTRL+G
用于显示当前光标所在位置和文件状态信息。G
用于将光标跳转至文件最后一行,g
跳转至第一行,行号+G
跳转到该行。/或?
查找字符串。CTRL+O
跳转回较旧的位置,CTRL+I
较新的位置。%
括号匹配。s/旧内容/新内容
一行内替换头一个,s/旧内容/新内容/g
一行内所有;#,#s/旧内容/新内容/g
两行(#)内所有;%s/旧内容/新内容/g
文件内所有;%s/旧内容/新内容/gc
全文替换时询问用户确认。:!+外部命令
:w 文件名
保存到文件中。v 选中内容 :w 文件名
将指定内容存入文件夹。:r 文件名
将文件插入。:r !外部命令
读取外部命令的输出。o
光标下方打开新的一行,O
光标上方打开新的一行。e
光标移动到单词末尾。y
复制文本,p
粘贴。set+ic/is/hls
查找时忽略字母大小写,查找短语时显示部分匹配,高亮显示所有的匹配短语。- 选项前加no可关闭选项。
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 -c 文件名.c
ar rcsv libxxx.a xxx.o
。 -
静态库的使用:
gcc -o 文件名
文件名.c -L. -lxxx
,-L
在库文件的搜索路径列表中添加dir目录,l
在头文件的搜索路径列表中添加dir目录。
-
共享库的生成:
gcc -fPIC -c xxx.c
gcc -shared -o libxxx.so xxx.o
。 -
共享库的使用:
gcc -o main main.c -L. -lxxx
。
gdb
gdb programm
(启动GDB)。b+行号
设断点。info b
查看断点情况。run
开始运行程序。bt
打印函数调用堆栈。p
查看变量值。c
从当前断点继续运行到下一个断点。r+行号
从该行开始运行。n
单步运行。s
单步运行(进入函数)。quit
退出GDB。- 断点的设置:1.函数:b 文件名.c:函数名;2.行:b 行数;3.条件:b 行数 if 表达式;4.临时:tb [文件名:]行号或函数名 (条件表达式)
git
教材学习中的问题和解决过程
- 使用git时,出现如下图所示错误:
- 解决过程:阅读错误提示,结合之前在windows使用git的方法,发现git时缺少了pull这一步,执行git pull origin master后,再执行之后的步骤,成功git。
代码调试中的问题和解决过程
- 调试代码时,发现除法结果都为0,想打开div函数查看一下,但输入vim div.c后,出来新建文件。
- 解决过程:发现操作的文件夹不对,退回到之前建div.c处的目录下,再打开时,便可修改。
本周代码托管截图
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/ 0 | 2/2 | 10/10 | |
第二周 | 30/30 | 1/3 | 9 /19 | |
第三周 | 0 /30 | 0/3 | 0 /19 | |
第四周 | 0 /30 | 0/3 | 0 /19 |