20145322 《信息安全系统设计基础》期中总结
WEEK1
linux命令格式:
command [options](选项) [arguments](参数) []表示可选
ls命令:
ls或ls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略。我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a” 就是选项,改变了显示的内容,如下图所示:
man命令:
此命令为帮助命令,man是manul的缩写,如下图:
此外还有个man -k,即搜索引擎,如图:
因为后面跟的数字里面:
1是普通的Linux命令
2是系统调用,操作系统的提供的服务接口
3是库函数, C语言中的函数
5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6是给游戏留的,由各个游戏自己定义
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8是系统管理用的命令,这些命令只能由root使用,如ifconfig
所以
就是我们要找的C函数中的sort
其他关于man的命令:
-k:根据关键字搜索联机帮助,是一种模糊搜索
-f:关键字精确搜索,等价于whatis指令,显示给定关键字的简短描述信息
-P:指定内容时使用分页程序
-M:指定man手册搜索的路径
man 2 ls:会显示第二区段中的printf命令man页面。
如果搭配grep命令会更好用,可更准确找到目标qsort:
说到grep,就不能漏了它。
grep
grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
命令格式:grep [options]
主要参数:
-c:只输出匹配行的计数
-I:不区分大小写(只适用于单字符)
-h:查询多文件时不显示文件名
-l:查询多文件时只输出包含匹配字符的文件名
-n:显示匹配行及行号
-s:不显示不存在或无匹配文本的错误信息
-v:显示不包含匹配文本的所有行
find
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
命令格式:find pathname -options [-print -exec -ok ...]
参数:
pathname:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
print:find命令将匹配的文件输出到标准输出
exec:find命令对匹配的文件执行该参数所给出的shell命令,相应命令的形式为'command' { } ;,注意{ }和;之间的空格
ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
常用选项:
-name:按照文件名查找文件
-perm:按照文件权限来查找文件
mtime -n +n:按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前
-type:查找某一类型的文件,诸如:b - 块设备文件,d - 目录,c - 字符设备文件,p - 管道文件,l - 符号链接文件,f - 普通文件
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比档案 file 更晚被读取过的档案
-atime n : 在过去 n 天过读取过的档案
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比档案 file 更新的档案
-ctime n : 在过去 n 天过修改过的档案
-empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写
-name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写
-size n : 档案大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 档案类型是 c 的档案。(一块 = 512字节)
查找大于1M的文件
查找过去5个小时内修改的文件
WEEK2
vim编辑器的教学:
在终端中输入vimtutor
vim其实就是一种文本编辑器,区别于记事本等的特点为便于使用键盘操作,键盘操作的基础是vi的几个模式:
三种常用模式:
普通模式(Normal mode):在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。在普通模式中,进入插入模式比较普通的方式是按a(append/追加)键或者i(insert/插入)键。
插入模式(Insert mode):在插入模式中,可以按ESC键回到普通模式。
命令行模式(Command line mode):在命令行模式中,执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
三种不常用模式:
可视模式(Visual mode):命令多与字母v有关,移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。
选择模式(Select mode):这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
Ex模式(Ex mode):这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。
以下为编译运行hello.c文件为例:
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"设置了观察点,观察变量的变化情况
四种断点:
函数断点:b 函数名 条件表达式
行断点:b 行数或函数名 条件表达式
条件断点:b 行数或函数名 if表达式
临时断点:tbreak 行数或函数名 条件表达式
如下图:
WEEK3
http://www.cnblogs.com/HZW20145322/p/5930337.html
WEEK5
http://www.cnblogs.com/HZW20145322/p/5958651.html
http://www.cnblogs.com/HZW20145322/p/5967973.html
WEEK6
http://www.cnblogs.com/HZW20145322/p/5991372.html
WEEK7
http://www.cnblogs.com/HZW20145322/p/6014388.html
书本上的知识又复习了一遍,错题还没看完。
收获
说实话这门课踏踏实实的学习之后,发现其实并不难,包括考试以及知识点,只要肯学,愿意花时间去看,无聊的时候不是看手机而是多看会儿书都可以积累,有所进步。
这一次的知识总复习使我脑袋里的知识点框架总结了一遍,也把之前学的忘了的找了回来,没有停滞不前。
不足
说真的,真正学习是从不及格开始,但是我发现这种不及格迫使我去认真学习,无意间养成按时学习的习惯,这是我很高兴的地方,也许就是压力带来动力。
课程建议和意见
我觉得对于像我这种一开始不肯学的以后可以在找老师的时候老师多提问书上知识,或者让我们总结,给一种压力,也是一种学习动力。
代码托管截图
这周我的vmware.vmx文件不见了,我的所有东西都重新弄了一遍,包括git···。
前七周的代码托管
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 1/1 | 13/20 | |
第二周 | 100/200 | 1/2 | 15/38 | |
第三周 | 100/300 | 1/3 | 20/60 | |
第五周 | 70/370 | 2/5 | 30/90 | |
第六周 | 200/570 | 2/7 | 40/90 | |
第七周 | 0/570 | 2/9 | 30/120 | |
第八周 | 0/570 | 2/9 | 50/170 |