zoukankan      html  css  js  c++  java
  • 20145218 《信息安全系统设计基础》第1周学习总结

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

    教材学习内容总结

    基本概念及操作

    • linux终端:Terminal(终端),在图形界面下为了实现在一个窗口中完成接受用户输入和显示输出,Linux 系统提供了一个叫做终端模拟器的程序(Terminal)

    • Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe。普通意义上的 Shell 就是可以接受用户输入命令的程序。

    • 命令行操作:

      快捷键:(1)使用Tab键来进行命令补全,当忘记某个命令的全称时可以只输入它的开头的一部分然后按下Tab键就可以得到提示或者帮助完成。

      (2)[Ctrl+c]当你在 Linux 命令行中无意输入了一个不知道的命令,或者错误的使用了一个命令,导致在终端里出现了无法预料的情况,使用Ctrl+c键来强行终止当前程序。
      
    • 其他一些常用的快捷键

    • 历史输入命令:使用键盘上的方向↑键,恢复之前输入的命令。有很多时候我们要输入的两条指令会有很长一段是相同的,根本不用再输入一遍。

    • 学会使用通配符:通配符是一种特殊语句,主要有星号(*)和问号(?),用来对对字符串进行模糊匹配(比如文件名,参数名)。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。

    • Shell 常用通配符:

    • 在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。Manual pages 是在 UNIX 或类 UNIX 操作系统在线软件文档的一种普遍的形式。 内容包括计算机程序(包括库和系统调用),正式的标准和惯例,甚至是抽象的概念。用户可以通过执行 man 命令调用手册页。

    • 作业:

    用户及文件权限管理

    Linux用户管理

    • 用户管理:Linux 是一个可以实现多用户登陆的操作系统,不同的用户可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的用户管理权限机制 ,不同用户不可以轻易地查看、修改彼此的文件。
    • 创建用户:在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。root 权限,系统权限的一种,与 SYSTEM 权限可以理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作一般登录系统时都是以普通账户的身份登录的,要创建用户需要 root 权限,这里要用sudo 这个命令。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo 用户组。
    • 在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,一个用户可以属于多个用户组。

    Linux文件权限

    • 查看文件权限:用ls 命令来列出并显示当前目录下的文件,当然这是在不带任何参数的情况下。
    • Linux里一切皆文件。
    • 文件大小:以 inode 结点大小为单位来表示的文件大小,可以给 ls 加上 -lh 参数来更直观的查看文件的大小。

    Linux目录结构及文件基本操作

    • Linux 的目录与 Windows 的目录的区别: 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘...)及分区的来实现文件管理,然后之下才是目录,目录就显得不是那么重要,除系统文件之外的用户文件放在任何地方任何目录也是没有多大关系。然而 UNIX/Linux是以目录为主的, Linux 是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统的骨架。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。
    • FHS 标准:FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等。第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。
    • 作业:

    Linux文件基本操作

    • 新建:使用 touch 命令创建空白文件,关于 touch 命令,其主要是来更改已有文件的时间戳的(比如,最近访问时间,最近修改时间),但其在不加任何参数的情况下,只指定一个文件名,则可以创建一个为指定文件名的空白文件(不会覆盖已有同名文件)。

      使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性

      使用 -p 参数,同时创建父目录(这在有时候安装软件,配置安装路径时非常有用):

    • 复制:使用cp(copy)命令复制一个文件或目录到指定目录。

      复制目录:要成功复制目录需要加上-r或者-R参数,表示递归复制。

    • 删除:使用rm(remove files or directories)命令,删除一个文件或目录:有时候你会遇到想要删除一些为只读权限的文件,直接使用rm删除会显示一个提示,直接删除文件,可以使用-f参数强制删除,跟复制目录一样,要删除一个目录,也需要加上-r或-R参数。

    • 移动文件与文件重命名:使用mv(move or rename files)命令,移动文件(剪切)。重命名文件:将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名。批量重命名:要实现批量重命名,mv 命令就有点力不从心了,我们可以使用一个看起来更专业的命令rename来实现。不过它是要用 perl 正则表达式来作为参数。

    环境变量及文件查找

    • 变量:所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量。为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值、字符或者字符串等等数据类型。Shell 中的变量也基本如此,有不同类型(但不用专门指定类型名),可以参与运算,有作用域限定。变量的作用域即变量的有效范围(比如一个函数中、一个源文件中或者全局范围),在该范围内只能有一个同名变量。一旦离开则该变量无效,如同不存在这个变量一般。

    • 环境变量:环境变量就是作用域比自定义变量要大,如Shell 的环境变量作用于自身和它的子进程。在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创建时,处理创建过程中明确指定的话,它将继承其父进程的绝大部分环境设置。Shell 程序也作为一个进程运行在操作系统之上,而我们在 Shell中运行的大部分命令都将以 Shell 的子进程的方式运行。

    • 搜索文件:与搜索相关的命令常用的有如下几个whereis,which,find,locate。

      whereis简单快速:这个搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询。whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。

      locate快而全:通过"/var/lib/mlocate/mlocate.db"数据库查找,不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行updatedb命令更新一次,所以有时候你刚添加的文件,它可能会找不到,需要手动执行一次updatedb命令(在我们的环境中必须先执行一次该命令)。它可以用来查找指定目录下的不同文件类型.

      which小而精:which本身是 Shell 内建的一个命令,我们通常使用which来确定是否安装了某个指定的软件,因为它只从PATH环境变量指定的路径中去搜索命令

      find精而细:find应该是这几个命令中最强大的了,它不但可以通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。

    • 作业:

    文件打包和解压缩

    • zip压缩打包程序:-r参数表示递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用du命令查看打包后文件的大小
    • 2.使用unzip命令解压缩zip文件:使用-O(英文字母,大写o)参数指定编码类型:unzip -O GBK 中文压缩文件.zip
    • 作业:

    文件系统操作与磁盘管理

    • 查看磁盘和目录的容量:使用 df 命令查看磁盘的容量,使用 du 命令查看目录的容量,不要混淆

    • 创建虚拟磁盘

      dd 命令:用于转换和复制文件,不过它的复制不同于cp。之前提到过关于 Linux 的很重要的一点,一切即文件,在 Linux 上,硬件的设备驱动(如硬盘)和特殊设备文件(如/dev/zero和/dev/random)都像普通文件一样,只要在各自的驱动程序中实现了对应的功能,dd 也可以读取自和/或写入到这些文件。这样,dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据或者空数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。

    • 使用 mount 命令挂载磁盘到目录树

      用户在 Linux/UNIX 的机器上打开一个文件以前,包含该文件的文件系统必须先进行挂载的动作,此时用户要对该文件系统执行 mount 的指令以进行挂载。通常是使用在 USB 或其他可移除存储设备上,而根目录则需要始终保持挂载的状态。又因为 Linux/UNIX 文件系统可以对应一个文件而不一定要是硬件设备,所以可以挂载一个包含文件系统的文件到目录树。

      那么我们如何挂载真正的磁盘到目录树呢,mount命令的一般格式如下:

      mount [options] [source] [directory]

    • 一些常用操作:

    mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]

    1. 查看硬盘分区表信息:$ sudo fdisk -l
    2. 进入磁盘分区模式:$ sudo fdisk virtual.img
    3. 卸载磁盘分区:$ sudo umount /dev/mapper/loop0p1
    • 作业:

    简单的文本处理

    文本处理命令

    1.tr 命令:用来删除一段文本信息中的某些文字。或者将其进行转换。tr [option]...SET1 [SET2]
    常用的选项有:

    • -d 删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配
    • -s 去除set1指定的在输入文本中连续并重复的字符

    2.col 命令:将Tab换成对等数量的空格建,或反转这个操作。col [option]常用的选项有:

    • -x 将Tab转换为空格
    • -h 将空格转换为Tab(默认选项)

    3.join命令:将两个文件中包含相同内容的那一行合并在一起。join [option]... file1 file2常用的选项有:

    • -t 指定分隔符,默认为空格
    • -i 忽略大小写的差异
    • -1 指明第一个文件要用哪个字段来对比,,默认对比第一个字段
    • -2 指明第二个文件要用哪个字段来对比,,默认对比第一个字段

    4.paste命令:在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。paste [option] file...常用的选项有:

    • -d 指定合并的分隔符,默认为Tab
    • -s 不合并到一行,每个文件为一行

    数据流重定向

    • Linux 默认提供了三个特殊设备,用于终端的显示和输出,分别为stdin(标准输入,对应于你在终端的输入),stdout(标准输出,对应于终端的输出),stderr(标准错误输出,对应于终端的输出)。
    • 作业:

    正则表达式

    正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

    • 基本语法:一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。
    • 选择:|竖直分隔符表示选择,例如"boy|girl"可以匹配"boy"或者"girl"
    • 数量限定:数量限定除了我们举例用的*,还有+加号,?问号,.点号,如果在一个模式中不加数量限定符则表示出现一次且仅出现一次:
    • 范围和优先级:()圆括号可以用来定义模式字符串的范围和优先级,这可以简单的理解为是否将括号内的模式串作为一个整体。
    • grep模式匹配命令:grep命令用于打印输出文本中匹配的模式串,它使用正则表达式作为模式匹配的条件。

    课后作业中的问题和解决过程

    1.编写脚本时报错:

    原因:语法错误,句末缺少分号。
    解决办法:重新建立文件,输入脚本。
    2.“用户及文件管理权限”练习中只会创建用户,但之后使用sudo创建文件,及设置成用户可读写就不知道该输入什么了。

    3.数据流重定向时编写程序失败(始终显示找不到文件,按照之前的方法保存退出后也没有解决)

    其他(感悟、思考等,可选)

    学习了那十二个试验之后感觉自己懂了很多基本知识,但是在做实验后面的练习的时候才发现自己之前认为学到的知识并不能活学活用,因为实验告诉了我们步骤,照着去做就可以,但是那些文字却并没有认真去看,而恰恰是那些比较枯燥的文字解释了我们那些步骤的原理。把实验做出来也并不代表就诊的掌握了,有时候读一些比较枯燥的基本概念还是很有必要的。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 1/2 20/20

    参考资料

  • 相关阅读:
    Resharper Visual studio中的插件
    MVC 中Simditor上传本地图片
    MVC编程模型
    数据库面试题
    SQL、索引
    存储过程详解
    EF的简单认识
    MVC是什么
    AOP面向切面编程
    SQL语句基本
  • 原文地址:https://www.cnblogs.com/senlinmilelu/p/5882516.html
Copyright © 2011-2022 走看看