首页 > 代码库 > 20145326蔡馨熤《信息安全系统设计基础》第1周学习总结
20145326蔡馨熤《信息安全系统设计基础》第1周学习总结
20145326蔡馨熤《信息安全系统设计基础》第1周学习总结
教材学习内容总结:
一、Linux基础
1.环境登录
无需密码自动登录,系统用户名shiyanlou
2.环境介绍
本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序:
LX终端(LXTerminal): Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令
GVim:非常好用的编辑器,最简单的用法可以参考课程Vim编辑器
3.环境使用
使用GVim编辑器输入实验所需的代码及文件,使用LX终端(LXTerminal)运行所需命令进行操作。
4.一门专业课程背后的三种知识:
元知识:这门课程思考问题框架是什么?遇到老问题,它会怎样分析?遇到新问题,它会怎样分析?
硬知识:这门课程的主要知识点是什么?适合用思维导图组织吗?
软知识:这门课程的哪些知识点需要哪些实践环节来强化理解和记忆?
5.Linux命令
如果使用GUI,Linux和Windows没有什么区别。Linux学习应用的一个特点是通过命令行进行使用。 登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着选项(options)或参数(arguments)。即Linux中命令格式为:选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同。参数是指命令的作用对象。
(1)man:man是manual的缩写,我们可以通过man man来查看man的帮助;常用选项:
-a:在所有的man帮助手册中搜索
-k:根据关键字搜索联机帮助,是一种模糊搜索
-f:关键字精确搜索,等价于whatis指令,显示给定关键字的简短描述信息
-P:指定内容时使用分页程序
-M:指定man手册搜索的路径
数字:指定从哪本man手册中搜索帮助 关键字:指定要搜索帮助的关键字 还可以与grep配合,进行管道操作。(2)find:用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
参数:
pathname:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录
print:find命令将匹配的文件输出到标准输出
exec:find命令对匹配的文件执行该参数所给出的shell命令,相应命令的形式为‘command‘ { } \;,注意{ }和\;之间的空格
ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
常用选项:
-name:按照文件名查找文件
-perm:按照文件权限来查找文件
mtime -n +n:按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前
-newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件 -type:查找某一类型的文件,诸如:b - 块设备文件,d - 目录,c - 字符设备文件,p - 管道文件,l - 符号链接文件,f - 普通文件
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找(3)locate:locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。 命令参数:
-e:将排除在寻找的范围之外
-1:如果是1则启动安全模式,在安全模式下,使用者不会看到权限无法看到的档案。这会使速度减慢,因为 locate必须至实际的档案系统中取得档案的权限资料
-f:将特定的档案系统排除在外,例如我们没有到必要把proc档案系统中的档案放在资料库中 -q:安静模式,不会显示任何错误讯息
-n:至多显示 n个输出 -r:使用正规运算式 做寻找的条件
-o:指定资料库存的名称
-d:指定资料库的路径
-h:显示辅助讯息
-V:显示程式的版本讯息(4)whereis:告诉你使用的命令工具装在什么地方,能定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
命令格式:whereis [-bmsu] [BMS 目录名 -f ] 文件名
主要参数:
-b:定位可执行文件
-m:定位帮助文件
-s:定位源代码文件
-u:搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件
-B:指定搜索可执行文件的路径
-M:指定搜索帮助文件的路径
-S:指定搜索源代码文件的路径
(5)which:会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。which是根据使用者所配置的PATH变量内的目录去搜寻可运行档的,所以,不同的PATH配置内容所找到的命令是不一样的。
命令格式:which 可执行文件名称
命令参数:
-n:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p:与-n参数相同,但此处的包括了文件的路径
-w:指定输出时栏位的宽度
-V:显示版本信息;
(6)grep:可以对文件全文检索,支持正则表达式,正则表达式也是一个重要的元知识;grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
命令格式:grep [options]
[options]主要参数:
-c:只输出匹配行的计数
-I:不区分大小写(只适用于单字符)
-h:查询多文件时不显示文件名
-l:查询多文件时只输出包含匹配字符的文件名
-n:显示匹配行及行号
-s:不显示不存在或无匹配文本的错误信息
-v:显示不包含匹配文本的所有行
正则表达式主要参数:
\:忽略正则表达式中特殊字符的原有含义
^:匹配正则表达式的开始行
$:匹配正则表达式的结束行
\<:从匹配正则表达式的行开始
>:到匹配正则表达式的行结束
[ ]:单个字符,如[A]即A符合要求
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求
。:所有的单个字符
*:有字符,长度可以为0查找宏:
(7)clear:清屏;
(8)ls:相当于list,打开一个文件夹;
(9)history:查看曾经使用的命令;
(10)cheat:man虽然很重要,但有些命令看了帮助还不会用,初学者需要例子,cheat就是这个身边的小抄。cheat 命令不是Linux自带的,需要自行安装。我在实验楼环境下操作的。
(11)apt-cache与apt-get:apt-cache可以在使用apt-get install安装一个程序时先找找软件源的库里有没有这个程序,有才可以安装。比如老师推荐了一个调试工具ddd,你可以用apt-cache search ddd查查有没有这个程序。
二、Linux的架构图:
三、快捷键 我们使用的Linux发行版是Ubuntu,使用Ubuntu有几个快捷键要掌握一下,可以提高使用命令行的效率
(1)CTRL+ALT+T: 打开终端,少用鼠标,高手都用键盘;
(2)CTRL+SHIFT+T:新建标签页,编程时有重要应用;
(3)ALT+数字N:终端中切换到第N个标签页;
(4)Tab:在终端中将命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成;
(5)上下键盘:切换命令历史,刚输入一个很长的命令,按上键就可以恢复;
(6)CTRL+C: 中断程序运行;
(7)Ctrl+D:键盘输入结束或退出终端
(8)Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行
(9)Ctrl+Z: 将当前程序放到后台运行,恢复到前台为命令fg
(10)Ctrl+A: 将光标移至输入行头,相当于Home键
(11)Ctrl+E: 将光标移至输入行末,相当于End键
(12)Ctrl+K: 删除从光标所在位置到行末
(13)Alt+Backspace: 向前删除一个单词
(14)Shift+PgUp: 将终端显示向上滚动
(15)Shift+PgDn: 将终端显示向下滚动教材学习中的问题和解决过程
1.使用apt-get install时显示权限不够,但在后来使用sudo后,问题解决。
2.利用闲暇时间,自行学习了如何在Linux下进行简单的编程。娄老师上课就讲了gcc+gdb+Vim的模式。Vim就是用来编写的东西,相当于一个txt文件,只不过vim是在命令行下编写。gcc是编译器,gdb是用来调试的,比如设置断点等(不过目前gdb还不是很会用)。
课后作业中的问题和解决过程
1.请在虚拟机中安装DDD软件(其他软件)?
2.请演示怎么判断DDD软件能不能安装?
要看apt-cache search DDD的时候,找不找得到,如果找不到,要从外部导入。
3.请查找系统中50M以上的文件?因为系统中没有满足此条件的文件,所以最开始没显示。我查找的是大于10k的文件。
4.请查找系统中两天前修改过的且小于5M的文件?
5.请问如何查找操作系统的信息?
可以用top,cat /etc/issue,或者uname6.请查找当前目录下所有*.c文件中哪个文件中包含main函数?
7.请建立一个目录,里面建立两个子文目录,如何一条命令删除三个目录?
8.如何把一个目录及子目录拷贝到自己的主目录中?
学习进度条
代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长 目标 5000行 30篇 400小时 第一周 0/0 1/1 12/12 学会了很多Linux命令
20145326蔡馨熤《信息安全系统设计基础》第1周学习总结