zoukankan      html  css  js  c++  java
  • 《网络攻防实践》寒假作业

    前言

    这个作业属于那个课程 《网络攻防实践》
    这个作业的要求在哪里 《网络攻防实践》假期作业
    我在这个课程的目标是 学习并了解网络攻防的相关知识,能够进行独立的实际操作
    这个作业在哪个具体方面帮助我实现目标 该作业主要帮助我学习markdown的相关用法以及Linux的常用命令,为学习网络攻防实践课做好准备
    作业正文 作业一、作业二
    参考文献 https://www.cnblogs.com/math/p/se-tools-001.html、https://www.cnblogs.com/math/p/exceltk.html、https://www.cnblogs.com/Pandaman/p/markdown.html

    作业一

    (1)你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识?
    (2)作业要使用Markdown格式,Markdown入门参考(需掌握)。


    • 我本科是软件工程专业,学习过《计算机网络》课程,了解一些网络相关的基本知识。但所学习知识尚浅,仍需努力学习相关知识。

      攻击技术:网络扫描,网络监听,网络入侵,网络后门,网络隐身
      防御技术:安全操作系统和操作系统的安全配置,加密技术,防火墙技术,入侵检测,网络安全协议。


    作业二

    (1)学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统(也可以使用 VMWare安装虚拟机,安装方法自己百度)
    (2)通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法
    (3)参考上面的学习方法通过实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令,重点是3/4/5/6/7/8节。


    基于VMWare安装虚拟机Ubuntu

    Linux命令

    • 使用Ubuntu有几个快捷键要掌握一下,可以提高使用命令行的效率:

      CTRL+ALT+T:打开终端,天天使用终端,用鼠标打开太低效了;

      CTRL+SHIFT+T:新建标签页,编程时有重要应用;

      ALT+数字N:终端中切换到第N个标签页,编程时有重要应用;

      Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成;

      上下键盘:切换命令历史,刚输入一个很长的命令,按键就可以恢复;

      CTRL+C:中断程序运行。

      登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着选项(options)或参数(arguments)。即Linux中命令格式为:

      command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数
      

      其中选项(option)是调整命令执行行为的开关,选项不同决定了命令的显示结果不同,参数(arugment)是指命令的作用对象。

      如ls命令,lsls .是两条等价的命令,显示是当前目录的内容,这里“.”就是参数,表示当前目录,这个参数缺省可以省略。

      我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a” 就是选项,改变了显示的方式,如下图所示:

      以上简要说明了Linux命令以及选项和参数的区别,但具体Linux中哪条命令有哪些选项及参数,以及如何使用,需要我们靠经验积累或者查看Linux的帮助文档了。

    • man命令

      不论学习编程还是Linux命令,掌握帮助文档的使用都是很重要的,是举一反三的重要途径。

      man是manual的缩写,我们可以通过man man来查看man的帮助,如下图:

      帮助文档包含:

          1 Executable programs or shell commands(用户命令帮助) //普通的Linux命令
          2 System calls (系统调用帮助)  //系统调用,操作系统的提供的服务接口
          3 Library calls (库函数调用帮助)  //库函数,  C语言中的函数
          4 Special files (usually found in /dev)  //指文件的格式,比如passwd, 就会说明这个文件中各个字段给游戏留的,由各个游戏自己定义
          6 Games  //给游戏留的,由各个游戏自己定义
          7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)  //附件还有一些变量,比如向environ这种全局变量在这里就有说明
          8 System administration commands (usually only for root)  //系统管理用的命令,这些命令只能由root使用,如ifconfig 
           
      

      结合后面学习的grep 命令和管道,可以多关键字查找:

      man -k key1 | grep key2 | grep key3 | ...
      

      例如使用man -k sort | grep 3,可以更好的找到qsort,你可以试试。

      man -k 有个等价的命令apropos,大家可以学习一下。

      使用man -k找到命令后,可以用man -f cmd查看命令的基本功能。man -f等价于whatis.

    Linux基础入门

    1. Linux用户管理

       who   命令常用参数
           //-a    打印能打印的全部
           //-d    打印死掉的进程
           //-m    同am i,mom likes
           //-q    打印当前登录用户数及用户名
           //-u    打印当前登录用户登录信息
           //-r    打印运行等级
        sudo adduser ***           //创建用户
        sudo passwd ***            //设置密码
        su ***                     //切换用户
      
        groups ***                 //加入用户组
        sudo usermod -G sudo ***   //给sudo权限
        sudo deluser *** --remove-home        //删除用户及其目录
        cat /etc/group | grep -E "lilei"      //lilei:x:1000;group_name:password:GID:user_list
        Linux 下密码输入是不显示任何内容的
        退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d
      





    2. Linux文件权限

      ls -l                     //使用较长格式列出文件
      ls -Al                    //查看文件
      ls -dl <目录名>           //查看某一个目录的完整属性,而不是显示目录里面的文件属性:
      ls -AsSh                 //显示所有文件大小,并以普通人类能看懂的方式呈现:
      touch filename           //创建文件
      sudo chown dou**  filename                //变更文件所有者
      echo "echo "hello dou"" > filename      //加内容
      chmod  XXX filename                       //赋予文件权限,XXX分别是0-7的三个数字分别代表user和groups、others
                                                //1 2 4 三个数字分别代表x执行、w写和r读,加和为7
      sudo chmod 777 filename                   //给出了最大的权限
      



      adduseruseradd 的区别是什么?

      答:useradd 只创建用户,创建完了用 passwd lilei 去设置新用户的密码。adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

    3. Linux的目录结构

      cd ..             //进入上一级目录
      pwd               //获取当前路径
      cd /usr/local/bin               //绝对路径
      cd ../../usr/local/bin          //相对路径
      

    4. Linux文件的基本操作

      文件:
      touch filename                              // 新建文件
      目录:
      mkdir xxx                                  //新建xxx目录
                  //-p                           新建多级目录(mkdir -p father/son/grandson)
      cp xxx /home/shiyanlou                     //拷贝xxx文件夹到home/shiyanlou目录下
      rm  xxx                                    //删除xxx文件夹后加
                 //-f                            强制删除
                 //-r                            删除文件夹
      mv xxx /home/shiyanlou                     // 移动xxx文件夹到home/shiyanlou目录下
      
      touch file{1..5}.txt                       //使用通配符批量创建 5 个文件
      
      rename 's/.txt/.c/' *.txt                //批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件
      
      rename 'y/a-z/A-Z/' *.c                    //批量将这 5 个文件,文件名和后缀改为大写
      
      cat filename                               // 顺序查看文件
                 //-n                            添加行数
      nl filename                                //查看文件,显示行号,并且比前两个显示更专业
      file filename                              //查看文件类型
      head filename                              //显示文件前10行
      tail filename                              //显示文件尾
      (tail -n 1 /etc/passwd                     //只看一行, 加上 -n 参数,后面紧跟行数)
      




    5. 环境变量

      declare tmp        //创建变量名
      tmp=***           //变量名=赋值名
      echo $tmp         //读取变量的值 $ 符号用于表示引用一个变量的值
                        //并不是任何形式的变量名都是可用的,变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。
      set env export    //用于打印环境变量信息,区别在于涉及的变量范围不同
                        // 修改变量
      path=$PATH:绝对路径
      $ echo $path      //查看 PATH 环境变量的内容
      touch hello_shell.sh  gedit hello_shell.sh       //创建一个 Shell 脚本文件
      $ path=${path%/home/shiyanlou/mybin}             // 或使用通配符,*表示任意多个任意字符
      $ path=${path%*/mybin}
      unset temp                                      //删除变量
      source .zshrc                                   //变量立即生效
      whereis who  whereis find                       //简单快速搜索文件
      whereis filename                                //只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)
      locate filename                 //可以用来查找指定目录下的不同文件类型,但需要`apt-get install locate`
      which filename                  //我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令
      find filename                   //它可以通过文件类型、文件名进行查找,也可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索。 
                     -atime              //最后访问时间
                     -ctime              //最后修改文件内容的时间
                     -mtime              //最后修改文件属性的时间
      (                    -mtime n                  //n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
                            -mtime +n                 //列出在 n 天之前(不包含 n 天本身)被修改过的文件
                            -mtime -n                 //列出在 n 天之内(包含 n 天本身)被修改过的文件
                            -newer file               //file 为一个已存在的文件,列出比 file 还要新的文件名)
      

      sudo find /etc -name sources.list //找到sources.list文件

      sudo chown shiyanlou /etc/apt/sources.list //把文件所有者改为自己

      sudo chmod 600 /etc/apt/sources.list //把权限修改为仅仅只有自己可读可写




    6. Linux常用的压缩/解压工具

      压缩
      tar –cvf *.tar /home/dou/Desktop            // 打包/home/dou/Desktop目录*.tar
      tar –czf *.tar.gz /home/dou/Desktop         // 打包/home/dou/Desktop目录为*.tar.gz
      zip -r -(9-1) -q -o -e *.zip /home/dou/Desktop  
                                                  // ( r 参数表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。-(9-1) 压缩级别 -e创建加密压缩包)
      
      解压
      tar –xvf *.tar                              // 解压*.tar
      tar -xzvf *.tar.gz                          // 解压*.tar.gz
      unzip *.zip                                 // 解压*.zip
        
      du -h  -d *.zip                             // 查看打包后文件的大小
      


    7. 文件系统操作

      • 基本操作

        df              //显示磁盘容量
        du              //显示目录大小
            -h          //更易于阅读
            -d          //显示深度
            -s          //显示总计
        
        


      • 简单的磁盘管理

        dd of=test bs=10 count=1 # 或者 dd if=/dev/stdin of=test bs=10 count=1        //输出到文件
        
        dd if=/dev/stdin of=/dev/stdout bs=10 count=1                //输出到标准输出
        //注,在打完了这个命令后,继续在终端打字,作为你的输入
        dd if=/dev/stdin of=test bs=10 count=1 conv=ucase         //dd在拷贝的同时还可以实现数据转换,将输出的英文字符转换为大写再写入文件
        dd if=/dev/zero of=virtual.img bs=1M count=256        //从/dev/zero设备创建一个容量为 256M 的空文件
        du -h virtual.img
        sudo mkfs.ext4 virtual.img            //将磁盘镜像格式化为ext4文件系统
        sudo mount            //使用mount查看主机已经挂载的文件系统
        mount -o loop -t ext4 virtual.img /mnt         //挂载我们创建的虚拟磁盘镜像到/mnt目录
        sudo umount /mnt               //卸载
        sudo fdisk -l                //查看硬盘分区表信息
        sudo fdisk virtual.img            //中间的分区信息
        


    8. 内建命令与外部命令(type 命令来区分命令是内建的还是外部的)

      内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
      外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
    9. 帮助命令

      help            //help 命令是用于显示 shell 内建命令的简要帮助信息。
      
      man             //man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。通过查看系统文档中的 man 也可以得到程序的更多相关信息和 Linux 的更多特性。
      
      info            //得到的信息比 man 还要多,info 来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。
      



  • 相关阅读:
    vr这么火我来看看there.js
    简明现代魔法博客图书馆之php学习记录
    ecshop学习记录
    mysql学习笔记
    linux服务器自动备份mysql数据库
    thinkphp分页及分页样式
    php手册学习(2)
    非常不错的ajax原理总结
    最全的HTTP头部信息分析
    利用curl并发来提高页面访问速度
  • 原文地址:https://www.cnblogs.com/dsqblog/p/12293607.html
Copyright © 2011-2022 走看看