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 可以读写。截图并把操作过程写入实验报告。
步骤:
- 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.作业
- 创建一个 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!
");
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得到的信息更多