20199116《网络攻防实践》寒假作业
20199116《网络攻防实践》寒假作业
前言
问题 | 解答 |
---|---|
这个作业属于哪个课程 | 《网络攻防实践》 |
这个作业的要求在哪里 | <作业要求> |
我在这个课程的目标是 | 熟练掌握网络攻防知识 |
这个作业在哪个具体方面帮助我实现目标 | 学习Linux操作命令以及虚拟机的应用;学习网络攻防知识,为以后研究打下基础 |
作业正文 | 如下作业一、作业二 |
其他参考文献 | (https://www.cnblogs.com/zhouyubo/p/8412840.html) |
作业一
(1)你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识?
-
我对网络攻击和防御不太了解,没有接触过,需努力学习。
-
原专业是信息与计算科学,本科学习方向偏数学,学习过的计算机相关的课程有:信息论基础、数字图像处理、算法与数据结构、数值计算方法、基于visual studio的网页设计等
(2)作业要使用Markdown格式,Markdown入门参考(需掌握)
- 本人学习使用Markdown格式,并采用Markdown格式写下了这篇博客。
作业二
你自己动手安装过操作系统吗?如果没有话现在动手学一下吧。
(1)学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统(也可以使用VMWare安装虚拟机,安装方法自己百度)
- 通过软件安装管家,用VMWare安装虚拟机。如下图:
(2)通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法
- 掌握Linux命令的学习方法,Linux学习应用的一个特点是通过命令行进行使用。
- 学习并掌握Ubuntu几个常用的快捷键,提高使用效率。
CTRL+ALT+T
:打开终端;CTRL+SHIFT+T
:新建标签页,编程时有重要应用;ALT+数字N
:终端中切换到第N个标签页,编程时有重要应用;Tab
:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab
键就可以得到提示或者帮助完成;上下键盘
:切换命令历史,刚输入一个很长的命令,按上
键就可以恢复;CTRL+C
:中断程序运行。
(3)参考上面的学习方法通过实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令,重点是3/4/5/6/7/8节。
实践学习Linux 基础入门(新版)第二章
-
Linux命令
touch
:创建文件的命令,例如,touch file,其中file为文件名,txt为后缀;
cd
:是一个进入目录的命令。例如,cd/home/shiyanlou,回到用户家目录;
pwd
:查看当前所在目录;- 通配符:是一种特殊语句,主要有星号(*)和问号(?),用来对字符串进行模糊匹配(比如文件名、参数名)。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字
符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正字符。
touch love_{1..10}_linux.txt
一次性创建多个文件“love_1_linux.txt,love_2_linux.txt,... love_10_linux.txt”
shell常用通配符
-
作业
学习一个可以输出图形字符的命令banner,如下图
第三章
- 查看用户:
who am i
- 创建用户:
sudo adduser 用户名
;登陆用户名:su -l 用户名
;查看目录:su ls
- Linux里如何知道自己属于哪些用户名
- 方法一:使用groups命令,
groups 用户名
shiyanlou 用户密码可以通过 sudo passwd shiyanlou 命令进行设置
退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。 - 方法二:查看/etc/group文件,
cat/etc/groups|grep -E "用户名"
- 方法一:使用groups命令,
- 查看文件权限
- cat
,读取文件内容;链接数;文件大小 - ls命令的一些其他常用的用法
ls:列出目录下文件
ls -A:显示除了当前目录和上级目录之外的所有文件,包括隐藏文件
ls -Al:查看一个目录的完整属性
ls -dl:显示所有文件大小
ls -AsSh:其中s为显示文件大小,大S为按文件大小排序,若需要知道如何按其它方式排序,请使用"man"命令查询。
- cat
- 变更文件所有者
$ ll iPhone :查看文件iphone的文件所有者
先创建新用户lilei,登陆lilei用户,在该用户下创建文件iPhone:先cd /home/lilei,再touch iPhone
再利用ctrl+d
切换回用户shiyanlou,执行以下命令将文件iPhone的所有者更换为实验楼。
过程如下:
- 修改文件权限
-
在iphone文件里加内容,执行命令:echo "hello shiyanlou"" >iphone
-
方法一:二进制数字表示法
修改权限执行命令:chomd 600 iphone。执行完该命令,再次登陆用户lilei,查看iPhone文件:cat /home/lilei/iphone,发现已经没有权限了。如下
-
方法二:加减赋值操作
$ chmod go -rw iphone
-
-
作业:
添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。截图并把操作过程写入实验报告。
- 步骤如下
1.创建用户loutest,执行:sudo adduser loutest
2.登陆用户loutest,执行:su loutest
3.再创建文件,执行:touch /opt/forloutest
4.给文件加入内容,再修改权限,令文件为loutest可读写
5.切换回用户shiyanlou,执行cat /opt/forloutest,发现shiyanlou没有权限读取
6.同5发现loutest可以读写
由于之前没接触过Linux,在学习第三章过程及写这章作业过程中,出现了一些问题,好在经过多次学习和实践,最后解决了。
第四章
- 新建
- 新建空白文件
创建名为test的空白文件,因为在其他没有权限,所以需要先 cd ~ 切换回用户的/home/shiyanlou目录:
$ cd/home/shiyanlou
$ touch test - 新建目录
创建名为“mydir”的空目录
$ mkdir mydir
使用-p参数创建多级目录
$ mkdir -p father/son/grandson
- 新建空白文件
- 复制
- 复制文件
使用 cp(copy)命令复制一个文件到指定目录。将之前创建的“ test ”文件复制到“ /home/shiyanlou/father/son/grandson ”目录中:
$ cp test father/son/grandson - 复制目录
需要加上-r或-R参数:
$ cd /home/shiyanlou
$ mkdir family
$ cp -r father family(将family目录复制到父级(father)目录)
- 复制文件
- 删除
- 删除文件
使用 rm(remove files or directories)命令删除一个文件:
$ rm test
使用 -f 参数强制删除:
$ rm -f test - 删除目录
跟复制目录一样,要删除一个目录,也需要加上 -r 或 -R 参数:
$ rm -r family(删除family目录)
- 删除文件
- 移动文件与文件重命名
- 移动文件
使用 mv(move or rename files)命令移动文件(剪切)。将文件“ file1 ”移动到 Documents 目录:
$ mkdir Documents
$ touch file1
$ mv file1 Documents(mv 源目录文件 目的目录) - 重命名文件
将文件“ file1 ”重命名为“ myfile ”:
$ mv file1 myfile(mv 旧的文件名 新的文件名:) - 用rename 命令批量重命名
$ cd /home/shiyanlou/
- 移动文件
使用通配符批量创建 5 个文件:
$ touch file{1..5}.txt
批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件:
$ rename 's/.txt/.c/' *.txt
批量将这 5 个文件,文件名和后缀改为大写:
$ rename 'y/a-z/A-Z/' *.c
- 查看文件
- 使用 cat,tac 和 nl 命令查看文件
可以加上 -n 参数显示行号:
$ cat -n passwd
nl 命令,添加行号并打印,这是个比 cat -n 更专业的行号打印命令。
列举nl的常用的几个参数:
-b : 指定添加行号的方式,主要有两种:
-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
-b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
-n ln:在行号字段最左端显示
-n rn:在行号字段最右边显示,且不加 0
-n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位) - 使用 more 和 less 命令分页查看文件
使用 more 命令打开 passwd 文件:
$ more passwd
打开后默认只显示一屏内容,终端底部显示当前阅读的进度。可以使用** Enter 键向下滚动一行,使用 Space 键向下滚动一屏,按下 h 显示帮助,q 退出**。 - 使用 head 和 tail 命令查看文件
它们一个是只查看/etc/passwd 文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行
$ tail /etc/passwd
$ tail /etc/passwd
甚至更直接的只看一行, 加上 -n 参数,后面紧跟行数:
$ tail -n 1 /etc/passwd - 查看文件类型
我们通常使用 file 命令查看文件的类型:
$ file /bin/ls - 编辑文件
$ vimtutor
- 使用 cat,tac 和 nl 命令查看文件
-
作业
-
- 创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt 。如下图
- 创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt 。如下图
-
- Linux 的日志文件在哪个目录?
Linux常见的日志文件详述如下:/var/log/boot.log;/var/log/cron;/var/log/maillog;/var/log/syslog
- Linux 的日志文件在哪个目录?
-
第五章
- 使用 declare 命令创建一个变量名为 tmp 的变量:
$ declare tmp - 使用 = 号赋值运算符,将变量 tmp 赋值为 shiyanlou:
$ tmp=shiyanlou - 读取变量的值,使用 echo 命令和 $ 符号($ 符号用于表示引用一个变量的值,初学者经常忘记输入):
$ echo $tmp
注意:并不是任何形式的变量名都是可用的,变量名只能是英文字母、数字或者下划线,且不能以数字作为开头 - 三种环境变量相关的命令:set,env,export,可使用 vimdiff 工具比较一下它们之间的差别
- 两个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件:
.profile 可以用 ls -a 查看
\(cd /home/shiyanlou \)ls -a
这个 .profile 只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。 - 创建一个 Shell 脚本文件:
$ cd /home/shiyanlou
$ touch hello_shell.sh
$ gedit hello_shell.sh - 执行脚本:
$ cd /home/shiyanlou
$ ./hello_shell.sh - 创建一个 C 语言“ hello world ”程序:
$ cd /home/shiyanlou
$ gedit hello_world.c - 保存后使用 gcc 生成可执行(程序)文件:
$ gcc -o hello_world hello_world.c - mybin 目录中分别运行你刚刚创建的两个程序:
$ cd mybin
$ ./hello_shell.sh
$ ./hello_world - 添加自定义路径:
$ PATH=$PATH:/home/shiyanlou/mybi - 修改和删除已有变量
- 修改方式多种
- 可以使用 unset 命令删除一个环境变量:
$ unset temp
- 使用 source 命令来让环境变量立即生效,如:
$ cd /home/shiyanlou
$ source .zshrc - 搜索文件
- whereis 简单快速
$ whereis who
$ whereis find - locate 快而全
查找 /etc 下所有以 sh 开头的文件:
$ sudo apt-get update
$ sudo apt-get install locate
$ locate /etc/sh
查找 /usr/share/ 下所有 jpg 文件:
$ locate /usr/share/*.jpg - which 小而精
$ which man - find 精而细
$ sudo find /etc/ -name interfaces(这条命令表示去 /etc/ 目录下面 ,搜索名字叫做 interfaces 的文件或者目录)
- whereis 简单快速
-
作业
找出 /etc/ 目录下的所有以 .list 结尾的文件。
答:执行命令:sudo find /etc/*.list 或 locate /etc/*.list
第六章
- zip:
- 打包 :zip something.zip something (目录请加 -r 参数)
- 解包:unzip something.zip
- 指定路径:-d 参数
- tar:
- 打包:tar -cf something.tar something
- 解包:tar -xf something.tar
- 指定路径:-C 参数
-
作业
创建一个名为 test 的文件,分别用 zip 和 tar 打包成压缩包,再解压到 /home/shiyanlou 目录。
实验过程如图
第七章
- 使用 df 命令查看磁盘的容量
$ df
$ df -h - 使用 du 命令查看目录的容量
$ du (默认同样以 块 的大小展示)
$ du -h (加上-h
参数,以更易读的方式展示) - 创建虚拟磁盘(具体见 linux基础入门)
- 使用 dd 命令创建虚拟镜像文件
从/dev/zero设备创建一个容量为 256M 的空文件:
$ dd if=/dev/zero of=virtual.img bs=1M count=256
$ du -h virtual.img
bs(block size)用于指定块大小;count用于指定块数量 - 使用 mkfs 命令格式化磁盘
将我们的虚拟磁盘镜像格式化为ext4文件系统:
$ sudo mkfs.ext4 virtual.img - 使用mount来查看下主机已经挂载的文件系统:
$ sudo mount
输出的结果中每一行表示一个设备或虚拟设备,每一行最前面是设备名,然后是 on 后面是挂载点,type 后面表示文件系统类型,再后面是挂载选项 - 使用mount挂载真正的磁盘到目录树:
$ mount [options] [source] [directory] - 使用 umount 命令卸载已挂载磁盘
命令格式为: sudo umount 已挂载设备名或者挂载点,如:
$ sudo umount /mnt(/mnt为挂载点) - 使用 fdisk 为磁盘分区
$ sudo fdisk -l(查看硬盘分区表信息)
$ sudo fdisk virtual.img(进入磁盘分区模式)
操作完成后输入p查看结果,最后不要忘记输入w写入分区表 - 使用 losetup 命令建立镜像与回环设备的关联(具体见 linux基础入门)
- 使用 dd 命令创建虚拟镜像文件
-
作业
首先要了解三个常用命令:
du : 计算出单个文件或者文件夹的磁盘空间占用.
sort : 对文件行或者标准输出行记录排序后输出.
head : 输出文件内容的前面部分.
du:
-a:显示目录占用空间的大小,还要显示其下目录占用空间的大小
sort:
-n : 按照字符串表示的数字值来排序
-r :按照反序排列
head :
-n : 取出前多少行
以上的问题可以使用命令: du -a | sort -n -r | head -n 10
原文链接:https://blog.csdn.net/dexter159/article/details/72598470
第八章
本章主要学习,当我们忘记某些命令时,可以利用Linux系统自带的帮助工具与文档。
-
内建命令与外部命令之分
1.内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,由 shell 程序识别并在 shell 程序内部完成运
行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。2.外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入
内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi
等。3.可以使用 type 命令来区分命令是内建的还是外部的
-
help , man , info帮助命令的使用以及区别
- help命令
记住 help 命令只能用于显示内建命令的帮助信息
$ bash
$ help ls
如果是外部命令,可以试试这个命令:
$ ls --help - man命令
$ man ls
man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。通过查看系统文档中的 man 也可以得到程序的更多相关信息和 Linux 的更多特性。
man手册 - info命令
需要手动安装,安装和操作步骤如下:
(安装 info)
$ sudo apt-get update
$ sudo apt-get install info
(查看 ls 命令的 info)
$ info ls
- help命令