Linux 系统管理与运维 - 第 3 课:主流发行版介绍
学习目标
完成本课学习后,你将能够:
- 理解 什么是Linux发行版(Distro)以及其诞生的意义。
- 区分 Debian/Ubuntu 与 RHEL/CentOS/Fedora 这两大主流阵营的主要特点。
- 熟悉 Ubuntu、CentOS 和 Fedora 这三个最具代表性的发行版的基本信息与使用场景。
- 应用 简单的命令来查看和识别当前(或目标)系统的发行版信息。
- 初步思考 如何根据个人或企业需求选择合适的Linux发行版。
核心概念
1. 什么是Linux发行版?
严格来说,“Linux”本身只是操作系统的内核(Kernel),它负责管理硬件、进程、内存等最底层的工作。但光有内核,普通用户无法使用,就像一辆只有发动机的裸车。
发行版(Distribution) 就是基于Linux内核,搭配了各种软件(如桌面环境、Shell、系统工具、应用程序)、包管理器和默认配置,组装成的“整车”。不同的团队或公司用不同的理念来组装这辆“车”,因此诞生了众多的发行版,以满足不同用户的需求(如桌面办公、服务器、嵌入式设备等)。
2. 发行版的两大主流家族
尽管有数百种发行版,但它们大多源自几个“祖先”,形成了两大主要分支:
-
Debian 家族:
- 特点:以稳定、安全著称,拥有庞大的软件仓库和社区。其包管理格式为
.deb。 - 代表:Ubuntu 是最著名的后代,它基于 Debian,但更新更积极,对用户更友好,是桌面领域最流行的发行版。许多服务器也使用 Ubuntu LTS(长期支持)版。
- 包管理命令:
apt,dpkg。
- 特点:以稳定、安全著称,拥有庞大的软件仓库和社区。其包管理格式为
-
Red Hat (RHEL) 家族:
- 特点:商业支持导向,在企业服务器领域占据主导地位,强调稳定性、认证和长期支持。其包管理格式为
.rpm。 - 代表:
- Red Hat Enterprise Linux (RHEL): 商业版,需付费订阅。
- CentOS: 曾是RHEL的免费、完全兼容的社区重构版(现已转向 CentOS Stream,成为RHEL的上游开发版)。
- Fedora: 由Red Hat赞助的社区项目,是最新技术的试验田,功能最新但支持周期短(约13个月),适合开发者和技术爱好者。
- 包管理命令:
yum(CentOS 7及以前, Fedora旧版),dnf(CentOS 8+, Fedora新版)。
- 特点:商业支持导向,在企业服务器领域占据主导地位,强调稳定性、认证和长期支持。其包管理格式为
代码示例
以下是一些可以在Linux系统中运行的命令,用于查看系统发行版信息。
# 1. 最通用、推荐的命令,查看完整的发行版信息
# 输出通常包含发行版名称、版本号等详细信息。
$ cat /etc/os-release
# 输出示例(在一台 Ubuntu 22.04 系统上):
# NAME="Ubuntu"
# VERSION="22.04.3 LTS (Jammy Jellyfish)"
# ID=ubuntu
# ID_LIKE=debian
# PRETTY_NAME="Ubuntu 22.04.3 LTS"
# VERSION_ID="22.04"
# ...
# 2. 使用 lsb_release 命令(如果系统已安装)
# 提供基于 Linux Standard Base 的发行版信息。
$ lsb_release -a
# 输出示例(在一台 CentOS 7 系统上):
# LSB Version: :core-4.1-amd64:core-4.1-noarch
# Distributor ID: CentOS
# Description: CentOS Linux release 7.9.2009 (Core)
# Release: 7.9.2009
# Codename: Core
# 3. 简单查看内核版本(这不是发行版信息,但常一起使用)
$ uname -r
# 输出示例:5.15.0-78-generic
# 4. 在Red Hat系发行版上,还可以查看 /etc/redhat-release 文件
$ cat /etc/redhat-release
# 输出示例:CentOS Linux release 7.9.2009 (Core)
代码解释:/etc/os-release 是目前所有主流发行版都支持的标准文件,是查询系统身份的首选方法。其他命令是不同发行版历史遗留的或特定工具,/etc/os-release 具有更好的可移植性。
实践练习
-
识别你的系统(或虚拟机) 如果你当前使用的是Linux系统(或通过虚拟机运行),请打开终端,运行
cat /etc/os-release命令,并粘贴输出的前三行。如果你使用的是Windows或macOS,可以在网上任意一个在线Linux终端(如 CoCalc, JSLinux)中尝试此命令。 -
命令对比 假设你需要安装一个名为
htop的系统监控工具。- 请写出在 Ubuntu 系统上使用的完整安装命令。
- 请写出在 CentOS 7 系统上使用的完整安装命令。
- (提示:回忆“核心概念”部分提到的包管理器)
-
研究与选择 “Arch Linux” 和 “openSUSE” 也是两个著名的发行版。请用搜索引擎简要了解一下:
- Arch Linux 的主要理念和适合的人群是什么?
- openSUSE 有哪些主要版本?它们分别面向什么场景?
常见错误
- 混淆内核与发行版:说“我安装了GNU/Linux”比说“我安装了Linux”更精确,因为强调了用户空间工具的重要性。在日常交流中,大家默认“Linux”指代一个完整的发行版。
- 认为所有Linux命令都通用:虽然核心命令(如
ls,cd)大多相同,但系统管理命令(特别是包安装、服务管理)在不同家族间差异很大。例如,服务管理在 CentOS 7 用systemctl,但在更早的系统中可能是service命令。 - 忽视版本支持周期:特别是服务器环境,必须清楚所选发行版版本的支持周期。例如,使用已停止支持(EOL)的系统版本会带来严重的安全风险。Ubuntu LTS 有5年支持, CentOS Stream 有约5年,而普通Fedora只有约13个月。
- 将 CentOS 与 RHEL 完全等同:虽然历史渊源深厚,但自 CentOS 8 后,CentOS 已转变为 CentOS Stream,它是 RHEL 的上游开发版,意味着它比 RHEL 更新,但稳定性可能略低于 RHEL。这是选择发行版时需要了解的重要变化。
小结
本课我们学习了:
- Linux发行版是打包好的、可直接使用的操作系统,它基于Linux内核,并集成了各种软件和工具。
- 两大主流家族是Debian系(代表:Ubuntu) 和 Red Hat系(代表:RHEL, CentOS, Fedora),它们主要在包管理、软件仓库和默认哲学上有所不同。
cat /etc/os-release是识别系统发行版信息的最佳通用命令。- 选择发行版需考虑使用场景(桌面/服务器)、稳定性需求、社区支持和学习成本。初学者从 Ubuntu 或 Fedora 开始是非常好的选择。
下一课预告:我们将动手实践,学习如何安装一个Linux系统(以Ubuntu Server和CentOS为例),并完成初始配置。这是成为一名Linux运维工程师的第一步!