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 的正确姿势。

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言