20199104《网络攻防实践》假期作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/19attackdefense |
这个作业的要求在哪里 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10228 |
我在这个课程的目标是 | 学习并了解网络攻防的相关知识,期末有个好成绩 |
这个作业在哪个具体方面帮助我实现目标 | 该作业主要帮助我学习markdown的用法,学习Linux的常用命令 |
作业正文 | 见下 |
参考文献 | [1]. https://blog.csdn.net/u012308586/article/details/102953882 [2]. https://www.runoob.com/markdown/md-table.html [3]. https://www.shiyanlou.com/courses/1 |
作业一
(1)你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识?
(2)作业要使用Markdown格式,Markdown入门参考(需掌握)
我的原专业是本校的信息与计算科学专业,本科主要学习数学和密码学,对于网络攻击和防御仅仅听说过,没有实践,没有太多关于这门课的知识,所以说学好这门课对我来说是一个非常艰巨的任务,希望我之后能跟上。本科仅在娄老师的课程设计使用过markdown进行相关作业,之后无相关经验。
作业二
你自己动手安装过操作系统吗?如果没有话现在动手学一下吧。
(1)学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统(也可以使用VMWare安装虚拟机,安装方法自己百度)
(2)通过实践学习别出心裁的Linux命令学习法,掌握Linux命令的学习方法
(3)参考上面的学习方法通过实践学习Linux 基础入门(新版)课程,掌握常用的Linux命令,重点是3/4/5/6/7/8节。
基于VirtualBox虚拟机安装Ubuntu
仅需要按照基于VirtualBox虚拟机安装Ubuntu图文教程流程安装即可
仅需要注意在
sudo apt-get update;
sudo apt-get upgrade;
时换源,否则速度很慢,参考https://blog.csdn.net/u012308586/article/details/102953882即可
以下是安装完的截图
Linux命令学习
学习的一些常识
- 在LINUX中输入密码是不显示的
- 使用TAB补全
- 使用↑与↓使用以前输入的命令
- 使用\转义字符
- 使用sort排序
实验三
who am i // 查看当前用户
//who命令常用参数
//-a 打印能打印的全部
//-d 打印死掉的进程
//-m 同am i,mom likes
//-q 打印当前登录用户数及用户名
//-u 打印当前登录用户登录信息
//-r 打印运行等级
sudo adduser username //创建用户
su username //切换用户
groups username //加入用户组
sudo usermod -G sudo username //给sudo权限
sudo deluser username --remove-home //删除用户及其目录
ls //显示目录
touch filename //创建文件
chmod XXX filename //赋予文件权限,XXX分别是0-7的三个数字分别代表user和groups、others
//1 2 4 三个数字分别代表x执行、w写和r读,加和为7
sudo chmod 777 filename//给出了最大的权限
实验四
touch filename // 新建文件
mkdir xxx //新建xxx目录
//-p 新建多级目录
cp xxx /home/shiyanlou //拷贝xxx文件夹到home/shiyanlou目录下
rm xxx //删除xxx文件夹后加
//-f 强制删除
//-r 删除文件夹
mv xxx /home/shiyanlou // 移动xxx文件夹到home/shiyanlou目录下
cat filename // 顺序查看文件
//-n 添加行数
nl filename //查看文件,显示行号,并且比前两个显示更专业
file filename //查看文件类型
head filename //显示文件前10行
tail filename //显示文件后10行
以下是实验截图
作业
Linux 的日志文件在哪个目录?
Linux 日志存放在/var/log中,参考https://blog.csdn.net/weixin_37195606/article/details/88565500
实验五
// 修改变量
path=$PATH
$ echo $path
$ path=${path%/home/shiyanlou/mybin} // 或使用通配符,*表示任意多个任意字符
$ path=${path%*/mybin}
$ unset temp //删除变量
source .zshrc //变量立即生效
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 还要新的文件名
实验六
- 打包
tar –cvf *.tar /home/shiyanlou/Desktop //打包/home/shiyanlou/Desktop目录*.tar
tar –czf *.tar.gz /home/shiyanlou/Desktop //打包/home/shiyanlou/Desktop目录为*.tar.gz
zip *.zip /home/shiyanlou/Desktop //打包/home/shiyanlou/Desktop目录为*.zip
- 解压
tar –xvf *.tar // 解压*.tar
tar -xzvf *.tar.gz // 解压*.tar.gz
unzip *.zip // 解压*.zip
实验七
- 基本操作与输入输出
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 //中间的分区信息
对于虚拟磁盘的分区由于不知道由哪进去故没有做
以下是实验截图
作业
实验八
Linux有分为内建命令与外部命令
内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调入内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
help //help 命令是用于显示 shell 内建命令的简要帮助信息。
man //man 工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述。通过查看系统文档中的 man 也可以得到程序的更多相关信息和 Linux 的更多特性。
info //得到的信息比 man 还要多,info 来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。