20144303《信息安全系统设计基础》期中总结
复习Linux经常使用命令
man:linux
- 在Linux环境中,若是你遇到困难,可使用man命令,它是Manual page的缩写。
- man命令一般与管道命令结合使用:
如:man -k k1 | grep k2 | grep 2git
这表示搜索同时含有k1和k2,且属于系统调用。vim
最后的数字意味着帮助手册中的区段,man手册共有8个区段,最经常使用的是123,含义以下:安全
- Linux
- 系统调用
- c语言
输入man man 查看man的使用手册:函数

输入man -k printf查看printf的用法:学习

输入man 3 printf 查看C语言中printf的用法:设计

cheat:3d
用man来查看帮助和选项,里面的描述太长,没法短期得到想要的信息。使用cheat能够更快的学习到如何使用一个命令名。blog
用法:cheat+命令名递归
grep:
查找宏 STDIN_FILENO 的值的命令是:grep -nr XXX /usr/include
该语句能够用来查找关键字,全文搜索,而且能够直接查找文件内的内容。其中:
好比:查找宏 STDOUT_FILENO 的值的命令是(grep -nr STDOUT_FILENO /usr/include)
find:
find命令用来在指定目录下查找文件。
- -name filename:查找名为filename的文件

- -mtime -n +n :按文件更改时间来查找文件,-n指n天之内,+n指n天之前

- -atime -n +n:按文件访问时间来查GIN: 0px">
- -ctime -n +n :按文件建立时间来查找文件,-n指n天之内,+n指n天之前
- -newer f1 !f2 :查更改时间比f1新但比f2旧的文件
- -type b/d/c/p/l/f :查是块设备、目录、字符设备、管道、符号连接、普通文件
- -size n[c] :查长度为n块[或n字节]的文件
- -size n[c] :查长度为n块[或n字节]的文件
- -depth :使查找在进入子目录前先行查找完本目录
cd:
- 进入上一级目录:cd ..
- 进入你的“home”目录:cd ~ 或者 cd /home/ <你的用户名>
- 使用 pwd 获取当前路径:pwd
新建文件:
- 使用 touch 命令建立空白文件
- 使用 mkdir(make directories)命令能够建立一个空目录,也可同时指定建立目录的权限属性
- 使用 -p 参数,同时建立父目录
- 使用cp(copy)命令复制一个文件或目录到指定目录。将以前建立的"test"文件复制
- 要成功复制目录须要加上-r或者-R参数,
- 使用rm(remove files or directories)命令,删除一个文件或目录:
- 使用mv(move or rename files)命令,移动文件(剪切)。将文件"file1"移动到"Documents"目录mv 源目录文件 目的目录
vim:
三种模式的切换:
- 命名行模式中vim +文件名进入vim普通模式
- 普通模式中按i或a键均可以进入插入模式
- 在插入模式中是使用esc键能够退出到普通模式
- 普通模式中输入:wq回车后保存并退出vim

上、下、左、右方向键能够达到相应效果,字母h、j、k、l也能够在插入模式中使光标进行移动。
gcc:
编译并运行一个简单的hello.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
- 运行:./hello
gdb:
进入gdb:
- gcc -g xxx.c -o xxx
- gdb xxx
查看源码:
- (gdb) l:进行行号提示
- (gdb) b n:在第n行设置断点
- (gdb) r:运行代码,运行至断点处
- (gdb) n:单步运行
- (gdb) c:使程序继续往下运行,直到再次遇到断点或程序结束
- (gdb) q:退出GDB
- (gdb) watch n:在"n"设置了观察点,观察变量的变化状况
- gdb中使用命令(break main)设置main函数断点。
- gdb中使用命令(until)能够跳出循环语句。
- gdb中next和step均可以单步跟踪,根据自顶向下原则应该优先选用next
- GDB中以16进制形式打印%eax中内容的命令是(print /x $eax)
makefile:
功能 :识别文件代码是否更新,减小编译工做量
makefile文件的编写规则
格式为:
- 目标体:依赖文件
- [tab键]各目标体运行命令
- 目标体:由make建立,一般是目标文件或可执行文件
- 依赖文件:建立目标体所依赖的文件
- 运行命令:建立每一个目标体时须要的运行命令,必须以tab键开头。
- 使用make的格式:make 目标体
makefile变量的定义:
- 递归展开方式:在引用该变量时进行替换(不能用于引用本身的状况),缺点:不能在变量后追加内容。
- 格式定义:VAR = var
- 非递归展开方式:在定义处展开,并只展开一次。优势:消除变量的嵌套引用。
- 格式定义:VAR := var
- make中变量的使用格式: $(变量名)
- 变量名的命名:不包括“:”、“#”、“=”以及结尾空格的任何字符串;变量名大小写不敏感。
- 变量分类:用户自定义变量、预约义变量、自动变量及环境变量。
本身的收获
经过八周的学习,掌握了linux的一些基本命令和操做。在本学期的开始,因为思想上的放松致使了身体上的懒惰,不少学习内容没有学到位,有不少知识也只是粗略的了解,致使在第六周的时候加入了老师的“待及格队伍”。但也正是从那个时候开始,改变了学习态度,可以认真的自学书上的知识,开始本身动手实践、发现问题、解决问题。包括基本的linux安装、git安装使用、gcc、vim都是受到“刺激”以后动手学习的。以后,掌握了学习这门课的正确方法,学习也变得轻松愉快了许多,天然而然的也就再也不以为写博客是一种累赘,也真正的学到了一些东西。感谢老师能让咱们早点看到本身在学习上的缺陷和漏洞,感知到“不及格”的危险,让咱们从“不肯意学”到“被赶着学”,最后作到“享受学习的过程”。
本身的不足
在学习时遇到问题,我老是想着去问别人如何解决,老是想着这样能尽快把问题解决完,不能作到先本身想办法解决。在接下来的学习中要尽可能改掉这个缺点,遇到问题先本身多想一想。还有就是这周残留下来的问题,可能下周学习新的内容时就会忘掉,致使有不少遗留的问题没能及时解决。打算之后把每周遇到的问题先所有总结起来,而后先本身解决,解决一个删去一个,而后再询问老师同窗,没能解决的加到下周的学习任务中。另外,接下来应该把学习提早到周一就开始,不能到周末才急急忙忙的想着学习。
学习进度条
目标 |
5000行 |
30篇 |
400小时 |
|
第一周 |
0/0 |
1/1 |
20/20 |
|
第二周 |
300/300 |
1/2 |
20/40 |
|
第三周 |
300/600 |
1/3 |
20/60 |
|
第五周 |
200/800 |
2/5 |
20/80 |
|
第六周 |
100/900 |
2/7 |
20/80 |
|
第七周 |
160/1060 |
1/8 |
20/100 |
|
第八周 |
0/1060 |
2/9 |
20/120 |