如果你是第一次接触 Linux,面对 CentOS 和 Ubuntu 这两个名字可能会感到困惑。别担心,这篇文章用最直白的语言,帮你搞清楚它们到底有什么区别,以及新手该选哪个。
一、它们是什么关系?
简单来说,CentOS 和 Ubuntu 都是 Linux 操作系统 ,就像 Windows 10 和 Windows 11 都是 Windows 一样。它们都能用来办公、学习、搭建网站、运行程序,但出身不同,性格也不一样。

CentOS:来自"红帽家族"
CentOS 的全称是 Community Enterprise Operating System (社区企业操作系统)。它是基于 Red Hat Enterprise Linux(RHEL) 改造而来的免费版本。
你可以这样理解:RHEL 是收费的企业版系统,CentOS 是社区把它"山寨"成了免费版。去掉红帽的商标,重新编译一遍,就得到了 CentOS。所以 CentOS 骨子里带着企业基因------追求稳定、不爱折腾、一用就是很多年。
Ubuntu:来自"Debian 家族"
Ubuntu 是基于 Debian 发展而来的,由一家叫 Canonical 的公司维护。创始人是南非的 Mark Shuttleworth,他曾是个宇航员。
Ubuntu 的理念是 "让 Linux 对普通人友好"。它更注重易用性,界面漂亮,对新手的文档和帮助特别多。
一句话记住区别:
- CentOS = 企业里的老实员工,稳重可靠,不爱变
- Ubuntu = 学校里的活跃学生,新潮友好,爱尝试新事物
二、最直观的区别:安装软件的方式不同
这是初学者最先遇到的问题。在 Windows 里,我们下载 .exe 文件双击安装。在 Linux 里,安装软件主要靠命令行。
CentOS 用 yum/dnf
CentOS 使用 .rpm 格式的软件包,管理工具叫 yum (CentOS 7)或 dnf(CentOS 8 以后)。
bash
# 安装软件(以安装 nginx 为例)
sudo yum install nginx # CentOS 7
sudo dnf install nginx # CentOS 8+
# 卸载软件
sudo yum remove nginx
sudo dnf remove nginx
# 更新所有软件
sudo yum update
sudo dnf update
# 搜索软件
yum search nginx
dnf search nginx
Ubuntu 用 apt
Ubuntu 使用 .deb 格式的软件包,管理工具叫 apt。
bash
# 安装软件
sudo apt install nginx
# 卸载软件(保留配置文件)
sudo apt remove nginx
# 卸载软件(连配置文件一起删)
sudo apt purge nginx
# 更新软件列表(先做这个,再升级)
sudo apt update
# 升级已安装的软件
sudo apt upgrade
# 搜索软件
apt search nginx
对比表:常用命令速查
| 你想做什么 | CentOS | Ubuntu |
|---|---|---|
| 安装软件 | sudo yum install 软件名 |
sudo apt install 软件名 |
| 卸载软件 | sudo yum remove 软件名 |
sudo apt remove 软件名 |
| 更新软件列表 | sudo yum check-update |
sudo apt update |
| 升级所有软件 | sudo yum update |
sudo apt upgrade |
| 搜索软件 | yum search 关键词 |
apt search 关键词 |
新手提示 :记住
yum对应 CentOS,apt对应 Ubuntu。就像记住"苹果手机的充电线不能给安卓用"一样简单。
三、界面差异:一个默认没图形,一个默认有图形
CentOS:默认是黑屏命令行
当你安装完 CentOS,开机后很可能看到的是一个黑黑的命令行界面,只有光标在闪。这是因为 CentOS 主要面向服务器,默认不安装图形界面。
如果你想用图形界面,需要手动安装:
bash
# 安装 GNOME 桌面
sudo yum groupinstall "GNOME Desktop"
# 设置开机启动图形界面
sudo systemctl set-default graphical.target
Ubuntu:默认就是漂亮的桌面
Ubuntu 桌面版安装完后,直接就是一个漂亮的图形界面,有开始菜单、任务栏、文件管理器,跟 Windows 很像。对新手非常友好,插上鼠标就能用。
当然,Ubuntu 也有服务器版(Server 版),那个默认也是命令行,适合装在没有显示器的机器上。
四、配置文件放的地方不一样
这是让很多初学者头疼的问题。同样的功能,两个系统的配置文件路径可能完全不同。
网络配置
| 项目 | CentOS | Ubuntu |
|---|---|---|
| 配置文件位置 | /etc/sysconfig/network-scripts/ifcfg-eth0 |
/etc/netplan/01-netcfg.yaml |
| 重启网络 | sudo systemctl restart network |
sudo netplan apply |
CentOS 的网络配置长这样:
bash
# 编辑网卡配置
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 内容示例:
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
Ubuntu 的网络配置长这样(20.04 以后):
bash
# 编辑网络配置
sudo vi /etc/netplan/01-netcfg.yaml
# 内容示例:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8]
新手提示:Ubuntu 的 Netplan 用 YAML 格式,要注意缩进(空格不能错),否则配置会失效。
五、防火墙设置不同
CentOS 用 firewalld
bash
# 启动防火墙
sudo systemctl start firewalld
# 开机自启
sudo systemctl enable firewalld
# 开放 80 端口(网页服务)
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
# 查看已开放的端口
sudo firewall-cmd --list-all
Ubuntu 用 ufw(更简单)
bash
# 启用防火墙
sudo ufw enable
# 开放 80 端口
sudo ufw allow 80/tcp
# 查看状态
sudo ufw status
# 关闭防火墙
sudo ufw disable
对比:ufw 的命令明显更短更简单,适合新手快速上手。firewalld 功能更强大,但命令也更复杂。
六、同样的软件,名字可能不一样
这是最坑人的地方。你按照教程操作,发现服务启动不了,很可能是因为 软件名字不同。
| 软件功能 | CentOS 里的名字 | Ubuntu 里的名字 |
|---|---|---|
| Apache 网页服务器 | httpd |
apache2 |
| MySQL 数据库 | mysqld |
mysql |
| 网络服务 | network |
networking |
示例:启动 Apache 服务
bash
# CentOS
sudo systemctl start httpd
sudo systemctl enable httpd
# Ubuntu
sudo systemctl start apache2
sudo systemctl enable apache2
新手提示:如果教程里用的命令在你的系统上报错,先检查一下软件名字是不是不一样。
七、安全机制:SELinux vs AppArmor
这是两个系统的"保安系统",但工作方式不同。
CentOS 用 SELinux
SELinux 是 Security-Enhanced Linux 的缩写,功能非常强大,但也比较复杂。它会给每个文件和程序打上"标签",严格限制谁能访问什么。
常见问题:你明明给了文件 777 权限,程序还是无法访问。这很可能是 SELinux 在阻止。
bash
# 查看 SELinux 状态
getenforce
# 临时关闭(重启后恢复)
sudo setenforce 0
# 永久关闭(需要编辑配置文件)
sudo vi /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=disabled
Ubuntu 用 AppArmor
AppArmor 相对简单,基于文件路径来限制程序行为。默认开启,但规则比较宽松,一般不会给新手造成困扰。
bash
# 查看 AppArmor 状态
sudo aa-status
新手建议:如果你刚学 Linux,Ubuntu 的 AppArmor 更省心。CentOS 的 SELinux 虽然更安全,但配置不当会导致各种奇怪问题。
八、发布周期:多久更新一次?
| 项目 | CentOS | Ubuntu |
|---|---|---|
| 新版本间隔 | 2-3 年 | 6 个月(常规版)/ 2 年(LTS 版) |
| 支持周期 | 10 年 | 9 个月(常规版)/ 5 年(LTS 版) |
| 软件版本 | 较旧但稳定 | 较新 |
解释:
- CentOS 像老式诺基亚手机,系统更新慢,但稳定耐用
- Ubuntu 像智能手机,经常更新,功能新鲜,但偶尔会有小毛病
建议:如果是学习用,装 Ubuntu LTS 版本(如 22.04 LTS、24.04 LTS),既能体验新功能,又有长期支持。
九、新手该选哪个?
选 Ubuntu,如果你:
- 第一次学 Linux,想要图形界面和友好的体验
- 想快速搭建开发环境(Python、Node.js 等)
- 喜欢看丰富的中文教程和社区讨论
- 打算做个人网站、学习编程
选 CentOS/Rocky/AlmaLinux,如果你:
- 公司要求用 RHEL 兼容的系统
- 需要运行特定的企业软件(如某些财务软件只支持 RHEL)
- 追求极致稳定,系统装好后几年不想动
- 打算考 Linux 运维认证(如 RHCE)
特别提醒 :传统 CentOS 已经停止更新,新项目建议选 Rocky Linux 或 AlmaLinux 作为替代,它们和 CentOS 几乎一样。
十、总结:一张表看懂所有区别
| 对比项 | CentOS/RHEL 系 | Ubuntu |
|---|---|---|
| 出身 | 基于 Red Hat | 基于 Debian |
| 安装软件 | yum install / dnf install |
apt install |
| 软件包格式 | .rpm |
.deb |
| 默认界面 | 命令行(无图形) | 图形桌面 |
| 防火墙 | firewalld | ufw |
| 安全模块 | SELinux | AppArmor |
| Apache 服务名 | httpd |
apache2 |
| 网络配置 | /etc/sysconfig/network-scripts/ |
/etc/netplan/ |
| 更新频率 | 慢(稳定优先) | 快(功能优先) |
| 适合人群 | 企业运维、服务器管理员 | 开发者、初学者 |
写在最后
学 Linux 就像学开车,CentOS 和 Ubuntu 只是两个不同品牌的汽车。一个像稳重的大货车,一个像灵活的小轿车。先选一个上手,把基础打牢,另一个自然就能融会贯通。
对初学者来说,Ubuntu 的门槛更低,资料更多,建议从这里开始。等熟悉了 Linux 的基本操作,再去接触 CentOS/Rocky Linux 也不迟。
记住:重要的不是选哪个系统,而是开始动手实践。装个虚拟机,敲敲命令,遇到问题查资料解决,这才是学习 Linux 的正确姿势。