虚拟机的安装与学习

什么是虚拟机呢

要学习这门课程首先要了解的基本知识就是到底什么是虚拟机

虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

首先来说一下虚拟机的好处。虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。

而虚拟界的作用则更多了,比如如果你需要做一些对系统可能有危害的试验,例如你要研究病毒或木马程序,但又怕自己的物理系统被感染,那就到虚拟机上实验。让虚拟机做替死鬼,就好像医学院的学生学解剖总是在尸体或动物上开刀而不会拿活人下手。再如果,你需要进行一些网络实验,但手头没有几台计算机,你可以同时开启多台虚拟机,让它们连成一个网络。多台虚拟机之间、虚拟机和物理机之间也可通过虚拟网络共享文件,在它们之间复制文件。总之,虚拟机可以让你拥有多台联网的计算机,你原来在多台物理机器上想做什么在虚拟机上基本也可以做什么。虚拟机的基本作用就是可以多台联网,让你学习、测试、试验。

虚拟机安装时遇到的问题

1.再安装之前,我浏览了多位同学的上交的作业,想要提前了解安装过程中可能会遇到那些难题,并对此做了心理准备。果然,我遇到了和大家一样的问题。一开始我按照老师提供的教程进行下载一切都很顺利,但下载好后新建虚拟机时没有Ubuntu64位的,只有32位的。我看有同学说如果不解决这个问题就会影响后续的操作。于是我开始上网找解决方案。但网上的大都是相同的简单的四句话叙述之前并没有深入了解过这些的我并不能很好的根据这些来解决我的问题。于是我就一点一点的进行搜索解决问题的方法。比如如何进入bios界面,我试了开机长按f2,和del都不行,最后在控制面板里修改里电脑的一些设置,再重启后长按shift,最后进入了bios界面并成功按照百度上的教程进行修改,将Intel Virtual Technology的disable改为了Enable。image

2.在进行虚拟机安装VirtualBox增强功能时,我按照老师的教程一步步走下来没有太大问题,但在终端输入命令时,失败了很多次,首先是粗心大意老是输错。之后发现不能完全照抄老师的内容。最后再输入密码时发现按键都不管用了,屏幕上一直无法显示。试了好几次都失败了,最后上网搜索了一下,原来是linux的安全策略。我在网上搜索了关于linux的安全策略的设置方法我想今后的学习过程中可能会用到。image

接下来的时间我会好好通过老师提供的资源进行学习,掌握好linux命令,好好看3/4/5/6/7/8节内容

第三节

用户管理

创建用户sudo adduser <***>

查看目录 ls /home

用户切换 su -l lilei

退出终端

退出当前用户跟退出终端一样可以使用 exit 命令或者使用快捷键 Ctrl+d。

用户组

查看文件 cat /etc/group | sort

这里 cat 命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用。 | sort 表示将读取的文本进行一个字典排序再输出

过滤 cat /etc/group | grep -E "shiyanlou"

删除用户sudo deluser lilei --remove-home

linux文件权限

查看文件权限

使用较长格式列出文件: ls -l

显示除了 '.'(当前目录),'..'上一级目录之外的所有包含隐藏文件(Linux 下以 '.' 开头的文件为隐藏文件) ls -A

可以同时使用 '-A' 和 '-l' 参数: ls -Al

查看某一个目录的完整属性,而不是显示目录里面的文件属性:ls -dl <目录名>

显示所有文件大小

显示所有文件大小,并以普通人类能看懂的方式呈现:ls -AsSh(其中小 s 为显示文件大小,大 S 为按文件大小排序)

变更文件所有者 image

存在的问题:输入代码时显示权限不够,但能得到想要的结果,即可以成功变更文件所有者。这个问题还有待解决。

修改文件权限image

方法1:

chmod 700 w(700:表示只有拥有者有权限,而所属用户组和其他用户都没有权限,7的来源如上图所示;w 为文件名)

方法2:

chmod go-rw w ('g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。)

作业截图

image

第四节

目录路径

进入上一级目录:cd ..

进入你的“home”目录:cd ~ (或cd /home/<你的用户名>)

image

使用pwd获取当前路径:pwd

绝对路径与相对路径

相对路径

相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点。

绝对路径

关于绝对路径,简单地说就是以根"/"目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin

分别以绝对路径和相对路径的方式进入 /usr/local/bin 目录:

绝对路径:cd /usr/local/bin
相对路径 cd ../../usr/local/bin

image

Linux 文件的基本操作

新建空白文件

因为在其他目录没有权限,所以需要先 cd ~ 切换回用户的 /home/shiyanlou 目录:

cd ~

touch test

新建目录

mkdir mydir

使用 -p 参数,同时创建父目录: mkdir -p father/son/grandson

复制文件

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

$ cp test father/son/grandson

复制目录

需要加上-r或者-R参数,表示递归复制。否则会出现错误。

cp ++-r++ father family

删除文件

删除一个文件或目录: rm test

使用-f参数可以强制删除: rm -f test

删除目录

rm -r family

移动文件与文件重命名

mv 源目录文件 目的目录:

mkdir Documents(创建一个文件夹命名为documents)

mv file1 Documents(移动file1到文件夹documents)

重命名文件

mv 旧的文件名 新的文件名:

mv file1 myfile

使用cat,tac和nl命令查看文件

(cat为正序显示,tac倒序显示)

加上-n参数显示行号: cat -n passwd

nl命令,添加行号并打印:-b : 指定添加行号的方式,主要有两种:

-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)

-b t:只列出非空行的编号并列出(默认为这种方式)

-n : 设置行号的样式,主要有三种:

-n ln:在行号字段最左端显示

-n rn:在行号字段最右边显示,且不加 0

-n rz:在行号字段最右边显示,且加 0

-w : 行号字段占用的位数(默认为 6 位)

作业:做一个眼睛,很有趣。

image

第五节

变量

变量创建

变量赋值

读取变量的值(关于变量名,并不是任何形式的变量名都是可用的,变量名只能是英文字母,数字或者下划线,且不能以数字作为开头)

环境变量

set,env,export三种命令的说明

1.set 显示当前Shell所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。

2.env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。

3.export 显示从Shell中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。

查看PATH环境变量的内容:echo $PATH

创建一个 Shell 脚本文件:vim hello_shell.sh

为文件添加可执行权限: chmod 755 hello_shell.sh

执行脚本: ./hello_shell.sh

创建一个 C 语言"hello world"程序: vim hello_world.c

使用 gcc 生成可执行文件: gcc -o hello_world hello_world.c
添加自定义路径到“PATH”环境变量:PATH=$PATH:/home/shiyanlou/mybin(这里一定要使用绝对路径)

变量的修改

${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据

${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据

${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据

${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据

${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串

${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串

变量删除

unset temp

搜索文件

1.whereis简单快速:whereis who

whereis只能搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。如果想要获得更全面的搜索结果可以使用locate命令。

locate快而全: locate /etc/sh

查找 /usr/share/ 下所有 jpg 文件:locate /usr/share/*.jpg

(注意要添加*号前面的反斜杠转义,否则会无法找到)

which小而精

它只从PATH环境变量指定的路径中去搜索命令: which man

find精而细

在指定目录下搜索指定文件名的文件: find /etc/ -name interfaces

与时间相关的命令参数

-atime 最后访问时间

-ctime 创建时间

-mtime 最后修改时间

作业:创造数字雨image