20145315 《信息安全系统设计基础》期中总结
20145315 《信息安全系统设计基础》期中总结
Linux 文件的基本操作
-
touch 命令创建空白文件:先 cd ~ 切换回用户,然后touch test.
使用 mkdir(make directories)命令可以创建一个空目录;使用 -p 参数,同时创建父目录(如果不存在该父目录)。 -
使用cp(copy)命令复制一个文件或目录到指定目录;复制目录需要加上-r或者-R参数,表示递归复制。
-
使用rm(remove files or directories)命令,删除一个文件或目录;-f参数强制删除;要删除一个目录,也需要加上-r或-R参数.
-
使用mv(move or rename files)命令,移动文件
-
重命名 :mv 旧的文件名 新的文件名
-
使用cat,tac和nl命令查看文件
-
more和less命令分页查看文件,使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出。
-
grep -nr xxx /usr/include 在/usr/include里面查找XXX
-
man -k XXX 寻找XXX的相关问题
gcc
-
GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。
-
预处理: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的参数连起来是“ESc”,相应输入的文件的后缀是“iso”
-
$gcc hello.c -o hello
-
-o选项可以省略很多中间步骤一次性输出可执行文件
gdb
- gdb主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数即可。
- gdb programm(启动GDB)
- b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
- run 开始运行程序
- bt 打印函数调用堆栈
- p 查看变量值
- c 从当前断点继续运行到下一个断点
- n 单步运行
- s 单步运行
- quit 退出GDB
- GDB的n(next)命令让GDB执行下一行,然后暂停。 s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,所以优先使用n
- display 跟踪变量值的改变
- until 跳出循环
- finish 跳出函数
- help 帮助
VIM编辑器
-
大写“K”可以用来查找函数的帮助信息:查看 man page,命令模式下,将光标放在函数名上,按"K"可以直接察看 man page。
几个设置 -
:set nu 显示行号
-
:set ai 自动缩行
-
:set ts=4 设置一个 TAB 键等于几个空格
移动光标 -
[[ 转到上一个位于第一列的"{"
-
]] 转到下一个位于第一列的"{"
-
{ 转到上一个空行
-
} 转到下一个空行
-
gd 转到当前光标所指的局部变量的定义
自己的收获
通过对《深入理解计算机系统》的学习,我了解了一个程序代码在机器内部是怎么运行的,计算机是怎么看懂高级程序语言并执行的一些细节。这些知识让我看到了程序更深层次的内容,对编写高效率的程序有帮助。
自己的不足
C语言基础不够好,写的代码太少。