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

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

教材学习内容总结

  • 了解Linux体系结构

    从大体上来说linux体系结构分为两大块:

    • 用户空间:用户空间又包含了,用户的应用程序,c库
    • 内核空间:内核空间包括,系统调用,内核,以及与平台架构相关代码

    通过上网查阅其他相关资料linux体系结构分成用户空间和内核空间的原因:

    • 现代cpu通常都实现了不同的工作模式。
    • linuxcpu的角度出发,为了保护内核的安全,把系统分成了两个部分。
    • 用户空间和内核空间是程序执行的两种不同状态,我们可以通过“系统调用”和“硬件中断”来完成用户控件到内核空间的转移。
  • Linux学习路径

    作为初学者来说应该循序渐进的学习Linux知识

    1.linux初级知识:linux系统安装、linux图形化界面使用、linux常用命令。

    2.linux中级知识:linux用户和文件系统、linux软件安装配置、linux网络管理、linux系统维护、linux shell编程初步。

    3.linux高级知识:有关linux服务器领域和linux程序开发

    4.linux内核研究和操纵系统开发。

  • Linux命令

  • 首先需要掌握高效使用linux命令行的命令:

    ctrl+alt+t :打开终端

    ctrl+shift+t:新建标签页

    alt+n:切换到第n个标签页

    tab:补全命令行(某些情况是得到帮助)

    上下键盘:可以恢复到之前输入过的命令行

    ctrl:中断运行

  • Linux 命令

     注意命令格式 `command [options] [arguments] `第一个为选项,第二个为参数,其中`选项(options)`不同决定了命令的显示结果不同,`参数(arguments)`是指命令的作用对象。
    
  • man 命令

     是`manul`的缩写
    
     可以`man man`查看`man`的帮助。
    

    在用虚拟机的命令行内尝试验证了man的命令。经过尝试发现`man 1 printf` 和 `man printf` 的结果是一样的。

    也查看了man 3 printf 命令行

    **在查看完man的时候用`q`可以退出到命令行界面。**

    ` man -k +搜索文件`可以更加快捷方便的检索出结果。

      这里有一篇关于man命令行的用法,推荐给大家[http://blog.csdn.net/losophy/article/details/7961958](http://blog.csdn.net/losophy/article/details/7961958 "man命令行")
  • cheat 命令

     cheat是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。
    
     注意在使用cheat的时候需要先事先安装`python`和`pip`
    
  • find 命令

      这个可以类似于windows系统下的查找。如果知道了某个文件的文件名,而不知道这个文件放到哪个文件夹,甚至是层层套嵌的文件夹里。举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录下,甚至在系统的某个地方也不知道,则这是可以使用如下命令:
    
      `find / -name httpd.conf `
    
      在`find` 后加`-name `相当于告诉系统按照文件名查找,最加入目标文件就可以成功查找。
    
      **注意:如果输入以上查找命令后系统并没有显示出结果,那么不是系统没有执行命令而可能是你的系统中没有安装Apache服务器,这时只要你安装了Apache Web服务器,然后再使用,命令就能找到这个配置文件了。**
    
      在查找过程中如果想要中断查找用`ctrl+c`中断查找。
    
      还有用其他方法查找
    
      比如根据部分文件名查找:`find /etc -name '*srm*' `这个命令表明了Linux系统将在**/etc整个目录**中查找所有的包含有srm这3个字母的文件。如果知道srm是文件开头名的话省略srm前的`*`,如find/etc -name 'srm*' ,这样的话例如absrmy的文件可以通过第一个检索出来,但是第二个命令行就无法检索出来。
    
      还有通过文件特征查询法、混合查询法等,这里我找到一篇博客,关于find命令的用法,推荐大家学习[http://blog.csdn.net/ydfok/article/details/1486451](http://blog.csdn.net/ydfok/article/details/1486451 "find命令使用方法")
    
      注意还有用`locate`也可以查找,`locate+文件名`可以查询到,用`locate`查询会比`find`命令行快,**注意:`locate`需要一个数据库**,这个数据库由每天的例行工作`crontab`程序来建立。如果更新数据库的话用` sudo update`跟新数据库,这样即使新建立的文件也可以用locate查询出来。
    
  • grep 命令

      也是起到全文检索,可以在文件中寻找,比如利用`grep -n main *c`比如可以查找mian在哪个c文件中。**注意:grep要支持正则表达式**
    
  • whereis 命令

      whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
    

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

  • linux架构中的shell

    在对于linux系统架构的时候对于sehll壳的理解存在问题,从架构图中可以看出来是应用层和系统调用层中间的一层,和库函数同一层。但是对其具体的工作存在问题。

    shell壳子具体的实现功能是如何实现的?为什么会定义在应用层和系统调用层中间呢?

    通过查阅其他资料解决了这一问题。Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并将其送入内核去执行。

    实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

  • linux命令的格式

    对于最初的linux命令 command options arguements在理解上有些许问题。

    通过操作练习例子明白了,is -a .其中is对应格式中的command-a对应格式中的options.对应格式中的arguements。这样的话就可以清楚的理解了。is .is 就是等价的命令,二者这个命令省去了选项,而.为一个参数也可以省略,所以二者相同。但is -a .is .就不相同,也证明了选项不同决定了显示结果的不同。

  • find 和 grep的不同

    最开始不太懂findgrep的区别既然都是查找,到底具体区别在哪里。

    通过百度相关知识,得到了结果。

    linux中的find等同与win中的搜索文件。
    find是在磁盘/分区中找到文件,可以配type可以配size time等,通过文件名或文件大小或访问时间找到指定文件。find命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

    linux中的grep等同与win中的findstr命令。可以在一个txt文本中截取到有特定关键字的行,并显示出来。grep也可以通过关键字,在一个文件夹下查找多个有这些关键字的文件,并生成结果。能使用正则表达式搜索文本,使用权限是所有用户。

    小结:grep是查找匹配条件的行,find是搜索匹配条件的文件。

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

按照计划初步完成了实验楼的内容课程《linux入门基础》和《深入理解计算机系统》,还有部分正在进行学习和巩固学习

部分在自己的电脑的虚拟机上使用的,还有部分是在实验楼里完成的

以下是部分的实验截图

  • ls

  • find

  • grep -n

  • locate

    其中locate的先查询我自己学号命名的文件,显示结果为空查询不到,用touch+XXX创建新的文件,之后再次使用locate的命令行查询,结果依然为空,证明了locate是使用数据库来查询数据,之后使用sudo updatedb更新数据库,之后再次使用locate命令行就可以查询到结果。注意:自己的虚拟机上使用sudo updatedb会有权限不够,可能是没有权限

此时可以创建账户并授予权限

  • 新建用户

    root@ubuntu:~# adduser hadoop
    root@ubuntu:~# passwd hadoop #为hadoop用户设置密码
    
  • 为hadoop用户添加sudo权限

     root@ubuntu:~# sudo gedit /etc/sudoers
    

    把root那行复制后改成hadoop,hadoop就有了sudo权限,需要sudo密码则为ALL,不需要则NOPASSWD:ALL。

     root      ALL=(ALL)       NOPASSWD:ALL
     hadoop    ALL=(ALL:ALL)   ALL
    

  • man


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

这是linux安装完毕后正式入门学习的第一周,要掌握的命令很多,所以我在教材学习内容总结部分写了大部分容易混淆的命令和用法,没有过多的纠结课程学习的其他内容,因为这些在实验楼中查看文档就可以轻松的看到。

有一些指令,比如apt-get,在学习过程中就会频繁的使用到,这样使得我对这些命令的掌握比其他的更深刻,但一些不常用的命令的掌握程度就不会很高,就需要多加练习。

学习进度条

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

参考资料

原文地址:https://www.cnblogs.com/20145335hh/p/5882771.html