20145237 《信息安全系统设计基础》第1周学习总结

20145237 《信息安全系统设计基础》第1周学习总结

教材学习内容总结

一、

本周我通过老师提供的视频资源学习核心的Linux命令
1.find
直接使用find,将显示当前目录下所有的文件。

-atime 1 指令用于查找24小时内访问过的文件,参数1表示1乘以24.
-amin 20 表示指定分钟内访问过的文件。
-ctime 1 表示指定24小时内修改过的文件。
-cmin 60 表示指定分钟内修改过的文件。
find -name xxx 按名称搜索 新版本的find命令中也可以直接输入find xxx

-type 按类型搜索 例如 find -type d 是搜索目录

2.locate
通过文件名查找文件。

3.cheat
老师你给的视频资源中没有这一条指令。我百度之后了解到cheat命令简单来说,就是告诉你一个命令如何使用。它没有提供其他额外多余的信息,只通过使用实例告诉你一个命令如何使用。cheat命令依赖于python和pip,因此,在安装cheat命令之前,你需要在机器上安装python和pip。(Linux默认是安装有python的。)我在试验楼中完成了对cheat的使用。

4.grep
这个命令用于搜索指定的字符串。

其中包含很多的参数,有的参数很常用也很重要,例如 -f -file,-c -count 统计所有符合条件的行数,-r 递归搜索,-v 反向查询。

5.which

用于查找命令。范围比whereis小,只查找可执行的二进制文件。
可以使用参数-a 来显示所有的文件。
6.whereis

用于查找二进制文件,源码文件以及手册文件。在path路径中查找。
-m 单独搜索和显示手册文件。
-b 只显示和查找二进制文件
-s 显示源码文件。

二、

Linux 系统简介
讲述了Linux的历史简介,重要人物以及它和Windows的不同。
基本概念及操作
包含实验楼环境介绍,常用 Shell 命令及快捷键,Linux 使用小技巧。
双击桌面上的Xface终端图标,打开终端,打开终端后会自动运行 Shell 程序,然后我们就可以输入命令让系统来执行。
使用Tab键来进行命令补全,当你忘记某个命令的全称时你可以只输入它的开头的一部分然后按下Tab键就可以得到提示或者帮助完成。
Ctrl+c键来强行终止当前程序:

其他一些常用快捷键:
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动

使用通配符

Shell 常用通配符:

  • 匹配 0 或多个字符
    ? 匹配任意一个字符
    [list] 匹配 list 中的任意单一字符
    [!list] 匹配 除list 中的任意单一字符以外的字符
    [c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
    {string1,string2,...} 匹配 sring1 或 string2 (或更多)其一字符串

在Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段

1 一般命令
2 系统调用
3 库函数,涵盖了C标准函数库
4 特殊文件(通常是/dev中的设备)和驱动程序
5 文件格式和约定
6 游戏和屏保
7 杂项
8 系统管理命令和守护进程
要查看相应区段的内容,就在 man 后面加上相应区段的数字即可
用户及文件权限管理

who 命令其它常用参数
-a 打印能打印的全部
-d 打印死掉的进程
-m 同am i,mom likes
-q 打印当前登录用户数及用户名
-u 打印当前登录用户登录信息
-r 打印运行等级

Linux 目录结构及文件基本操作
此节的课后练习很有意思 会出现一双眼睛。

环境变量及文件查找
变量:所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量。为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值、字符或者字符串等等数据类型。Shell 中的变量也基本如此,有不同类型(但不用专门指定类型名),可以参与运算,有作用域限定。变量的作用域即变量的有效范围(比如一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量一般。
环境变量:环境变量就是作用域比自定义变量要大,如Shell 的环境变量作用于自身和它的子进程。在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,处理创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。Shell 程序也作为一个进程运行在操作系统之上,而我们在 Shell中运行的大部分命令都将以 Shell 的子进程的方式运行。
搜索文件:与搜索相关的命令常用的有如下几个whereis,which,find,locate。


简单的文本处理
tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换。
col 命令可以将Tab换成对等数量的空格建,或反转这个操作。
join命令用于将两个文件中包含相同内容的那一行合并在一起。
paste命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。
数据流重定向
0 /dev/stdin 标准输入
1 /dev/stdout 标准输出
2 /dev/stderr 标准错误

正则表达式基础
这一节实验只是介绍grep,sed,awk这三个命令
基本语法:一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。
选择:|竖直分隔符表示选择,例如"boy|girl"可以匹配"boy"或者"girl"
数量限定:数量限定除了我们举例用的,还有+加号,?问号,.点号,如果在一个模式中不加数量限定符则表示出现一次且仅出现一次:
范围和优先级:()圆括号可以用来定义模式字符串的范围和优先级,这可以简单的理解为是否将括号内的模式串作为一个整体。
grep模式匹配命令:grep命令用于打印输出文本中匹配的模式串,它使用正则表达式作为模式匹配的条件。
\ 将下一个字符标记为一个特殊字符、或一个原义字符。例如,“n”匹配字符“n”。“\n”匹配一个换行符。序列“\”匹配“\”而“(”则匹配“(”。
^ 匹配输入字符串的开始位置。
$ 匹配输入字符串的结束位置。
{n} n是一个非负整数。匹配确定的n次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。
{n,} n是一个非负整数。至少匹配n次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o
”。
{n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。

  • 匹配前面的子表达式零次或多次。例如,zo能匹配“z”、“zo”以及“zoo”。等价于{0,}。
  • 匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
    ? 匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”中的“do”。?等价于{0,1}。
    ? 当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。
    . 匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“(.|\n)”的模式。
    (pattern) 匹配pattern并获取这一匹配的子字符串。该子字符串用于向后引用。要匹配圆括号字符,请使用“(”或“)”。
    x|y 匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。
    [xyz] 字符集合(character class)。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。其中特殊字符仅有反斜线\保持特殊含义,用于转义字符。其它特殊字符如星号、加号、各种括号等均作为普通字符。脱字符^如果出现在首位则表示负值字符集合;如果出现在字符串中间就仅作为普通字符。连字符 - 如果出现在字符串中间表示字符范围描述;如果如果出现在首位则仅作为普通字符。
    [^xyz] 排除型(negate)字符集合。匹配未列出的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。
    [a-z] 字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。

教材学习中的问题和解决过程

之前对命令的练习都是通过自己电脑上安装的虚拟机结合教学视频练习的,之后才知道实验楼也可以进行练习。
练习试验三时我的shiyanlou 用户没有赋予了 sudo 权限,之后仔细看了教程才学会。

posted on 2016-09-18 12:30  20145237  阅读(161)  评论(2编辑  收藏  举报