CentOS vs Ubuntu

如果你是第一次接触 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 LinuxAlmaLinux 作为替代,它们和 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 的正确姿势。

相关推荐
大棉花哥哥1 小时前
Linux 内核本地提权漏洞(CVE-2026-31431)
linux·运维·服务器
BatyTao1 小时前
Ubuntu下载地址
linux·运维·ubuntu
HalvmånEver1 小时前
MySQL视图
linux·数据库·学习·mysql·视图
IMPYLH1 小时前
Linux 的 truncate 命令
linux·运维·服务器·前端·bash
铁皮哥1 小时前
【后端开发】RabbitMQ、RocketMQ、Kafka 怎么选?我从业务场景重新梳理了一遍
java·linux·数据库·分布式·kafka·rabbitmq·rocketmq
东风微鸣1 小时前
从 Windows 11 迁移到 Ubuntu 26.04:双系统安装与体验记录
linux·windows·ubuntu
Psyduck_ing1 小时前
从MCU到Linux开发的思维破壁
linux·网络·单片机
不仙5202 小时前
搭建本地 RHEL 源
linux
李可以量化2 小时前
QMT 量化交易:北交所数据获取与实时涨跌统计完整教程
linux·服务器·windows