[TOC]
# Linux系统与Linux系统的各种发行版
> 很多小伙伴最开始接触Linux时都会有这样的疑问:"我该选择哪款Linux发行版?",这的确是个问题,因为Linux的发行版真的是非常非常多,之所以会这样可能最主要的因素是Linux的可定制性太强了(你也可以发行一款属于自己的Linux发行版,当然通常情况下这是没有必要的)。
为了帮助大家减少这样的疑惑,今天就给大家推荐几款Linux发行版系统,并给出推荐理由。
## 什么是Linux?
就像`Windows XP`,`Windows 7`,`Windows 10`和`Mac OS X`一样,`Linux`是一个操作系统。操作系统是一种软件,它管理与您的台式机或笔记本电脑相关的所有硬件资源。
简而言之,操作系统管理软件和硬件之间的通信。没有操作系统(通常称为“ OS”),您的应用软件将无法运行。
## 桌面环境选择困扰 KDE/XFCE/GNOME/...等等?
> 不同的桌面环境给用户展现的GUI(图形用户界面)常常千差万别,有的界面漂亮但资源消耗较多,而有的界面简陋但节省资源。
因此,选择操作系统前,我们有必要了解Linux系统都有哪些主流的桌面环境(简称DE -- Desktop Environment)。
### 比较主流的`桌面环境`实例
| 桌面环境| 介绍 | 优点 | 缺点 |
| :---- | :------------ | :--------- | :------|
| GNOME |GNOME(/ɡˈnoʊm/)是一个完全由自由软件组成的桌面环境。它的目标操作系统是`Linux`,但是大部分的BSD系统亦支持GNOME。 |1.简单易用, 2.可通过扩展插件支持非常丰富的功能 | 1.耗用内存、CPU资源较多; 2.插件安装与管理略显繁琐,需要通过网络浏览器下载。|
| Unity | 一款与Ubuntu分分离离的桌面环境,最初是2011年支持`Ubuntu`的商业公司`Canonical Ltd`开发的,但在2017年的`Ubuntu 17.10`放弃`Unity7`而选择了`GNOME`,但在2020年的`Ubuntu 20.04`又重新启用了`Unity7`,并且起名为`Ubuntu Unity`,而且令人惊讶的是让`Unity7`能够`起死回生`的开发者是一位`10岁`的少年,他的名字叫`Rudra Saraswat`。| 与GNOME一样的易用,少量的定制选项,让我们可以开箱即用。| 并没有解决GNOME的缺点,插件管理依然需要一个稍微繁琐的步骤来实现安装|
| Cinnamon | 与Unity一样,它也是GNOME的亲兄弟,`Linux Mint团队`因对GNOME3的改进无法接受,因而`Fork`出了一个分支,这就是`Cinnamon`,它的目标是让用户可以获得开箱即用用户界面。| 1.界面非常优美,简单易用; 2.内置配置管理器可以非常方便的管理`插件、主题、小工具等`; 2.丰富的选项让定制变得非常简单| 要说缺点就是BUG可能会稍多一些,而且2016年2月20日,未知黑客入侵Linux Mint网站也让用户对其安全性也比较担心(虽然此事与`Cinnamon`并无关系)。|
| MATE | `MATE`(/ˈmɑːteɪ/)桌面环境是 `GNOME 2` 的延续。| 1.轻量级的GNOME,资源占用少; 2.适合老电脑、配置低的电脑设备; | 正因为继承自`GNOME 2`,对于很多`GNOME 3`的新功能已经无法支持,但是主流系统还是会提供适配`MATE`桌面环境的系统,例如`Ubuntu MATE`|
| KDE Plasma | 一款庞大而复杂的桌面环境,使用Qt开发,开发社区一直以来都是非常活跃,并且没有想`GNOME`有很多的分支,界面开发接口非常统一。| 功能非常强大、高度可定制,更加现代化的用户界面。| 1.正因为功能强大,带来的复杂性也使得普通用户使用起来有些不知所措; 2.漂亮的外观也带来了更多的内存和CPU资源的占用。|
| Xfce | 一个轻量级的桌面环境,与GNOME一样,Xfce也基于GTK工具包开发,目标是快速轻巧,同时在视觉上仍然有吸引力并且易于使用。| 1. 轻量级; 2.Xfce遵守标准,尤其是在freedesktop.org上定义的标准; 3.内存和CPU资源占用非常少(非常适合老笔记本、嵌入式设备等)| 1.外观上有些简陋; 2.内置应用很少。|
| LXDE | 使用GTK工具包编写,旨在提供一个快速且节能的桌面环境。所以与Xfce非常相似。主要活跃地区为台湾地区。| 1.轻量级。| 1.外观简陋。|
| LXQt | 一款GTK和Qt融合的桌面环境,产生原因是`LXDE团队`不满于`GTK+3`的不向下兼容等诸多问题,因而转向了`Qt框架`。与`LXDE`一样,主要活跃地区为台湾地区。截至2020年4月24日的稳定版为`0.15.0`。| 1.轻量级。| 1.外观简陋。|
| DeepinDE| 深度系统(Deepin)的桌面环境,由中国的武汉深之度科技有限公司(简称`深度科技`)为主要开发厂商。它使用Qt开发。| 1.非常漂亮的用户界面; 2.内置很多Windows平台应用软件,更适合中国用户的使用习惯。| 1.资源占用较多; 2.使用过程中的BUG较多,不过都在被逐步解决。|
看完上面的简单介绍,相信大家对`桌面环境`有了简单的了解,简单总结如下:
### 漂亮的界面、电脑的硬件配置较高的推荐选择
- `KDE Plasma`
- `GNOME`及其分支
- `DeepinDE`
- 其他
### 配置较低的笔记本电脑或者嵌入式设备的推荐选择
- `Xfce`
- `LXDE`
- `LXQt`
## 了解Linux发行版
> 了解了桌面环境后,我们再了解一下主流的Linux发行版情况。通常一款Linux发行版都会携带默认的桌面环境(拥有更好的兼容性UI),当然我们也可以自己选择其他的桌面环境(可能会有一些UI界面的兼容性问题)。作为一名新手,最好在开始阶段选择一款默认的桌面环境入手,给自己一个好的开始。接下来我们来了解几款比较主流的Linux发行版。
### Linux发行版的分类
> Linux发行版虽然很多,但是可以根据`软件安装包`的格式进行大体上的分类,这样类似的系统使用方法都没有太大差异的。
比较常见的软件包有如下三种:
- `.deb`格式,使用此类安装包的系统通常派生自`Debian`系统,我们将这类系统划分为`Debian`系列。
- `.rpm`格式,使用此类安装包的系统通常派生自`Red Hat Linux`,我们将这类系统划分为`Red Hat`系列。
- `.pkg.tar.xz`格式,使用此类安装包的系统通常派生自`Arch Linux`,使用`Pacman`进行软件包管理,我们将这类系统划分为`Pacman`系列。
> 注: `AppImage`格式, 这类软件包是通用的软件包格式,通常可以直接在系统中运行的,并不会按此格式划分系统类别。除了上面这三种软件打包方式还有一些不是很通用的打包方式,作为新手我们可以了解这三种即可。
接下来我们简单的介绍一下这三种派系的信息:
- `Debian`系列(包管理命令:`apt`/`dpkg`): Debian GNU/Linux是一种强调使用自由软件的发行版,支持多种硬件平台。Debian及其派生发行版使用deb软件包格式,并使用`dpkg`及其前端作为软件包管理器。比较流行的发行版有:`Ubuntu`、`Debian`、`LinuxMint`、`elementary OS`、`MX Linux`、`Kali Linux`等。
- `Red Hat`系列(包管理命令:`yum`或`zypper`或`rpm`): `Red Hat Linux`和`SUSE Linux`是最早使用`RPM格式`软件包的发行版,如今RPM格式已广泛运用于众多的发行版。这两种发行版后来都分为商业版本和社区支持版本。`Red Hat Linux`的社区支持版本现称为`Fedora`,商业版本则称为`Red Hat Enterprise Linux`,`CentOS`是与`Red Hat Linux企业版`兼容分支版本,软件包不包含Red Hat的商业软件。比较流行的发行版有:`Fedora`、`CentOS`、`openSUSE`、
- `Pacman`系列(包管理命令:`pacman`): 基于`KISS原则`,针对`x86-64`的CPU做了优化,以`.pkg.tar.xz`格式打包并由包管理器进行跟踪维护,特别适合动手能力强的Linux用户。比较流行的发行版有:`Manjaro`、`Arch Linux`、`Artix Linux`等。
Linux的发行版真的很多,我们可以通过一张图来了解到底有多少种Linux发行版。
![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg)
## 选择一款Linux发行版
> 接下来给大家推荐十款比较主流的Linux发行版,希望大家可以选择一款适合自己的那一款。
### 新手入门
> 适合没有Linux系统使用经验但是想要学习使用Linux系统的用户,系统安装简单、日常使用与`Windows`、`MacOS`系统有些相似,因此可以上手即用。
**前提说明:**
1. 保持一颗`学习`的心态去学习使用Linux系统。
2. 遇到`软件问题`要学会使用`搜索引擎`查找解决办法。
3. `坚持`、`学习`。
> 最重要的一点:**不要认为使用`Linux`是一件很难的事情,`任何一个普通人`都可以学习和使用`Linux`系统。**
#### Ubuntu系统
- 默认桌面环境: `Unity`
- 使用推荐星数: ★★★★★
- 软件管理命令: `apt`、`snap`
- 官方网站地址: https://www.ubuntu.com/download/desktop
- 用 途: 桌面系统、服务器、嵌入式系统
- 特 点: 开箱即用、上手简单、完善的帮助文档、丰富的软件资源,非常活跃的用户社区。“ Ubuntu”是一个古老的非洲词,意为“对他人的人道”。Ubuntu发行版将Ubuntu的精神带入了软件世界。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/d/d3/Ubuntu_19.04_%22Disco_Dingo%22.png)
#### elementaryOS系统
- 默认桌面环境: GNOME分支`Pantheon`(中文翻译为`万神殿`)
- 使用推荐星数: ★★★★
- 软件管理命令: `apt`
- 官方网站地址: http://elementary.io/
- 用 途: 桌面系统
- 特 点: 用户界面与macOS类似,上手简单,对wine支持较好,但存在的BUG较多,软件兼容较差。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/2/24/Scrivania_di_elementary_OS_5.0_Juno.png)
#### Deepin深度操作系统
- 默认桌面环境: GNOME分支`DeepinDE`
- 使用推荐星数: ★★★★
- 软件管理命令: `apt`
- 官方网站地址: http://www.deepin.com/
- 用 途: 桌面系统
- 特 点: 漂亮的界面,自带国内软件使得非常适合国内新手普通用户使用。但稳定性还是不足,不适合做软件开发。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/thumb/9/94/Deepin_20_workflow.jpg/1920px-Deepin_20_workflow.jpg)
#### openSUSE系统
- 默认桌面环境: `KDE`、`GNOME`、`XFCE`、`LXDE`(选择安装)
- 使用推荐星数: ★★★★★
- 软件管理命令: `zypper`
- 官方网站地址: https://www.opensuse.org/
- 用 途: 桌面系统
- 特 点: 开箱即用,高度可定制界面,通过设置可以配置非常漂亮的界面效果。`Leap`稳定版非常适合软件开发使用,用户社区相对活跃。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/f/fd/OpenSUSE_15.1_KDE_default.png)
### MX Linux系统
- 默认桌面环境: `Xfce`
- 使用推荐星数: ★★★★★
- 软件管理命令: `apt`
- 官方网站地址: https://mxlinux.org/
- 用 途: 桌面系统
- 特 点: 界面简洁、上手简单,用户社区非常活跃,稳定性也非常好,非常适合新手入门。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/9/94/MX-19.png)
### Manjaro系统
- 默认桌面环境: `Xfce`、`KDE Plasma5`、`GNOME`
- 使用推荐星数: ★★★★★
- 软件管理命令: `pacman`
- 官方网站地址: https://manjaro.org/download/
- 用 途: 桌面系统
- 特 点: 高度可定制化,界面简洁,对不同桌面环境支持的都非常好。稳定性也比较好。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/a/a7/Manjaro_Kyria_KDE_19.0.2.png)
### Mint系统
- 默认桌面环境: `Cinnamon`
- 使用推荐星数: ★★★
- 软件管理命令: `apt`
- 官方网站地址: https://linuxmint.com/download.php
- 用 途: 桌面系统
- 特 点: 界面简洁、上手简单、稳定性也非常好,非常适合新手入门。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://www.linuxmint.com/pictures/screenshots/ulyana/cinnamon.png)
### 有Linux使用经验
> 适合有使用过一些Linux发行版经验的用户,需要了解一些基础的Linux系统知识。
#### CentOS系统
- 默认桌面环境: `GNOME`
- 使用推荐星数: ★★★
- 软件管理命令: `yum`、`rpm`、`dnf`
- 官方网站地址: https://www.centos.org/
- 用 途: x86服务器、桌面系统
- 特 点: 为x86刀片机服务器提供的开源系统版本,更常用于x86集群服务器系统。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/1/18/CentOS_8_0_1905_GNOME.png)
### 非常了解Linux
#### FreeBSD系统
- 默认桌面环境: 无(支持`GNOME`、`KDE`)
- 使用推荐星数: ★★★
- 软件管理命令: `pkg`
- 官方网站地址: https://www.freebsd.org/
- 用 途: 服务器、工作站、嵌入式以及防火墙系统
- 特 点: 安装无GUI界面,比较适合比较专业的开发人员,支持的硬件架构非常多,通常用于服务器、工作站、嵌入式以及防火墙系统。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/b/b1/VirtualBox_FreeBSD_12.1_07_05_2020_11_59_43.png)
#### Arch Linux系统
- 默认桌面环境: 无(需要自己安装)
- 使用推荐星数: ★★
- 软件管理命令: `pacman`
- 官方网站地址: https://www.archlinux.org/download/
- 用 途: 软件开发、服务器、桌面系统
- 特 点: 安装无GUI界面,适合比较非常了解Linux的开发人员使用,安装后无桌面环境,需要手工安装。
- 系统界面截图: 无
### 特殊用途的Linux发行版
#### Kali Linux系统
- 默认桌面环境: `GNOME`、`KDE Plasma`、`Xfce`
- 使用推荐星数: ★★★
- 软件管理命令: `apt`
- 官方网站地址: https://www.kali.org/downloads/
- 用 途: 网络安全技术学习、测试、开发,桌面系统
- 特 点: 面向网络专业方向开发定制的发行版,集成的软件工具集合非常丰富。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://www.kali.org/images/kali-desktop-gnome.jpg)
#### Puppy Linux系统
- 默认桌面环境: `JWM`
- 使用推荐星数: ★
- 软件管理命令: 独有的包管理器
- 官方网站地址: http://puppylinux.com/
- 用 途: 工具系统
- 特 点: `Puppy Linux`是专用于家庭用户计算机的独特Linux发行,体积非常小,非常轻量级,可以用于移动`U盘`的工具系统。
- 系统界面截图: ![如果看不到图,说明你无法访问**维基百科**](https://upload.wikimedia.org/wikipedia/commons/b/b6/Raspup.png)
#### CoreOS系统(加入Red Hat公司后叫做`Fedora CoreOS`)
- 默认桌面环境: 无
- 使用推荐星数: ★
- 软件管理命令: 无
- 官方网站地址: https://getfedora.org/en/coreos/download/
- 用 途: X86服务器集群
- 特 点: 一个基于Linux内核的`轻量级`操作系统,为了`计算机集群`的基础设施建设而生,专注于自动化、轻松部署、安全、可靠及可扩缩性。
- 系统界面截图: 无
还有很多Linux发行版,这里是永远列举不完的,以上仅列举了`https://distrowatch.com/`网站排名比较靠前的一部分Linux发行版系统。
## 总结
通过上面的介绍,每种发行版都有他们自己的特色,也正是这种差异性才让Linux在不断的成长,变得更好。
接下来就选择一款你比较喜欢的发行版,然后开始安装到你的电脑或者虚拟机(`VMWare`/`VirtualBox`)上吧。
---
- 前言
- 第一章 开始吧
- 1.0 选择适合你的Linux发行版
- 1.1 开始制作启动U盘
- 1.2 安装你的第一个Linux操作系统
- 1.3 安装Linux系统后要做的事情
- 1.4 什么是root用户
- 1.5 Linux下使用终端执行Shell命令
- 1.6 Linux软件安装方法介绍
- 1.7 Linux常用软件推荐
- *安装Manjaro发行版系统
- *安装Manjaro后要做的配置工作
- Flatpak安装软件方法
- 为什么Linux系统普及成都落后于Windows和MacOS?
- 第二章 Linux上的基础命令
- 2.0 环境变量及配置相关命令
- 2.1 文件及目录操作相关命令
- 2.2 文本处理相关命令
- 2.3 进程任务管理相关命令
- 2.4 用户管理相关命令
- 第三章 开发环境的部署
- 3.0 学习Shell编程
- 3.1 环境变量配置实例_如何配置JDK环境
- Python编程环境
- C语言编程环境
- 第四章 深入理解Linux系统
- 关于Linux不得不说的CopyLeft