作业说明
这个作业属于哪个课程:课程链接
这个作业的要求在哪里:作业要求链接
我在该课程的目标是:安装虚拟机,掌握常用的Linux命令,学习网络攻防知识
这个作业在哪个具体方面帮助我实现目标:动手操作能力,熟悉并掌握常用的Linux命令
作业正文
作业一
(1)你对网络攻击和防御了解多少?该课程需要计算机和网络相关的基础知识,你原专业是什么专业,目前你掌握多少基础知识?
上学期跟着李冬冬老师学习了《网络系统与安全》,对网络攻击技术和安全防护技术有一定的了解,使用过wireshark、nmap等工具进捕包分析、重放攻击、Dos攻击等实验。
原专业是计算机科学与技术,目前掌握操作系统、数据结构、计算机网络等基础知识
(2)作业要使用Markdown格式。
已掌握。
作业二
在自己笔记本上安装Linux操作系统
遇到的问题和解决方法
- 在进行到安装Ubuntu系统软件时,原博客的链接“无法安全地连接到此页面”,在这里附上链接:官网Ubuntu桌面下载。
- 在安装基于VirtualBox虚拟机增强功能这一步骤时,打开终端,在
ls
命令下没有看到media
目录,后来发现其在根目录下。
之前一直没有留意过media目录,现将查阅到的知识点整理如下(后续在实验楼有详细学习):- /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
cd
命令:切换当前目录至其它目录,比如进入/etc目录,则执行cd /etc
cd /
命令:在Linux 系统中斜杠“/”表示的是根目录。cd /
,即进入根目录。cd ~
命令是,进入用户在该系统的home目录,例如xz用户,则进入/home/xz目录。
- VirtualBox主机与虚拟机不能复制粘贴的解决办法:启动虚拟机,在设备中的“共享粘贴板”、“拖放”均设置为双向即可。
别出心裁的Linux命令学习法
上学期是首次接触Linux操作系统,有很多知识一知半解,对于很多命令还不是很明白。趁着假期,通过别出心裁的Linux命令学习法的认真阅读和在实验楼再次巩固学习Linux基本概念和操作,将知识点和遇到的问题总结如下:
知识点
echo
输出到终端Ctrl+c
键来强行终止当前程序*
可以用来对字符串进行模糊匹配,匹配0或多个字符(比如文件名、参数名)man
来获得某个命令的说明和使用方式的详细介绍
遇到的问题
实验楼学习,掌握常用的Linux命令
实验三.用户及文件权限管理
知识点总结
- 查看用户:
who am i
或者who mom likes
- 创建用户:
sudo adduser 用户名
- 切换用户
su
可以切换到用户 user,执行时需要输入目标用户的密码;su -
命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量;sudo
可以以特权级别运行 cmd 命令,需要当前用户属于 sudo 组,且需要输入当前用户的密码。
- 用户组:
- 查看自己属于那些用户组:
groups
:所得冒号之前表示用户,后面表示该用户所属的用户组cat /etc/group
: 文件格式说明:group_name:password:GID:user_list
- 将其它用户加入 sudo 用户组:
sudo usermod -G sudo
- 查看自己属于那些用户组:
- 删除用户:
sudo deluser
--remove-home - 查看文件权限:
ls -l
,ll <文件名>
,ls -A
,ls -Al
- 变更文件所有者:
sudo chown <要变更的文件所属用户> <文件名>
- 修改文件权限:
- 二进制数字表示:每个文件的三组权限(拥有者,所属用户组,其他用户,这个顺序是一定的)对应一个 " rwx ",也就是一个 “ 7 ” 。如
chmod 600 <文件名>
- 加减赋值操作:g、o 、u 分别表示 group、others 和 user,+ 和 - 分别表示增加和去掉相应的权限。如
chmod go-rw <文件名>
- 二进制数字表示:每个文件的三组权限(拥有者,所属用户组,其他用户,这个顺序是一定的)对应一个 " rwx ",也就是一个 “ 7 ” 。如
- adduser 和 useradd 的区别是什么?
- useradd 只创建用户,创建完了用 passwd lilei 去设置新用户的密码。adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。
作业
添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。截图并把操作过程写入实验报告。
sudo adduser loutest //添加一个用户loutest
sudo usermod -G sudo loutest //给新用户添加 sudo 权限(添加到sudo组)
su loutest //用户loutest登录
cd /home/loutest //切换目标用户的环境变量
sudo touch /opt/forloutest //使用 sudo 创建文件 /opt/forloutest
ll /opt/forloutest
echo "echo \"hello shiyanlou\"" > /opt/forloutest //在用户loutest下写该文件,发现不能写
cat /opt/forloutest //在用户loutest下读该文件,发现可读
sudo chmod 646 /opt/fortest //设置其他用户对文件/opt/fortest权限为读写,拥有者和所属用户组的权限不变
ll /opt/forloutest
echo "echo \"hello \"" > /opt/forloutest //在用户loutest下写该文件
cat /opt/forloutest //在用户loutest下读该文件
实验四.Linux目录结构及文件基本操作
知识点总结
- Linux的目录结构
- 绝对路径:以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
- 相对路径:相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如: usr/local/bin (这里假设你当前目录为根目录)。
- 新建
- 新建空白文件:
touch <文件名>
- 新建目录:
touch <目录名>
,mkdir -p father/son/grandson
(使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录)
- 新建空白文件:
- 复制
- 复制文件:使用 cp(copy)命令复制一个文件到指定目录,
cp <文件名> <目录名>
- 复制目录:要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制,
cp -r <被复制的目录名> <目录名>
- 复制文件:使用 cp(copy)命令复制一个文件到指定目录,
- 删除
- 删除文件:
rm <文件名>
,rm -f <文件名>
(忽略提示,直接删除文件,可以使用 -f 参数强制删除) - 删除目录:
rm -r <目录名>
跟复制目录一样,要删除一个目录,也需要加上 -r 或 -R 参数
- 删除文件:
- 移动文件:
mv <源目录文件> <目的目录>
- 重命名文件:
mv <旧的文件名> <新的文件名>
- 查看文件:
cat -n passwd
,-n 参数显示行号 查看文件类型:
file <文件名>
作业
- Linux 的日志文件在/var/log
其中/var/log/message系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一;
/var/log/secure与安全相关的日志信息;/var/log/maillog与邮件相关的日志信息;/var/log/cron与定时任务相关的日志信息;/var/log/spooler与UUCP和news设备相关的日志信息;/var/log/boot.log守护进程启动和停止相关的日志消息。
实验五.环境变量与文件查找
知识点总结
- 创建变量:
declare <变量名>
,并不是任何形式的变量名都是可用的,变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。 - 涉及到的变量类型有三种:
- 当前 Shell 进程私有用户自定义变量,只在当前 Shell 中有效。
- Shell 本身内建的变量。
- 从自定义变量导出的环境变量。
- 三个用于打印环境变量信息的变量,区别在于涉及的变量范围不同
set
显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。env
显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。export
显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。
- 如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。
- 添加自定义路径到“ PATH ”环境变量:
PATH=$PATH:<绝对路径>
- 搜索文件:
- whereis 简单快速:只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)。
- locate 快而全:它可以用来查找指定目录下的不同文件类型,如查找 /etc 下所有以 sh 开头的文件:
查找 /usr/share/ 下所有 jpg 文件:$ sudo apt-get update $ sudo apt-get install locate $ locate /etc/sh
$ locate /usr/share/\*.jpg
- which 小而精:我们通常使用 which 来确定是否安装了某个指定的软件,因为它只从 PATH 环境变量指定的路径中去搜索命令,如:
which man
- find 精而细:注意 find 命令的路径是作为第一个参数的, 基本命令格式为
find [path] [option] [action]
。如去 /etc/ 目录下面 ,搜索名字叫做 interfaces 的文件或者目录:sudo find /etc/ -name interfaces
作业
寻找文件:找出 /etc/ 目录下的所有以 .list 结尾的文件。
实验六.文件打包与解压缩
知识点总结
- 使用 zip 打包文件夹:
zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop
,其中-r
参数表示递归打包包含子目录的全部内容,-q
参数表示为安静模式,即不向屏幕输出信息,-o
表示输出文件,需在其后紧跟打包输出文件名。 - 设置压缩级别为 9 和 1(9 最大,1 最小),添加了一个参数用于设置压缩级别 -[1-9],1 表示最快压缩但体积大,9 表示体积最小但耗时最久。最后那个
-x
是为了排除我们上一次创建的 zip 文件,否则又会被打包进这一次的压缩文件中,注意:这里只能使用绝对路径,否则不起作用。
$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou/Desktop -x ~/*.zip
$ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou/Desktop -x ~/*.zip
- 创建加密 zip 包:使用
-e
参数可以创建加密压缩包:zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou/Desktop
- 将 XX.zip 解压到当前目录:
unzip XX.zip
- 不想解压只想查看压缩包的内容可以使用 -l 参数:
unzip -l XX.zip
- 使用安静模式,将文件解压到指定目录:
unzip -q XX.zip -d <指定目录>
,指定目录不存在,将会自动创建 - 创建一个 tar 包:
tar -P -cf shiyanlou.tar /home/shiyanlou/Desktop
,,-P 保留绝对路径符,-c 表示创建一个 tar 包文件,-f 用于指定创建的文件名,注意文件名必须紧跟在 -f 参数之后。 - 解包一个文件(-x 参数)到指定路径的已存在目录(-C 参数):
tar -xf XX.tar -C <已存在目录>
- 只查看不解包文件 -t 参数:
tar -tf XX.tar
作业
创建一个名为 test 的文件,分别用 zip 和 tar 打包成压缩包,再解压到 /home/shiyanlou 目录。
实验七.文件系统操作与磁盘管理
知识点总结
- 查看磁盘和目录的容量:
- 使用 df 命令查看磁盘的容量:
df -h
- 使用 du 命令查看目录的容量:
du -h
- 使用 df 命令查看磁盘的容量:
- mount 命令挂载磁盘到目录树
- mount命令的一般格式如下:`mount [options] [source] [directory]
- 一些常用操作:
mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
作业
小明在管理服务器的时候发现空间不足了,他找到了一个目录,这个目录占用的空间异常的大,他需要找到这个目录中占用最大的前10个文件,但是这个目录下面的内容太多了,或许一条命令就能够帮助到他,这条命令该怎么写呢?
简而言之:找出当前目录下面占用最大的前十个文件。
实验八.Linux下的帮助命令
知识点总结
- 内建命令:是 shell 程序的一部分,包含一部分的Linux系统命令,且其执行速度比外部命令快。
- 外部命令:是 Linux 系统中的实用程序部分,不包含在 shell 中,但命令执行过程是由 shell 程序控制的。
- 帮助命令
- help:内建命令:help内建命令,外部命令:
参数--help
- man:
man ls
打开手册 - info:
info
命令(相较于man更完整)
- help:内建命令:help内建命令,外部命令:
其他参考资料:
别出心裁的Linux命令学习法
linux命令中cd / 和 cd ~
Linux 系统目录结构
linux中echo的使用方法
第一个shell脚本