Linux发展史与安装
一、Linux系统的安装
1、安装方式
目前安装操作系统方式有2种:真机安装、虚拟机安装。
真机安装:使用真实的电脑进行安装,像安装windows操作系统一样,真机安装的结果就是替换掉当前的windows操作系统;
虚拟机安装:通过一些特定的手段,来进行模拟安装,并不会影响当前计算机的真实操作系统。
如果是学习或者测试使用,强烈建议使用虚拟机安装方式。
2、虚拟机软件(了解)
什么是虚拟机?
虚拟机,有些时候想模拟出一个真实的电脑环境,碍于使用真机安装代价太大,因此而诞生的一款可以模拟操作系统运行的软件。
虚拟机目前有2个比较有名的产品:vmware出品的vmware workstation、oracle 出品的virtual Box。
3、虚拟机的安装
3.1、VMware Workstation的安装(重点)
①打开安装程序
②进行下一步开始安装
③同意许可协议
④根据需要决定是否需要更改软件的安装位置
点击下一步:
⑤用户体验设置
⑥快捷方式创建的步骤
⑦点击安装按钮
⑧点击完成
⑨最重要的地方,在安装完之后需要检查,检查虚拟机软件是否有安装2个虚拟网卡
如果没有这2个网卡的话,则会影响后期windows系统与虚拟机其中操作系统之间的相互通信(比如共享网络、文件传输等)。
3.2、Virtual Box的安装(了解)
①运行安装程序
②点击下一步
③选择性更改安装的位置
④安装的选项设置
⑤断网警告,点击是即可
⑤点击安装按钮
⑥完成
⑦检查是否有对应的虚拟网卡存在
两个软件安装完成之后在桌面上都有对应的快捷方式
4、Linux版本的选择
版本选择:CentOS 6.5 X64 【镜像一般都是xxx.iso文件】
问题:为什么不选择最新版的7.x版本?
6.x目前依然是主流
6.x的各种系统操作模式是基础
7.x实际上也支持大多数6.x的操作形式
官网:https://www.centos.org/
从官网下载得到的镜像文件
5、新建虚拟机
5.1、使用VMware Workstation(重点)
①点击“文件”菜单,选择“新建虚拟机…”选项,选择“自定义”点击下一步
②选择兼容性,默认即可,直接下一步
③选择镜像文件的时候选择“稍后….”,点击下一步
④选择需要安装的操作系统
⑤选择虚拟机的名称(名称将会后期出现在左侧)和设置虚拟系统的安装位置
⑥cpu设置
⑦分配内存
⑧选择网络类型,选择nat即可
NAT:配置好之后windows即可和虚拟机进行互相通信,但是教室内的其他同学是访问不了的,只能自己可以访问虚拟机中的操作系统;
桥接:配置好之后其他同学也可以访问你的虚拟机操作系统;
⑨后续默认的步骤,直接下一步
⑩点击完成
5.2、使用Virtual Box(了解)
①点击左上角的新建按钮
②选择操作系统,由于centos在列表中是没有的,所以选择centos对应的主线redhat 32位
③选择内存大小
④创建磁盘,默认即可
⑤选择磁盘类型,默认即可
⑥选择磁盘大小的分配方式,方式为动态分配即可
⑦设置磁盘的位置和大小确认
6、Linux操作系统安装
6.1、使用VMware workstation进行安装(重点)
a. 由于之前没有指定iso镜像文件,因此此处需要先指定系统镜像文件
b. 运行此虚拟机
注意:如果开机之后鼠标点进去虚拟机出不来,则可以按下组合快捷键“ctrl+alt”。
如果启动之后出现类似提示框(不是错误框)则勾选不再提示,并且确定即可:
如果在启动时候出现下述错误,则说明电脑没有开启cpu的 虚拟化,如果需要开启,则需要重启计算机,并且在开启的时候进入主板的BIOS设置开启虚拟化,然后保存设置重启电脑:
c. 选择升级/安装已经存在的系统(通过↑/↓方向键)按下回车
d. 在检测到光盘(disc)之后选择跳过完整性检测直接进行安装
随后提示不支持的硬件,忽略直接下一步
e. 点击下一步
f. 选择在安装过程中使用的语言
g. 选择键盘类型,美国式英语
h. 选择存储设备类型
i. 对磁盘进行空白盘的初始化操作,选择“是,忽略所有的数据”
j. 设置网卡自动连接,依次应用 – 关闭 – 下一步
k. 设置时区,默认亚洲/上海
l. 设置密码,设置好了之后下一步
m. 使用全部的磁盘空间来安装Linux系统,点击下一步
n. 选择安装的Linux类型
o. 选择开发 – 开发工具,前面复选框√,点击下一步
p. 等待软件包的安装
等待完成,点击重新引导
q. 重新引导之后点击“前进”
r. 在协议许可界面选择同意,然后点击前进
s. 创建普通用户帐号(可选),然后点击前进
t. 时间设置,设置好之后前进
u. 关于kdump,之后点击完成
v. 登录界面
如果需要使用非列出的用户进行登录则点击其他,否则双击列出的用户名即可,随后输入密码。
w. 使用root帐号登录之后的提示
x. 看到的桌面
6.2、使用virtual Box安装Linux(了解)
a. 选择需要安装的系统镜像
b. 启动虚拟机
注意:如果鼠标在虚拟机中想退出到windows,则需要按下ctrl+alt组合键(空格右侧的)
c. 后续全部操作按照上面6.1章节中的步骤继续安装即可。
7、终端(重点)
问题:以后Linux服务器都是纯命令行的形式,在桌面模式下是否有命令输入的地方?
答:有,可以在终端中输入命令。
打开方式:在任意空白处,右键鼠标,选择“在终端中打开”即可
8、使用VMware备份操作系统
在vm中备份方式有2种:快照、克隆。
快照:又称还原点,就是保存在拍快照时候的系统的状态(包含了所有的内容),在后期的时候随时可以恢复。【侧重在于短期备份,需要频繁备份的时候可以使用快照,做快照的时候虚拟的操作系统一般处于开启状态】
①选择“虚拟机”菜单,点选“快照”中的“拍摄快照”
在对话框中填写基本的信息,之后点“拍摄快照”
②对于快照进行管理(恢复、删除)
对快照的管理需要在“虚拟机”-“快照”-“快照管理器”中进行管理
克隆:就是复制的意思。【侧重长期备份,做克隆的时候是必须得关闭】
路径:先关机 – 右键需要克隆的虚拟机 – 管理 – 克隆
克隆好的服务器相关密码帐号等信息与被克隆的系统一致。
二、Linux系统的文件
1、文件与文件夹(目录)
什么是文件?
文件可以分为一般文件和可执行文件。
一般文件特点其打开(编辑器打开)后会看到里面有内容,或者可以往其中写内容。
可执行文件在Windows下一般为exe、msi、bat等等后缀,其特点就是双击之后可以运行。
什么是文件夹?
用于存储文件(当然也可以存储文件夹)的夹子称之为文件夹。
为什么先讲文件?
1:日常运维工作中,有近一半以上的工作内容、精力其实都是对文件的操作。
2: Linux 本身也是一个基于文件形式表示的操作系统。
Linux一切皆文件。
①在windows是文件的,在Linux下同样也是文件;
②在windows不是文件的,在Linux下也是以文件的形式存储的(进程等);
日常学习中和日常工作中,对于文件的操作的都有哪些种类?
创建文件、删除文件、修改文件、打开文件、复制文件、移动文件、重命名文件等。
2、Linux系统的文件目录结构
目录结构:
Bin:全称binary,含义是二进制。该目录中存储的都是一些二进制文件,文件都是可以被运行的。
Dev:device,该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows下的分配盘符)。
Etc:该目录主要存储一些配置文件。
Home:表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。
Proc:process,表示进程,该目录中存储的是Linux运行时候的进程, 此目录下不能建立和删除文件;(某些文件可以修改)。
Root:该目录是root用户自己的家目录。
Sbin:全称super binary,该目录也是存储一些可以被执行的二进制文件,但是必须得有super权限的用户才能执行。
Tmp:表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。
Usr:存放的是用户自己安装的软件。类似于windows下的program files。
Var:存放的程序/系统的日志文件的目录。
Mnt:当外接设备需要挂载的时候,临时挂载用的设备挂载点;(如磁盘分区,网络共享)
后续的作为了解即可:
Boot:系统在启动时需要加载的文件存储目录;
Lib:library,函数库目录,专门存储计算机系统在启动时以及其他软件在运行时需要加载的函数库文件;
Lost+found:Linux也很难避免不出现断电、宕机等等情况,如果断电有些文件可能还并没有完全保存好,那么此时对应文件就会存储在该目录中,下次启动时候可以再去使用;
三、指令与选项
什么是Linux的指令?
指在Linux终端(命令行)中输入的内容就称之为指令
。
一个完整的指令的标准格式:Linux通用的格式
#指令主体(空格) [选项](空格) [操作对象]
一个指令可以包含多个选项
操作对象也可以是多个
例如: 需要让张三同学帮忙去楼下小卖铺买一瓶农夫山泉水和清风餐巾纸,在这个指令中“买东西”是指令的主体,买的水和餐巾纸是操作的对象,农夫山泉、清风是操作的选项。
四、基础指令(重点)
1、ls指令
含义:ls (list)列出,列表
用法1:#ls
含义:列出当前工作路径下的文件/文件夹名称
用法2:#ls 路径
关于路径:
路径分为绝对路径和相对路径。
绝对路径:不管当前工作路径是在哪,目标路径都会从“/”磁盘根下开始。
相对路径:除绝对路径之外的路径称之为相对路径,相对路径得有一个相对物(当前工作)。
只要看到路径以“/”开头则表示该路径是绝对路径。
除了以“/”开头的路径称之为相对路径。
含义:使用ls命令列出指定路径下的文档名称。
案例:当前登录的是root用户,使用ls加路径的语法,列出“yw03”用户家目录的文档结构。
#ls /home/yw03 [绝对路径]
绝对路径:是从盘符开始的路径,形如 C:\windows\system32\cmd.exe
相对路径:是从当前路径开始的路径,假如当前路径为C:\windows
要描述上述路径,只需输入system32\cmd.exe
相对路径:/root/桌面/【当前路径】
#ls …/…/home/yw03 [相对路径]
用法3:#ls 选项 路径
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。
常见的语法:
#ls -l 路径
#ls -la 路径
选项解释:
-l:表示list,表示以详细列表的形式进行展示
-a:all,表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
案例:使用ls -l来列出“/”下的结构
#ls -l /
通过-l选项可以列出除了文档名称以外的其他信息(包含权限、创建日期/时间等等)
案例:使用ls -la来列出“/”下的目录结构
#ls -la /
说明:
a. 在Linux中隐藏文档一般都是以“.”开头
b. “.”表示当前路径,“…”表示上级路径(相对当前路径)
c. 注意第一列的第一个字符,上述图中只有一个不是以“d”开头,其他均为“d”打头,该位表示文档类型,“d”表示文件夹,“-”表示是文件
d. 文件&文件夹在ls结果中所表示的颜色是不一样的,文件夹的颜色一般都是蓝色的,文件一般都是黑色的(所说的颜色均是指在终端中的默认颜色)
扩展命令
指令:ll
该命令等价于“ls -l”
用法4:#ls -lh 路径
含义:列出指定路径下的文档结构,以指定的方式进行显示。
选项说明:
-l:表示以列表的形式进行显示
-h:表示以较高可读性(文档大小)的形式进行展示
案例:使用上述的语法,列出用户自己家目录中的结构信息。当前登录用户为root用户
#ls -lh /root
需要注意:单位不一定是k,系统会在获取其大小之后为文档找到一个合适的单位,因此单位可能是“K”、“M”、“G”、“T”其中之一。
2、pwd指令
用法:#pwd (print working directory,打印当前工作目录)
含义:告诉用户当前所在的路径
案例:使用pwd指令输出当前的工作路径
#pwd
3、cd指令
命令:#cd (change directory,改变目录)
作用:用于切换当前的工作目录的
语法:#cd [路径]
说明:
路径是可以写也可以不写的,但是含义必定是不一样的,写路径的话则表示切换到指定路径,如果不写表示切换到当前登录用户的家目录中。
补充:
在Linux中有一个特殊的符号“~”,表示当前用户的家目录。
切换的方式:#cd ~ 【表示切换到当前用户家目录中】
案例:使用cd指令将当前的工作路径切换到yw03用户的家目录中。
#cd /home/yw03
4、mkdir指令
指令:mkdir (make directory,创建目录)
语法1:#mkdir 路径
含义:使用mkdir创建目录
案例:使用该命令去去创建“/usr/local/dt123”和“/usr/local/dt012/123”
#mkdir /usr/local/dt123
#mkdir /usr/local/dt012/123
执行失败,因为dt012是不存在的,不能隔级创建目录。
从上述的案例中可以得知,语法1形式只能创建一层目录(从已经存在的目录位置开始往后数),对于创建多层不存在的路径目录会报错,并且无法创建。
语法2:#mkdir -p 路径
含义:用于创建多层不存在的路径,主要是补充语法1【-p:表示parent】
案例:完善刚才语法1中创建失败的命令
#mkdir -p /usr/local/dt012/123
语法3:#mkdir [-p] 路径1 路径2 路径3 ….
含义:表示创建多个目录
案例:在当前用户家目录中创建a、b、c三个目录(同级)
#mkdir a b c
5、touch指令
指令:touch
作用:创建文件
语法:#touch 文件路径 [文件路径2 文件路径3 …]
~ 表示当前用户家目录
案例:当前为root用户,使用touch创建/root/aaa.txt
#touch ~/aaa.txt
案例:创建root用户d目录下的a.txt、b.txt、c.txt文件(d目录必须存在)
#touch /root/d/a.txt /root/d/b.txt /root/d/c.txt
问题:如果文件的路径其中包含了不存在文件夹能否创建成功呢?
注意:在这种情形下是不支持类似于mkdir指令的-p选项的。
6、cp指令
指令:cp (copy,复制)
作用:复制文件/文件夹到指定的位置
语法:#cp [-r] 被复制的文档路径 文档被复制到的路径
选项:
-r:recursion,递归,表示将文件夹中所有的下属文件/文件夹都复制。【如果是使用cp指令来复制文件夹,则-r就不是选项,而是必须项】
注意:复制过程中文档的名称是不变的。
案例:复制root下的aaa.txt文件到/home家目录中。
#cp aaa.txt /home
案例:复制/root/d目录,到yw03家目录中去。
#cp -r /root/d /home/yw03/
针对文件夹的复制需要进行递归操作,因此需要进行命令修改,添加-r选项。
7、mv指令
指令:mv (move,移动,剪切)
作用:移动文档到 新的位置
语法:#mv 需要移动的文档路径 需要保存的位置路径
注意:
a. mv与cp指令不一样,不管是针对文件还是针对文件夹都不需要加类似-r的选项。
b. 在移动的过程中文档名称名称是不变的
案例:移动文件,将yw03家中的aaa.txt移动到磁盘根下
#mv /home/yw03/aaa.txt /
案例:
补充:在Linux中重命名的命令也是mv,语法和移动语法一样。区别在于重命名的话一般是路径不变,名称改变。
重命名案例:
8、rm指令
指令:rm (remove,移除、删除)
作用:移除/删除文档
语法:#rm [选项] 需要移除的文档路径 [路径2 路径3 …]
选项:
-f:force,强制删除,不提示是否删除
-r:recursion,表示递归【如果操作对象是目录,则-r必须】
案例:需要删除/aaa.txt文件,并且不需要确认
#rm -f /bbb.txt
案例:使用rm指令删除/d目录,并且也不需要提示
#rm -f /a
问题:请问在Linux终端中输入“rm -rf /”会怎么样?
rm -rf / --no-preserve-root
答:从语法上看,其语法符合语法要求,但是这个指令是比较危险的,不建议执行。在有的Linux分支中设有安全模式,误操作的时候会有提示。该操作指令需要谨慎执行。
删除目录:rmdir
可以使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败
删除文件:rm
可通过rm删除文件或目录。使用rm命令要小心,因为删除文件不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。
参数:
-i 以进行交互方式执行
-f 强制删除,忽略不存在的文件无需提示
-r 递归删除目录下面的内容,删除文件夹是必须加的参数
9、vim指令
指令:vim (vim是一款文本编辑器)
语法:#vim 文件的路径
作用:打开一个文件(可以不存在,也可以存在)
案例:用vim打开一个已经存在的文件(root/install.log)
#vim /root/install.log
提示:在vim中退出已经打开的文件,输入“:q”【q表示quit】
案例:使用vim打开aaaa.txt
#vim aaaa.txt
10、输出重定向(实用)
场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
:覆盖输出,会覆盖掉原先的文件内容
:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
语法:#需要执行的有输出的指令 输出重定向符号 输出到的文件路径
说明:文件路径中的文件可以是不存在的文件(文件路径要符合touch创建的要求)。
案例:使用覆盖输出重定向
#ls -lah / > /root/result.txt
案例:使用追加重定向
#ls -lah / >> /root/result.txt
11、cat指令
作用1:cat有直接打开一个文件的功能。只看不用编辑
语法1:#cat 文件的路径
案例:使用cat打开/root/result.txt
#cat /root/result.txt
该指令执行完成之后不需要像vim一样进行“:q”的退出。
作用2:cat还可以对文件进行合并
语法2:#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
案例:将root/result.txt和root/resulttt.txt进行合并