1 Linux基础
先安装VM + Linux,再讲课
约翰·冯·诺依曼计算机体系由5部分组成:输入设备、运算器、控制器、存储器、输出设备。
1.1 操作系统是什么
操作系统(Operating System,OS)也是一个软件。它是硬件基础上的第一层软件(也就是最底层的软件),是硬件和软件沟通的桥梁。
1.2 常见的操作系统
1. Windows,PC端用的最多
2. Linux,移动端用的最多,服务器用的也多
1.3 Linux操作系统
linux操作系统诞生于1991年10月5日,是仿照Unix操作系统制作的。Linux通常是后端服务器采用的操作系统。就是开发人员开发好的软件,就需要运行在服务器上,服务器的操作系统就是Linux
1.4 环境准备
为了学习Linux,我们不可能直接在你的PC机上安装个Linux,我们只需要在VM上安装Linux即可
安装完之后看起来是这个样子:
1.4.1 安装VM
1.4.2 在VM上安装Cent OS 7
1.4.3 安装final shell
1.5 路由网关
1.6 NAT地址
NAT(Network Address Translation)意为“网络地址转换”。简单来说,NAT模式的就是虚拟机通过宿主机上网和交换数据的,此模式下虚拟机无法与实际网络直接通信。NAT网络类型的模型图如下:
注意:局域网的私有地址段无法在互联网使用。局域网的私有地址段有以下3类:
A. 10.0.0.0
B. 172.16.0.0
C. 192.168.0.0
所以推荐大家使用NAT模式,这样在一个局域网内的多个虚拟机就不会出现IP冲突的问题了。
在NAT模式下,虚拟机的网卡连接到宿主机的VMnet8上。
此时系统的VMWare NAT Service服务就充当了路由器,负责将虚拟机发到VMnet8的包进行地址转换之后发到实际的网络上,再将实际网络上返回的包进行地址转换后通过VMnet8发送给虚拟机。
VMWare DHCP Service负责为虚拟机分配IP地址。
1.7 桥接模式
桥接模式可以简单理解为虚拟机通过宿主机的网卡架设了一座桥,从而连入到了实际的网络中。因此虚拟机可以被分配与宿主机相同网段的独立IP,所有网络功能和网络中的真实机器几乎一样。在桥接模式下虚拟机就像一台真正的计算机一样,它会直接连接到实际的网络。桥接模式的模型图如下:
桥接模式的优点是一旦为虚拟机分配了IP地址,IP地址就固定下来了。缺点是可能会和其他物理主机的IP冲突,并且在和宿主机交换数据时,都会经过路由器,还有,在桥接模式下,换了网络环境后会受到影响,需要在新的网络环境下重新配置虚拟机的IP地址,让虚拟机的IP地址处于新网络环境的同一个网段上。总之有点麻烦,所以不推荐大家使用桥接模式。
1.8 Host-only
在Host-only模式下,虚拟机的网卡会连接到宿主机的VMnet1上,但宿主机并不为虚拟机提供任何路由服务,因此虚拟机只能和宿主机进行通信,不能连接到实际网络上,即虚拟机无法上网。我们用不到这种模式。
1.9 系统分区
系统分区是使用分区编辑器(partition editor)在磁盘上划分几个逻辑部分。
1.9.1 分区类型
A. 主分区:最多只能有4个
B. 扩展分区:最多只能有1个;主分区加扩展分区最多有4个;不能写入数据,只能包含逻辑分区
C. 逻辑分区
下面以Windows系统为例,观察分区的关系:
1.9.2 格式化
格式化又称逻辑格式化,它是根据用户选定的文件系统(FAT32,NTFS),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。
简单来说格式化就像生活中整理柜子一样,如果要修整柜子的布局,则要把柜子中的物件全部清空,然后在修整完柜子的内部结构以后,再把物件放回去。
所以格式化的主要目的是为了改变文件系统。格式化的目的并不是为了清空数据,清空数据只是副作用。
1.9.3 文件系统
文件系统 | 特点 |
FAT16 | 支持的分区大小最大为2g(已淘汰) |
FAT32 | 支持的分区大小最大为16T,但是单个文件最大只能是4个g |
NTFS | Windows目前最先进的文件系统,支持更大的分区大小,更大的单个文件大小 |
EXT4 | Cent OS 6 中使用的文件系统 |
XFS | Cent OS 7 中使用的文件系统 |
在linux中,可以通过df -hT来查看文件系统的类型
1.9.4 i节点
针对于linux而言,格式化主要做2件事:
☐ A. 根据文件系统把整个分区,分成等大小的数据块,每个数据块默认4kb(block)
☐ B. 制作分区列表
可以通过以下命令看到块的大小
xfs_growfs /dev/sda1
如下,有3个文件,在磁盘中的存放情况是这样的
此时如果用户删除了2.txt,则变成这个样子:
此时如果有一个大小为31kb的文件要存入,也是能存放成功的!文件在分区中存放的特点是可以不用连续存放。如此就可以充分利用磁盘碎片,如下:
问题是,当我们要读取foo.txt文件的时候,操作系统怎么知道要读取那些块呢?这就需要分区列表了!如下图所示
由此也引出一个新的概念:i节点(index node),这个i节点大家就当做是文件的名字,且i节点是唯一的!在后面学习到软连接与硬链接的区别时(这是一个面试题,但是问的不多),还是会用到i节点的。
1.10 硬件设备名
linux中一切皆文件。无论是一个音频文件,还是一个游戏,还会一个硬件(硬盘、显卡、cpu),在linux操作系统中,都是以文件的形式体现的
硬件 | 设备文件名 |
IDE硬盘 | /dev/hd[a-d] |
SATA硬盘 | /dev/sd[a-p] |
光驱 | /dev/cdrom或/dev/sr0 |
sata接口:
其中/dev/sda1就代表第一块硬盘的第一个分区,同理/dev/sda2就代表第一个硬盘的第二个分区,而/dev/sdb1就代表第二块硬盘的第一个分区。
1.11 挂载点
Linux中的挂载点,就等同于Windows中的盘符
挂载点,就是Linux操作系统给一个外部设备绑定到一个在自己管理之下的某个文件夹的名字。比如我们在电脑上使用移动硬盘,Windows就会自动挂载为一个盘符,而Linux则需要手动挂载到某个目录下。
1.12 Linux目录结构
Linux系统一切目录的起点都是从“/”开始的,如下:
☐ / 是Linux系统的根目录,是最高层目录,此目录没有父目录。对比Windows,等价于我的电脑
☐ etc 是系统存放配置文件的目录,不建议在此目录下存放可执行文件
☐ usr/local 应用程序存放目录
☐ root 是系统管理员root的home目录。每个用户都有home目录,超级管理员的home目录为/root。相当于windows中的桌面,也就是一登录就能看到的文件夹
☐ 以上的建议并不是强制的