20199135网络攻防与实践作业

20199135网络攻防与实践作业

**Markdown

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

问题 回答
作业所属课程 网络攻防实践(https://edu.cnblogs.com/campus/besti/19attackdefense)
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10228
我在这个课程的目标是 学习用Markdown格式写博客,学习安装Linux操作系统,学习编程
这个作业在哪个具体方面帮助我实现目标 了解了Markdown格式,了解了Linux操作系统
作业正文 见作业一、作业二
参考文献 https://www.shiyanlou.com/courses/1/learning/?id=1918

作业一

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

本科期间所学专业为电子信息科学与技术专业,大学期间学习过C语言,计算机网络(选修),对于网络方面的知识了解较少,作为一个网络小白(菜鸟),网络攻击与防御知识可以说是零基础,但是我愿意更加努力的去学习这些新知识


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

学习用Markdown格式写博客,本篇正是采用Markdown格式所写的第一篇博客。


作业二

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

本人选择基于VWMare虚拟机安装Ubuntu,安装方法参考自微信公众号——软件安装管家


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

重要快捷键以及Shell 常用通配符:

*:匹配 0 或多个字符
?:匹配任意一个字符
[list]:匹配 list 中的任意单一字符
[^list]:匹配 除list 中的任意单一字符以外的字符
[c1-c2]:匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
{string1,string2,...}:匹配 string1 或 string2 (或更多)其一字符串
{c1..c2}:匹配 c1-c2 中全部字符 如{1..10}
[Ctrl]+[Alt]+[F7]:实验楼的环境下,切换到其中一个终端后想要切换回图形界面使用
[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:将终端显示向下滚动


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

实验二

1.学习使用 touch 命令创建文件

2.学习man 命令

$ man <command_name>:执行man命令调用手册页,获得某个命令的说明和使用方式的详细介绍:
man man:查看 man 命令本身的使用方式
$ man 1 ls:查看相应区段的内容
可以在 man 中使用搜索/<你要搜索的关键字>
查找完毕后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处。
使用Space(空格键)翻页,Enter(回车键)向下滚动一行。
使用k,j(vim 编辑器的移动键)进行向前向后滚动一行。
按下h键为显示使用帮助(因为 man 使用 less 作为阅读器,实为less工具的帮助)。
按下q退出。显示第一区段中的ls命令 man 页面。

3作业 这一节介绍一个可以输出图形字符的命令banner



实验三

1.学习who命令查看用户


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

2.学习su,su- 与 sudo


shiyanlou 用户密码可以通过 sudo passwd shiyanlou 命令进行设置
退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。

3.学习 groups 命令

$ groups shiyanlou

冒号之前表示用户,后面表示该用户所属的用户组

4.学习 /etc/group 文件

$ cat /etc/group | sort
 cat 命令用于读取指定文件的内容并打印到终端输出
 | sort 表示将读取的文本进行一个字典排序再输出

5.学习文件类型

$ ls -A
$ ls -Al可以同时使用 -A 和 -l 参数:
$ ls -dl <目录名>查看某一个目录的完整属性,而不是显示目录里面的文件属性:
$ ls -AsSh显示所有文件大小,并以普通人类能看懂的方式呈现:
其中小 s 为显示文件大小,大 S 为按文件大小排序
$ chmod 600 iphone6修改权限

6.作业

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

步骤:

  1. sudo adduser loutest
    2.加入sudo组;sudo usermod sudo -G sudo loutest
    3.使用sudo创建文件: sudo touch /opt/forloutest
    4.设置成用户loutest可以读写: sudo chmod 600  /opt/forloutest
    5.结果:查看:ll /opt/forloutest


实验四

1.目录路径

使用 cd 命令可以切换目录
~ 通常表示当前用户的 home 目录,- 表示上一次所在目录
使用 pwd 命令可以获取当前所在路径(绝对路径);
$ cd ..进入上一级目录;
$ cd ~ # 或者 cd /home/<你的用户名> 进入你的 home 目录;
$ pwd使用 pwd 获取当前路径。

2.新建


创建名为 test 的空白文件,因为在其它目录没有权限,所以需要先 cd ~ 切换回用户的/home/shiyanlou 目录:再使用 touch 命令创建空白文件。

$ mkdir mydir使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性。创建名为“ mydir ”的空目录:$ mkdir -p father/son/grandson

3.复制

$ cp test father/son/grandson 使用 cp(copy)命令复制一个文件到指定目录。将之前创建的“ test ”文件复制到“ /home/shiyanlou/father/son/grandson ”目录中。

$ cd /home/shiyanlou$ mkdir family$ cp -r father family 如果直接使用 cp 命令复制一个目录的话,会出现错误,要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制,

4.删除

$ rm test使用 rm(remove files or directories)命令删除一个文件;
$ rm -f test使用 -f参数强制删除;
$ rm -r family删除目录,也需要加上 -r或 -R 参数。

5.移动文件与文件重命名

mv 源目录文件 目的目录:$ mkdir Documents$ touch file1$ mv file1 Documents
使用 mv(move or rename files)命令移动文件(剪切)。将文件“ file1 ”移动到 Documents 目录。
mv 旧的文件名 新的文件名:$ mv file1 myfile将文件“ file1 ”重命名为“ myfile ”

6.查看文件

1.使用 cat,tac  命令查看文件用来打印文件内容到标准输出(终端),其中 cat 为正序显示,tac 为倒序显示。
$ cd /home/shiyanlou$ cp /etc/passwd passwd$ cat passwd查看之前从 /etc 目录下拷贝来的 passwd文件
$ cat -n passwd加上 -n 参数显示行号

2.使用nl 命令查看文件,添加行号并打印,这是个比 cat -n 更专业的行号打印命令。
常用的几个参数:
-b : 指定添加行号的方式,主要有两种:
-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
-b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
-n ln:在行号字段最左端显示
-n rn:在行号字段最右边显示,且不加 0
-n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位)

3.使用 more 和 less 命令分页查看文件
$ more passwd使用 more 命令打开 passwd 文件
使用 Enter 键向下滚动一行,使用 Space 键向下滚动一屏,按下 h 显示帮助,q 退出。

4.使用 head 和 tail 命令查看文件
$ tail /etc/passwd系统新增加一个用户,会将用户的信息添加到 passwd 文件的最后
$ tail -n 1 /etc/passwd更直接的只看一行, 加上 -n 参数,后面紧跟行数

7.查看文件类型

$ file /bin/ls使用 file 命令查看文件的类型

8.编辑文件

$ vimtutor直接使用 Linux 内部的 vim 学习教程

9.作业

  1. 创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt

    2、Linux 的日志文件在哪个目录
    Linux的日志文件在/var/log中。

实验五

1.环境变量

$ declare tmp使用 declare 命令创建一个变量名为 tmp 的变量
$ tmp=shiyanlou使用 = 号赋值运算符,将变量 tmp 赋值为 shiyanlou:
$ echo $tmp读取变量的值,使用 echo 命令和 $ 符号($ 符号用于表示引用一个变量的值,初学者经常忘记输入)
注意:并不是任何形式的变量名都是可用的,变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。

2.命令的查找路径与顺序

$ echo $PATH查看 PATH 环境变量的内容:
$ cd /home/shiyanlou$ touch hello_shell.sh$ gedit hello_shell.sh创建一个 Shell 脚本文件
$ chmod 755 hello_shell.sh为文件添加可执行权限
执行脚本:
$ cd /home/shiyanlou
$ ./hello_shell.sh
创建一个 C 语言“ hello world ”程序:
$ cd /home/shiyanlou$ gedit hello_world.c

#include <stdio.h>
int main(void){
    printf("hello world!\n");
    return 0;

}

$ gcc -o hello_world hello_world.c保存后使用 gcc 生成可执行文件:
$ cd /home/shiyanlou$ mkdir mybin$ mv hello_shell.sh hello_world mybin/在 /home/shiyanlou 家目录创建一个 mybin 目录,并将上述 hello_shell.sh 和 hello_world 文件移动到其中

3.修改和删除已有变量

变量设置方式 说明
${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据
${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据
${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据
${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据
${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串
${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串
$ unset temp使用 unset 命令删除一个环境变量

4.如何让环境变量立即生效

$ cd /home/shiyanlou$ source .zshrc使用 source 命令来让修改的配置脚本文件立即生效

5.搜索文件

$ whereis who$ whereis find
$ sudo apt-get update
$ sudo apt-get install locate
$ locate /etc/sh查找 /etc 下所有以 sh 开头的文件:
$ locate /usr/share/*.jpg查找 /usr/share/ 下所有 jpg 文件:
$ which man只从 PATH 环境变量指定的路径中去搜索命令
$ sudo find /etc/ -name interfacesfind 命令
$ find ~ -mtime 0列出 home 目录中,当天(24 小时之内)有改动的文件:$ find ~ -newer /home/shiyanlou/Code列出用户家目录下比 Code 文件夹新的文件

6.作业

找出 /etc/ 目录下的所有以 .list 结尾的文件。


实验6

1.zip:

o打包 :zip something.zip something (目录请加 -r 参数)
o解包:unzip something.zip
o指定路径:-d 参数

2.tar:

o打包:tar -cf something.tar something
o解包:tar -xf something.tar
o指定路径:-C 参数

3.作业

zip
$ cd /home/shiyanlou$ touch test$ zip test.zip test
使用 du 命令查看打包后文件的大小
$ du -h test.zip
将文件解压到指定目录
$ unzip -q test.zip -d /home/shiyanlou

tar
$ cd /home/shiyanlou
$ touch test
$ tar -cf test.tar test
$ du -h test.tar
$ tar -xf test.tar -C /home/shiyanlou


实验七

1 查看磁盘和目录的容量

$ df使用 df 命令查看磁盘的容量
$ du 使用 du 命令查看目录的容量
$ du -h -d 0 ~# 只查看1级目录的信息
$ du -h -d 1 ~# 查看2级

2.创建虚拟磁盘

使用dd命令来完成创建虚拟磁盘的第一步。
从/dev/zero设备创建一个容量为 256M 的空文件:
$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img

使用 mkfs 命令格式化磁盘在命令行输入 sudo mkfs 然后按下Tab键,你可以看到很多个以 mkfs 为前缀的命令,这些不同的后缀其实就是表示着不同的文件系统,可以用 mkfs 格式化成的文件系统。

$ sudo mkfs.ext4 virtual.img将我们的虚拟磁盘镜像格式化为ext4文件系统:

使用 mount 命令挂载磁盘到目录树$ sudo mount使用mount来查看下主机已经挂载的文件系统
mount [options] [source] [directory]挂载真正的磁盘到目录树

现在直接来挂载我们创建的虚拟磁盘镜像到/mnt目录:
$ mount -o loop -t ext4 virtual.img /mnt # 也可以省略挂载类型,很多时候 mount 会自动识别

以只读方式挂载
$ mount -o loop --ro virtual.img /mnt# 或者mount -o loop,ro virtual.img /mnt

使用 umount 命令卸载已挂载磁盘# 命令格式 sudo umount 已挂载设备名或者挂载点,如:$ sudo umount /mnt

查看硬盘分区表信息$ sudo fdisk -l为磁盘分区

$ sudo fdisk virtual.img# 进入磁盘分区模式

3.作业

小明在管理服务器的时候发现空间不足了,他找到了一个目录,这个目录占用的空间异常的大,他需要找到这个目录中占用最大的前10个文件,但是这个目录下面的内容太多了,或许一条命令就能够帮助到他,这条命令该怎么写呢?

du -a | sort -n -r | head -n 10


实验八

1.help 命令

help 命令是用于显示 shell 内建命令的简要帮助信息。
ls --help显示 shell 外部命令

2. man 命令

man ls man 没有内建与外部命令的区分,因为 man 工具大多数都是对命令的解释信息,还有一些相关的描述。

3. info 命令

手动安装info,安装和操作步骤如下
$ sudo apt-get update
$ sudo apt-get install info# 查看 ls 命令的 info
$ info ls得到的信息更多

posted @ 2020-02-11 15:48  付元元  阅读(386)  评论(0编辑  收藏  举报