• 20199106《网络攻防实践》假期作业


    20199106《网络攻防实践》假期作业

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
    这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10228
    我在这个课程的目标是 掌握基本的网络攻防知识和相应操作
    这个作业在哪个具体方面帮助我实现目标 此次作业帮助我学习了markdown的用法和Linux的基础知识,并促使我开通了博客
    作业正文 见下
    其他参考文献

    作业一

    (1)你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识?

    (2)作业要使用Markdown格式,Markdown入门参考(需掌握)

    我对网络攻击和防御不是很了解,仅听说过爬虫,木马病毒,本科数学与应用数学专业,课程偏重理论,除掌握C语言基础的编程能力外,不具备其他的基础知识。

    作业二

    你自己动手安装过操作系统吗?如果没有话现在动手学一下吧。

    (1)学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统(也可以使用VMWare安装虚拟机,安装方法自己百度)

    (2)通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法

    (3)参考上面的学习方法通过实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令,重点是3/4/5/6/7/8节。

    基于VirtualBox虚拟机安装Ubuntu

    根据提供的图文教程安装了VirtualBox-->Ubuntu-->Linux过程还算顺利。

    按Ctrl+Alt+T打开终端后如下所示:

    Linux命令学习

    如何学习Linux,参考下图:

    实验1 Linux系统简介 + 实验2 基本概念及操作

    1. 重要快捷键
    按键 作用
    Tab 可补全命令、目录、命令参数
    Ctrl+c 终端出现意外情况,此键可强行终止当前程序,不会使终端退出
    Ctrl+d 键盘输入结束或退出终端
    Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
    Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
    Ctrl+a 将光标移至输入行头,相当于Home键
    Ctrl+e 将光标移至输入行末,相当于End键
    Ctrl+k 删除从光标所在位置到行末
    Alt+Backspace 向前删除一个单词
    Shift+PgUp 将终端显示向上滚动
    Shift+PgDn 将终端显示向下滚动
    1. Shell 常用通配符:
    字符 含义
    * 匹配 0 或多个字符
    ? 匹配任意一个字符
    [list] 匹配 list 中的任意单一字符
    [^list] 匹配 除list中的任意单一字符以外的字符
    [c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
    {string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
    {c1..c2} 匹配 c1-c2 中全部字符 如{1..10}

    实验3 用户及文件权限管理

    1. 查看用户
    who am i   //或者 who mom likes
    whoami     //查看当前登录用户的用户名
    

    who 命令其它常用参数

    参数 说明
    -a 打印能打印的全部
    -d 打印死掉的进程
    -m 同am i,mom likes
    -q 打印当前登录用户数及用户名
    -u 打印当前登录用户登录信息
    -r 打印运行等级
    1. 创建用户

    创建用户需要 root 权限,就要用到 sudo 命令。使用这个命令有两大前提,

    一是知道当前登录用户的密码,

    二是当前用户必须在 sudo 用户组。

    sudo adduser lilei  //新建一个叫lilei的用户
    su -l lilei         //切换用户
    exit()              //或者Ctrl+d,退出当前用户
    
    1. 用户组
    groups lilei                      //或者cat /etc/group | sort查看自己属于哪些用户组
    sudo usermod -G sudo lilei        //用shiyanlou用户执行sudo命令将lilei添加到sudo用户组
    sudo deluser lilei --remove-home  //删除用户
    
    1. Linux文件权限
    ls -l  //用较长格式列出文件
    


    adduser和useradd的区别:

    useradd 只创建用户,创建完了用 passwd lilei去设置新用户的密码。

    adduser会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。

    作业:
    添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户loutest可以读写。截图并把操作过程写入实验报告。

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

    1. Linux 以树形目录结构的形式来构建整个系统。FHS标准下的目录结构:

    目录的四种交互作用形态:


    2) 文件的基本操作

    cd /usr/local/bin              //绝对路径
    cd ../../usr/local/bin         //相对路径
    cd /home/shiyanlou
    touch test                     //新建空白文件
    mkdir mydir                    //新建空目录
    mkdir -p father/son/grandson   //同时创建一个多级目录
    cp test father/son/grandson    //复制文件到指定目录中
    mkdir family
    cd -r father family            //复制目录,-r或-R参数表示递归复制
    rm test                        //删除文件,前加-f参数强制删除
    rm -r family                   //删除目录
    mv file1 Documents             //移动文件
    mv file1 myfile                //重命名文件
    touch file{1..5}.txt
    rename 's/\.txt/\.c/' *.txt    //改后缀
    rename 'y/a-z/A-Z/' *.c        //批量重命名,将文件名和后缀改为大写
    cat -n password                //cat查看文件,-n参数显示行号, cat 为正序显示,tac 为倒序显示
    nl -b a passwd                 //nl 命令,添加行号并打印,比 cat -n 更专业
    //使用more和less分页查看文件,Enter键下一行,Space键下一屏,h帮助,q退出。
    tail -n 1 /etc/passwd          //head,tail只查看文件的头几行,-n 1只看一行
    //file查看文件类型
    

    nl 常用的几个参数:

    -b (常)| 指定添加行号的方式:
    -|-
    -b a |表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
    -b t |只列出非空行的编号并列出(默认为这种方式)
    -n | 设置行号的样式,主要有三种:
    -n ln|在行号字段最左端显示
    -n rn|在行号字段最右边显示,且不加 0
    -n rz|在行号字段最右边显示,且加 0
    -w | 行号字段占用的位数(默认为 6 位)
    3) vim编辑器 (输入vimtutor命令即可学习)
    4) 作业
    创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt

    实验5 环境变量与文件查找

    declare tmp   //创建变量名为tmp的变量
    tmp=shiyanlou //变量赋值
    echo $tmp     //读取变量值
    zsh           //创建子shell,从默认的bash切换到zsh
    echo $tmp     //值为空,表示该变量无效
    exit          //退出
    export tmp    //导出变量temp为环境变量,此时用上面的命令验证,变量有效
    echo $PATH    //查看PATH环境变量的内容,PATH里面就保存了Shell中执行的命令的搜索路径。
    PATH=$PATH:/home/shiyanlou/mybin  
    //添加自定义路径到PATH,一定要使用绝对路径。
    unset temp    //使用unset命令删除一个环境变量
    source .zshrc //或者. ./.zshrc让环境变量立即生效
    #搜索文件:locate快而全、which小而精、find精而细
    
    

    通常变量类型有三种:

    • 当前 Shell进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效。
    • Shell 本身内建的变量。
    • 从自定义变量导出的环境变量。(为了与普通变量区分,通常我们习惯将环境变量名设为大写)

    按变量的生存周期来划分,Linux变量可分为两类:

    • 永久的:需要修改配置文件,变量永久生效;
    • 临时的:使用export命令行声明即可,变量在关闭 shell 时失效。
    • 如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好。

    变量的修改有以下几种方式:

    变量设置方式 说明
    ${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据
    ${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据
    ${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据
    ${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据
    ${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串
    ${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串
    作业:
    找出 /etc/ 目录下的所有以 .list 结尾的文件

    实验6 文件打包与解压缩

    1. Linux中常见常用的压缩包文件格式
    文件后缀名 说明
    *.zip zip程序打包压缩的文件
    *.rar rar程序压缩的文件
    *.7z 7zip程序压缩的文件
    *.tar tar程序打包,未压缩的文件
    *.gz gzip程序(GNU zip)压缩的文件
    *.xz xz程序压缩的文件
    *.bz2 bzip2程序压缩的文件
    *.tar.gz tar打包,gzip程序压缩的文件
    *.tar.xz tar打包,xz程序压缩的文件
    *tar.bz2 tar打包,bzip2程序压缩的文件
    *.tar.7z tar打包,7z程序压缩的文件
    1. zip和tar常用命令
    zip something.zip something //打包(目录请加 -r 参数)
    unzip something.zip
    //解包(指定路径:-d 参数)
    tar -cf something.tar something //打包
    tar -xf something.tar //解包(指定路径:-C 参数)
    
    1. 作业:创建一个名为 test 的文件,分别用 zip 和 tar 打包成压缩包,再解压到/home/shiyanlou 目录。

    实验7 文件系统操作与磁盘管理

    1. 查看磁盘和目录容量
    df    //使用 df 命令查看磁盘的容量
    df -h //更易读
    du    //查看目录容量
    du -h //提高信息的可读性。
    du -a //同all 显示目录中所有文件的大小。
    du -s //同summarize 仅显示总计,只列出最后加总的值。
    du -h -d 0 ~ //-d参数指定查看目录的深度,只查看一级目录
    du -h -d 1 ~ //查看二级
    
    1. 简单的磁盘管理

    用dd命令从标准输入读入用户的输入到标准输出或者一个文件中:


    dd在拷贝的同时还可以实现数据转换,如将输出的英文字符转换为大写再写入文件:


    可以在man文档中查看其他所有转换参数。

    使用 dd 命令创建虚拟镜像文件

    第一步:从/dev/zero设备创建一个容量为 256M 的空文件

    dd if=/dev/zero of=virtual.img bs=1M count=256 
    du -h virtual.img
    

    第二步:将这个文件格式化(写入文件系统),这里,将我们的虚拟磁盘镜像格式化为ext4文件系统:

    sudo mkfs.ext4 virtual.img
    #输入
    ls -l /lib/modules/$(uname -r)/kernel/fs
    //查看Linux 支持哪些文件系统
    

    第三步:使用 mount 命令挂载磁盘到目录树

    mount -o loop -t ext4 virtual.img /mnt 
    // 也可以省略挂载类型,很多时候mount会自动识别 
    # 以只读方式挂载
    mount -o loop --ro virtual.img /mnt //或者mount -o loop,ro virtual.img /mnt
    //可使用 umount 命令卸载已挂载磁盘
    

    第四步:使用 fdisk 为磁盘分区

    # 查看硬盘分区表信息 
    $ sudo fdisk -l
    
    # 进入磁盘分区模式
     $ sudo fdisk virtual.img
    

    第五步:使用losetup命令建立镜像与回环设备的关联
    3) 轻松一下--cowsay命令


    4) 作业

    | sort -nr //表示安装数字由大到小的顺序排列
    | head -n 10 //表示取前10个
    

    实验8 Linux下的帮助命令

    1. type 命令可用来区分命令是内建的还是外部的。

     xxx is a shell builtin //得到这样的结果说明是内建命令
     xxx is /usr/bin/xxx//得到这样的结果说明是外部命令
     xxx is an alias for xx --xxx //若是得到alias的结果,说明该指令为命令别名所设定的名称
    
    1. help命令
    • 本实验环境是 zsh,而 zsh 中内置并没有help 命令,我们可以进入 bash 中,在bash中内置有该命令。
    • help 命令只能用于显示内建命令的帮助信息。
    • 外部命令基本上都有一个参数--help,这样就可以得到相应的帮助,看到你想要的东西了。


    3) man命令
    得到的内容比用help更多更详细,而且man没有内建与外部命令的区分。

    man ls //按 q 退出当前页面
    
    章节数 说明
    1 Standard commands (标准命令)
    2 System calls (系统调用)
    3 Library functions (库函数)
    4 Special devices (设备说明)
    5 File formats (文件格式)
    6 Games and toys (游戏和娱乐)
    7 Miscellaneous (杂项)
    8 Administrative Commands (管理员命令)
    9 其他(Linux特定的),用来存放内核例行程序的文档。
    1. info 命令
      得到的信息比man还要多。
    #安装info
    sudo apt-get update
    sudo apt-get install info
    #查看ls命令的info
    info ls
    
  • 相关阅读:
    git的相关命令
    vue资料链接
    自定义小程序底部菜单
    物联网开发日记四:原理图2
    物联网开发日记三:原理图1
    物联网开发日记二:设计系统结构
    物联网开发日记一:准备工作
    mybatis不使用@Param有人报错有人却不报错问题
    最简单的js包装对象、ajax请求
    java文字转拼音、首字母缩写
  • 原文地址:https://www.cnblogs.com/wyrr/p/12322976.html
Copyright © 2020-2023  润新知