windows安装linux虚拟机多少内存(linux系统安装步骤)

1. 安装Linux系统对硬件有什么要求?

**

很多初学者在安装 Linux 系统时,都对自己的电脑配置存在质疑,担心其是否能够满足安装 Linux 的要求。本节就从 CPU、内存、硬盘、显卡等这些方面,详细介绍一下安装 Linux 系统的最低配置。
windows安装linux虚拟机多少内存(linux系统安装步骤)

基于硬件的快速发展以及操作系统核心功能的增加,势必将淘汰掉一批老旧的电脑,它们已经没有能力负荷新的操作系统了。举个最直观的例子,奔腾-III 之前的硬件配置可能已经无法再搭载如今的 Linux 发行版了,而且这部分电脑很可能因为电子零件老化等因素,导致其在运行过程出现无法解释的宕机情况。

不过,Linux 系统所需的硬件配置也不需要太高端,大体来说,生产期限在 5 年以内的电脑,基本上就可以满足初学者的日常使用,其最基本的硬件配置只需要符合如下的标准即可:

CPU:Intel i3 及以上系统的 CPU 就可以,完全能够支撑系统的正常运行;

内存:当然是越大越好,事实上,在 Linux 服务器中内存远比 CPU 要重要的多,因为如果内存不够大,就不得不使用硬盘中的内存置换空间(又称 swap 空间),但我们都知道,CPU从内存中读取数据要比从硬盘中读取数据的效率高得多,所以内存太小很可能会影响系统整体的性能。通常情况下,对于小型的 Linux 服务器来说,建议至少要有 512MB 以上的内存。

硬盘:考虑到数据量和数据存取频率的不同,对于硬件的要求也不相同。举个例子,如果是一般的小型服务器,其硬盘容量大于 20GB 就基本够用了,但是如果你的服务器是用来作为备份或者作为小企业的文件服务器,那么可能就要考虑选用适当的磁盘阵列(RAID)模式了。

简单理解,磁盘阵列(RAID)就是利用硬件技术将多个硬盘整合成一个大硬盘的方法,系统中也会看到最后被整合的大硬盘。

显卡:如果你安装的 Linux 系统不需要 X Windows 桌面环境,那么显卡就显得不是那么重要了;反之,则你的显卡最好能够拥有 32MB 以上的内存,否则运行桌面环境的效率会很低。

网卡:是 Linux 服务器上最重要的组件之一,目前绝大多数的主板都内建有 10/100/1000Mbps 的超高速以太网卡。需要注意的是,不同网卡的功能多少会有些差异,较好的网卡通常 Linux 驱动程序做的也会比较好,使用起来会比较顺畅。总的来说,如果你的服务器需要进行频繁的网络读写(I/O)功能,尽量选择 Intel(因特)、boradcom(博通)等这些大公司的网卡。

光盘、键盘和鼠标:这些硬件都是非必备的,能用就行。

表 1 罗列出了几个常见应用领域中有关搭载 Linux 系统硬件配置的基本要求。

表 1 不同应用领域搭载 Linux 的硬件配置要求

Linux系统 硬件配置要求

不含 X Window 桌面环境的小型服务器 主要用途:作为 IP 分享器或在小型企业中作为非图形接口的小型主机。

CPU:i3 及以上;

内存:至少 512MB,但大于 1GB 更为稳妥;

网卡:一般的以太网卡即可;

显卡:只要是能够被 Linux 捕捉到的显卡即可,例如 NVIDIA 或者 ATI 等主流的显卡都可以。

硬盘:20GB 及以上均可。

含 X Window桌面环境的 Linux 系统 用途:初学者学习 Linux 使用。

CPU:i3 及以上;

内存:至少要大于 1GB;

网卡:普通的以太网卡即可;

显卡:使用 256MB 以上内存的显卡;

硬盘:越大越好。

中型及以上 Linux 服务器 用途:作为中小型企业或者学校的 FTP/WWW 等网络服务器。

CPU:i5 及以上;

内存:最好大于 4GB;

网卡:使用 Intel 或 broadcom 这些知名品牌的网卡;

显卡:如果可能会用到图形功能,最好使用具有 64MB 内存的显卡;

硬盘:越大越好,如果有必要的话,可以使用磁盘阵列。

注意,如果是企业使用,建议不要自行组装,可以购买商用服务器,因为商用服务器已经通过制造商的散热、稳定性等测试,更加适合企业使用。

另外,除了表 1 外,各个出版 Linux 发行版的开发商在推出该版本时,都会对其默认可以支持的硬件配置做详细的说明,所以还可以到各个相关的 Linux 发行版的网站去查询。

综合以上所讲的内容,可以得出这样一个结论,即对于初学者来说,如今市面上 99% 的电脑都能满足大家学习 Linux 的需求,因此读者可以放心给自己的电脑安装 Linux 系统。

**

2. 虚拟机是什么

**

所以,只要我们在电脑(PC 或笔记本等)上安装好虚拟机软件,就可以模拟出来若干台相互独立的虚拟 PC 设备,每一个都如何一台真实的计算机。在此基础上,我们可以给每台虚拟的 PC 设备安装指定的操作系统,这样就可以实现在一台电脑上同时运行多个操作系统。

另外,还可以将这些虚拟的系统连成局域网,用来部署网站集群架构等更深层次的运维技术,这样的虚拟技术,有兴趣的读者可以搜索“集群”做详细了解。

图 1 Windows 10系统安装WMware Workstation虚拟软件窗口

如图 1 所示,展示的是在 Windows 10 桌面操作系统上安装的虚拟机软件 VMware Workstation(简称 VMware),这里通过配置 VMware 虚拟出了 2 台 PC 设备,且分别在这 2 台 PC 上安装了 Linux 系统(CentOS 发行版)和 Windows 系统。这 2 个虚拟机同时在一台电脑上独立运行,几乎互不干扰,并且可以同在一个局域网内,还可以互相通信。

经过前面对虚拟机软件的介绍,相信读者应该知道了虚拟机软件到底是什么了吧。下面,笔者介绍一些网友常用的虚拟机软件,如表 1 所示。

表 1 常用的虚拟机软件及选择建议

虚拟机软件 特点及选择建议

VM(VMware Workstation) 工作站版虚拟化软件,简单、易用,适合用于搭建学习环境。

KVM/Xen Linux 的虚拟化 服务器级虚拟化软件,适合企业虚拟化应用,不适合用于搭建学习环境。

Virtual PC MAC 平台可以用

VirtualBox 开源的虚拟机软件

**

3. VMware虚拟机安装Linux系统(详解版)

**

许多新手连 Windows 的安装都不太熟悉,更别提 Linux 的安装了;即使安装成功了,也有可能破坏现有的 Windows 系统,比如导致硬盘数据丢失、Windows 无法开机等。所以一直以来,安装 Linux 系统都是初学者的噩梦。

然而,通过虚拟机技术很容易冲破这种困境。由于虚拟机安装 Linux 所有的操作(例如硬盘分区、删除或修改数据)都是在虚拟硬盘中进行,因此不会对现有的数据和系统造成任何损失,即使安装失败了也无所谓。

所谓虚拟机(virtual machine),就是通过软件技术虚拟出来的一台计算机,它在使用层面和真实的计算机并没有什么区别。

常见的虚拟机软件有 VMware Workstation(简称 VMware)、VirtualBox、Microsoft Virtual PC 等,其中 VMware 市场占有率最高,所以本节以 VMware 为例来讲解 Linux 的安装。

VMware 可以使你在一台计算机上同时运行多个操作系统,例如同时运行 Windows、Linux 和 Mac OS。在计算机上直接安装多个操作系统,同一个时刻只能运行一个操作系统,重启才可以切换;而 Vmware 可以同时运行多个操作系统,可以像 Windows 应用程序一样来回切换。

站在使用者的角度讲,虚拟机系统和真实安装的系统是一样的,甚至可以在一台计算机上将几个虚拟机系统连接为一个局域网或连接到互联网。

在虚拟机系统中,每一台虚拟产生的计算机都被称为“虚拟机”,而用来存储所有虚拟机的计算机则被称为“宿主机”。例如,你的 Windows 系统就是宿主机,而 VMware 安装的 Linux 则为虚拟机。

VMware下载和安装

绝大多数初学者使用的是 Windows,所以本节只讲解在 Windows 下安装 VMware 和 Linux。

VMware 有两个版本,分别是 VMware Workstation Pro 和 VMware Workstation Player。

Player 是免费版本,只能用于非商业用途,适合个人学习。

Pro 是商业版本,功能最强大,付费以后才能使用。

我们从互联网上找到了一个带密钥的 Pro 版本,并放在了百度网盘,大家可以无限制的使用:

https://pan.baidu.com/s/1XXhFFh0Fx0vzvcd1A543Yg,提取码:2o19(下载得到的压缩包中含有 VMware 安装所需的秘钥,亲测有效,可放心使用)

VMware 对计算机的硬件配置要求比较高,配置低了虚拟机会很慢,甚至不能运行。理论上,配置越高越好,现在主流的计算机配置都可以达到运行 VMware 的要求。千万不要用多年珍藏的老古董来运行 VMware,我保证你将会失去耐心。

由于 VMware 的安装过程比较简单,与安装普通软件无异,因此不再过多阐述。这里假设读者已经下载并已安装好 VMware,接下来直接开始使用 VMware 安装 Linux 系统。

VMware 安装 Linux 系统

启动 VMware,进入其主界面,如图 1 所示。

图 1 VMware 主界面

图 2 虚拟机设置向导界面

图 3 安装客户机操作系统

32 位 CentOS 6.5 映像下载:http://archive.kernel.org/centos-vault/6.5/isos/i386/CentOS-6.5-i386-bin-DVD1.iso

64 位 CentOS 6.5 映像下载:http://archive.kernel.org/centos-vault/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso

图 4 选择客户机操作系统

继续“下一步”,进入“命名虚拟机”界面,给虚拟机起一个名字(如“CentOS 6.5”),然后单击“浏览”按钮,选择虚拟机系统安装文件的保存位置,如图 5 所示。

图 5 命名虚拟机

单击”下一步”按钮,进入”指定磁盘容量”界面。默认虚拟硬盘大小为 20GB(虚拟硬盘会以文件形式存放在虚拟机系统安装目录中)。虚拟硬盘的空间可以根据需要调整大小,但不用担心其占用的空间,因为实际占用的空间还是以安装的系统大小而非此处划分的硬盘大小为依据的。

比如你设定了硬盘容量为 20GB,但是安装 Linux 只用了 4GB,那么实际上只会在你的 Windows 分区中占用 4GB 的空间,占用空间会随着虚拟机系统使用的空间增加而增加。

此“指定磁盘容量”界面保持默认设置即可,如图 6 所示。

图 6 指定磁盘容量界面

接下来进入“已准备好创建虚拟机”界面,确认虚拟机设置,不需改动则单击”完成”按钮,开始创建虚拟机,如图 7 所示。

图 7 已准备好创建虚拟机

这里,我们可以略做调整,单击”自定义硬件”按钮进入硬件调整界面。为了让虚拟机中的系统运行速度快一点,我们可以选择”内存”调整虚拟机内存大小,但是建议虚拟机内存不要超过宿主机内存的一半。CentOS6.x 最少需要 628MB 及以上内存分配,否则会开启简易安装过程,如图 8 所示。

图 8 定制硬件

选择“新CD/DVD(IDE)”可以选择光驱配置。如果选择“使用物理驱动器”,则虚拟机会使用宿主机的物理光驱;如果选择“使用 ISO 映像文件”,则可以直接加载 ISO 映像文件,单击“浏览”按钮找到 ISO 映像文件位置即可,如图 9 所示。

图 9 光盘配置

选择”网络适配器”将进入 VMware 新手设置中最难以理解的部分——设置网络类型,如图 10 所示。此设置较复杂,不过网络适配器配置在虚拟机系统安装完成后还可以再行修改。

图 10 网络适配器配置

VMware 提供的网络连接有 5 种,分别是”桥接模式”、“NAT 模式”、“仅主机模式”、“自定义”和”LAN 区段”:

桥接模式:相当于虚拟机的网卡和宿主机的物理网卡均连接到虚拟机软件所提供的 VMnet0 虚拟交换机上,因此虚拟机和宿主机是平等的,相当于一个网络中的两台计算机。这种设置既可以保证虚拟机和宿主机通信,也可以和局域网内的其他主机通信,还可以连接 Internet,是限制最少的连接方式,推荐新手使用。

仅主机模式:宿主机和虚拟机通信使用的是 VMware 的虚拟网卡 VMnet1,但是这种连接没有 NAT 服务器为虚拟机提供路由功能,所以仅主机网络只能连接宿主机,不能连接局域网,也不能连接 Internet 网络。

自定义网络:可以手工选择使用哪块虚拟机网卡。如果选择 Vmnet1,就相当于桥接网络;如果选择 VMnet8,就相当于 NAT 网络。

LAN 区段:这是新版 VMware 新增的功能,类似于交换机中的 VLAN(虚拟局域网),可以在多台虚拟机中划分不同的虚拟网络。

以上对于 VMware 网络的描述,读者看完了可能会有点困惑。简单总结—下,在 VMware 安装好后,会生成两个虚拟网卡 VMnet1 和 VMnet8 (在 Windows 系统的”网络连接”中可以査看到),如图 11 所示。

图 11 虚拟网卡

其中常用设置有以下 2 种:

需要宿主机的 Windows 和虚拟机的 Linux 能够进行网络连接,使用”桥接模式”(桥接时,Linux 也可以访问互联网,只是虚拟机需要配置和宿主机 Windows 同样的联网环境);

需要宿主机的 Windows 和虚拟机的 Linux 能够进行网络连接,同时虚拟机的 Linux 可以通过宿主机的 Windows 连入互联网,使用”NAT模式”。

图 12 VMware 启动 Linux 系统

图 13 虚拟机设置

经过以上几步,我们就成功地用 VMware 虚拟机安装好了 Linux 系统。

**

4. 为什么建议使用虚拟机来安装Linux?

**

其实,学习 Linux 最简单、最实用的环境就是虚拟机环境(例如,通过 VMware Workstation 软件学习),这样说的原因有如下几点。

利用虚拟机软件搭建 Linux 学习环境简单,容易上手,最重要的是利用虚拟机模拟出来的 Linux 与真实的 Linux 几乎没有区别,而购买服务器动则就要一两万元人民币,不是一般的初学者所能承受的,且声音很大,也很费电。

如果用 PC 和笔记本搭建 Linux(包括双系统共存方式),那就完全是 Linux 环境了,这样做不但加大了你的学习难度(例如,没法用 Word 等记笔记,以及正常浏览网页),也与实际的工作环境相差很远,而用虚拟机软件来搭建环境是最接近企业工作环境的。

企业里运维人员的工作环境绝大多数都是在 Windows 桌面系统下通过 SSH 工具(SecureCRT/Xshell)远程连接千百里之外的 Linux 服务器进行管理和维护的。

搭建 Linux 集群等大规模环境,有时需要同时开启几台虚拟机(每台虚拟机仅需 256~512MB 内存、6~8GB 的硬盘空间即可),此时如果是用服务器或者自己的电脑安装 Linux,则很难满足学习要求,购买多台服务器就更不现实了。

事实上,仅仅利用价值四五千元人民币的个人笔记本电脑,就可以轻松实现搭建中小规模 Linux 集群架构的学习需求了。这里所谓的集群,简单理解,就是将多个计算机做为一个整体,向用户提供服务。

用虚拟机学习,如果电脑配置高一点,那么可以同时开启多个 Linux 虚拟机学习,上班、回家的路上,带着笔记本电脑即可随时学习,如果是多台真实电脑和服务器设备,就没法移动了。当然有读者会说可以放机房里,但这个代价也太大了。大多数学习者很难有这样的资源。

使用虚拟机系统环境,我们可以对虚拟系统随意进行任何的设置和更改操作,甚至可以格式化虚拟机系统硬盘,进行重新分区等操作,而且完全不用担心会丢掉有用的数据,因为虚拟机是系统上运行的一个虚拟软件,对虚拟机系统的任何操作都相当于是在操作虚拟机的虚拟机设备和系统,不会影响电脑上的真实数据。

综上所述,笔者给大家的建议就是,踏实地用虚拟机学习就足够了,不要为自己设置太多的限制和门槛,否则可能会影响学习 Linux 的进度,从而丧失学习 Linux 的兴趣。

初学者应选择哪款虚拟机软件?

如果你使用的是 Windows 系统,那么笔者推荐使用 VMware WorkStation;如果使用的是 MacOS 平台,则推荐选择 Virtual PC;如果使用的是 CentOS 系统,则推荐选择 VMware(Linux 版本)或者 KVM。

**

5. Linux远程管理协议(RFB、RDP、Telnet和SSH)

**

提到远程管理,通常指的是远程管理服务器,而非个人计算机。个人计算机可以随时拿来用,服务器通常放置在机房中,用户无法直接接触到服务器硬件,只能采用远程管理的方式。

远程管理,实际上就是计算机(服务器)之间通过网络进行数据传输(信息交换)的过程,与浏览器需要 HTTP 协议(超文本传输协议)浏览网页一样,远程管理同样需要远程管理协议的支持。

目前,常用的远程管理协议有以下 4 种:

RDP(remote desktop protocol)协议:远程桌面协议,大部分 Windows 系统都默认支持此协议,Windows 系统中的远程桌面管理就基于该协议。

RFB(Remote FrameBuffer)协议:图形化远程管理协议,VNC 远程管理工具就基于此协议。

Telnet:命令行界面远程管理协议,几乎所有的操作系统都默认支持此协议。此协议的特点是,在进行数据传送时使用明文传输的方式,也就是不对数据进行加密。

SSH(Secure Shell)协议:命令行界面远程管理协议,几乎所有操作系统都默认支持此协议。和 Telnet 不同,该协议在数据传输时会对数据进行加密并压缩,因此使用此协议传输数据既安全速度又快。

RDP 对比 RFB

RDP 协议和 RFB 协议都允许用户通过图形用户界面访问远程系统,但 RFB 协议倾向于传输图像,RDP 协议倾向于传输指令:

RFB 协议会在服务器端将窗口在显存中画好,然后将图像传给客户端,客户端只需要将得到的图像解码显示即可;

RDP 会将画图的工作交给客户端,服务器端需要根据客户端的显示能力做适当的调整。

因此,完成相同的操作,使用 RFB 协议传输的数据量会比 RDP 大,而 RDP 对客户端的要求比 RFB 更苛刻,RFB 适用于瘦客户端,而 RDP 适用于低速网络。

Telnet 对比 SSH

Telnet 协议和 SSH 协议都是命令行远程管理协议,有共同的应用领域,常用于远程访问服务器。

相比 Telnet 协议,SSH 协议在发送数据时会对数据进行加密操作,数据传输更安全,因此 SSH 协议几乎在所有应用领域代替了 Telnet 协议。

在一些测试、无需加密的场合(如局域网),Telnet协议仍常被使用。

Linux远程管理软件

基于以上 4 种远程管理协议,Linux 远程管理服务器的软件可分为以下 3 种:

类似于 VNC(基于 RFB 协议)的图形远程管理软件,如 Xmanager、VNC VIEWER 以及 TightVNC 等;

基于 SSH 协议的命令行操作管理;

类似 Webmin 的基于浏览器的远程管理,此种管理方式只提供简单的管理窗口,可用的管理功能有限;

介于安全性和稳定性的考虑,大部分的服务器都舍弃图形管理界面而选择命令行界面,因此远程管理 Linux 服务器常使用基于 SSH 协议的命令行管理方式。

**

6. Linux远程管理工具(PuTTY和SecureCRT)

**

在使用远程管理工具之前,应先设置宿主机 Windows 与虚拟机 Linux 能够连通。这里要注意 VMware 的网卡设置,Linux 中更改网络设置可以使用 ifconfig 和 setup 命令,若还是无法进行远程连接,要么就是 SSH 服务没有启动,要么就是 Linux 防火墙默认屏蔽了 SSH 服务的端口。

另外还要记住一点,远程连接管理服务器与本地操作服务器是一样的,没有任何区别。

PuTTY远程管理工具

这是一款完全免费的 Windows 远程管理客户端工具,体积小,操作简单,不需要安装(下载后即可使用)。

对于经常到客户公司做技术支持和维护的朋友来说,该工具的使用相当方便,只要随身携带 U 盘,即可实现”一盘在手,随处登录”。

PuTTY 包含很多组件,比如说:

PuTTY(远程登录的客户端)。

PSCP(SCP 客户端,在命令行下通过 SSH 协议复制文件)。

PSFTP(SFTP 的命令行客户端,类似于 FTP 的文件传输,基于 SSH 协议)。

PuTTYtel(仅仅是一个 Telnet 客户端)。

Plink(命令行工具,可用于执行远程M务器上的命令)。

Pageant(PuTTY、PSCP、Plink 的 SSH 认证代理)。

PuTTYgen(用来生成 RSA 和 DSA 密钥的工具)。

尽管有如此多的组件,但对初学者来说,用的最多的主要是 PuTTY。下载 PuTTY 并双击 putty.exe 文件,就会出现如图 1 所示的配置界面。

图 1 PuTTY配置界面

“端口”根据使用的协议有所区别(选择不同的“连接类型”选项,端口会自动变化),一般选择“SSH”或“Telnet”,这取决于 Linux 服务器所提供的服务。

建议选择 SSH,Telnet 服务密码会被明文传输,安全性较差,目前大多数 UNIX/Linux 系统默认禁用 Telent。

如果想保存会话方便下次连接,则可以在”保存的会话”文本框中输入一个名称,单击”保存”按钮即可把这次的连接配置保存起来。

设置完成后,单击”打开”按钮,就会出现如图 2 所示的操作界面。

图 2 PuTTY作界面

如果希望 PuTTY 支持中文显示,则修改的方法是:在”窗口->转换”的右侧设置项”远程字符集”下拉列表框中选择”UTF-8″,如图 3 所示。

图 3 PuTTY支持中文显示

SecureCRT远程管理工具

SecureCRT 是一款功能强大的远程管理工具,该软件将 SSH(Secure Shell)的安全登录、数据传送性能与 Windows 终端仿真提供的可靠注、可用性和可配置性融于一身。

图 4 SecureCRT 使用

SecureCRT 默认不支持中文(中文会显示为乱码),一种解决方法是:在建立连接后,进入“选项”菜单,选择“会话选项”,在“终端->仿真”的右侧设置项“终端”下拉列表框中选择“Xterm”,勾选“ANSI颜色”复选框支持颜色显示,单击“确定”按钮,如图 5 所示。

图 5 SecureCRT 仿真设置

在“终端->外观”的右侧设置项“当前颜色方案”下拉列表框中选择“Traditional (传统)”,“标准字体”和“精确字体”均选择中文字体,如新宋体或楷体,并确保“字符编码”选择为“UTF-8”(CentOS 默认使用的中文字符集为 UTF-8),取消勾选“使用 Unicode 线条绘制字符”复选框,保存即可,如图 6 所示。

图 6 SecureCRT 外观设置

除 PuTTY 和 SecureCRT 之外,还有一款笔者很喜欢用的 Windows 与 Linux 之间的文件共享工具 WinSCP,可以方便地实现两个系统之间的文件传输,有兴趣的读者也可以自行下载安装体验。

**

7. Linux文件目录结构一览表

**

学习 Linux,不仅限于学习各种命令,了解整个 Linux 文件系统的目录结构以及各个目录的功能同样至关重要。

使用 Linux 时,通过命令行输入 ls -l / 可以看到,在 Linux 根目录(/)下包含很多的子目录(称为一级目录),例如 bin、boot、dev 等。同时,各一级目录下还含有很多子目录(称为二级目录),比如 /bin/bash、/bin/ed 等。Linux 文件系统目录总体呈现树形结构,/ 根目录就相当于树根。

由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。

为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。

FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr 和 /var)的用途。发布此标准的主要目的就是为了让用户清楚地了解每个目录应该存放什么类型的文件。

Linux 根目录(/)

FHS 认为,Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:

所有目录都是由根目录衍生出来的;

根目录与系统的开机、修复、还原密切相关;

因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件,如表 1 所示。

表 1 Linux一级目录及其作用

一级目录 功能(作用)

/bin/ 存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行

/boot/ 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等

/dev/ 设备文件保存位置

/etc/ 配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等

/home/ 普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming

/lib/ 系统调用的函数库保存位置

/media/ 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘

/mnt/ 挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区

/misc/ 挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的

/opt/ 第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件

/root/ root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下

/sbin/ 保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看

/srv/ 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据

/tmp/ 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空

FHS 针对根目录中包含的子目录仅限于表 1,但除此之外,Linux 系统根目录下通常还包含表 2 中的几个一级目录。

表 2 其他一级目录及功能

一级目录 功能(作用)

/lost found/ 当系统意外崩溃或意外关机时,产生的一些文件碎片会存放在这里。在系统启动的过程中,fsck 工具会检查这里,并修复已经损坏的文件系统。这个目录只在每个分区中出现,例如,/lost found 就是根分区的备份恢复目录,/boot/lost found 就是 /boot 分区的备份恢复目录

/proc/ 虚拟文件系统。该目录中的数据并不保存在硬盘上,而是保存到内存中。主要保存系统的内核、进程、外部设备状态和网络状态等。如 /proc/cpuinfo 是保存 CPU 信息的,/proc/devices 是保存设备驱动的列表的,/proc/filesystems 是保存文件系统列表的,/proc/net 是保存网络协议信息的…

/sys/ 虚拟文件系统。和 /proc/ 目录相似,该目录中的数据都保存在内存中,主要保存与内核相关的信息

Linux /usr目录

usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。

Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ C:\Program files\ 两个目录的综合体。

FHS 建议,/usr 目录应具备表 3 所示的子目录。

表 3 /usr 子目录及其功能

子目录 功能(作用)

/usr/bin/ 存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行

/usr/sbin/ 存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。

/usr/lib/ 应用程序调用的函数库保存位置

/usr/XllR6/ 图形界面系统保存位置

/usr/local/ 手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置

/usr/share/ 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录

/usr/src/ 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中

/usr/include C/C 等编程语言头文件的放置目录

Linux /var 目录

/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表 4 所示的这些子目录。

表 4 /var子目录及其功能

/var子目录 功能(作用)

/var/lib/ 程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在

/var/lib/mysql/ 目录中

/var/log/ 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages,

/var/log/wtmp 等。

/var/run/ 一些服务和程序运行后,它们的 PID(进程 ID)保存位置

/var/spool/ 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。

/var/www/ RPM 包安装的 Apache 的网页主目录

/var/nis和/var/yp NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录

/var/tmp 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除

根据以上各表列举的各目录及作用,如果我们要做一些实验和练习,需要创建一些临时文件,应该保存在哪里呢?

答案是用户的主目录或 /tmp/ 临时目录。但是要小心有些目录中不能直接修改和保存数据,比如 /proc/fn/sys/ 目录,因为它们是保存在内存中的,如果在这里写入数据,那么你的内存会越来越小,直至死机;/boot/ 目录也不能保存额外数据,因为 /boot/ 目录会单独分区作为启动分区,如果没有空闲空间,则会导致系统不能正常启动。

总之,Linux 要在合理的目录下进行操作和修改。

**

8. 什么是挂载,Linux挂载详解

**

前面讲过,Linux 系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。在 Linux 看来,任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。

因此产生的问题是,当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。

如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。

挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。

纠正一个误区,并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录。

举个例子,我们想通过命令行访问某个 U 盘中的数据,图 1 所示为 U 盘文件目录结构和 Linux 系统中的文件目录结构。

图 1 U 盘和 Linux 系统文件目录结构

图 1 中可以看到,目前 U 盘和 Linux 系统文件分属两个文件系统,还无法使用命令行找到 U 盘文件,需要将两个文件系统进行挂载。

接下来,我们在根目录下新建一个目录 /sdb-u,通过挂载命令将 U 盘文件系统挂载到此目录,挂载效果如图 2 所示。

图 2 文件系统挂载

可以看到,U 盘文件系统已经成为 Linux 文件系统目录的一部分,此时访问 /sdb-u/ 就等同于访问 U 盘。

前面讲过,根目录下的 /dev/ 目录文件负责所有的硬件设备文件,事实上,当 U 盘插入 Linux 后,系统也确实会给 U 盘分配一个目录文件(比如 sdb1),就位于 /dev/ 目录下(/dev/sdb1),但无法通过 /dev/sdb1/ 直接访问 U 盘数据,访问此目录只会提供给你此设备的一些基本信息(比如容量)。

总之,Linux 系统使用任何硬件设备,都必须将设备文件与已有目录文件进行挂载。

发表评论

登录后才能评论