如何判断系统是Ubuntu还是CentOS
结论先行:可以通过检查系统发行版信息文件、查看包管理器类型或运行特定命令来快速区分Ubuntu和CentOS系统。
主要鉴别方法
1. 检查系统发行版信息文件
-
Ubuntu系统:
- 查看
/etc/os-release
或/etc/lsb-release
文件 - 示例命令:
cat /etc/os-release | grep -i "ubuntu"
- 典型输出会包含"Ubuntu"标识
- 查看
-
CentOS系统:
- 查看
/etc/centos-release
或/etc/redhat-release
文件 - 示例命令:
cat /etc/centos-release
- CentOS 7及以下版本会明确显示"CentOS"字样
- CentOS 8/Stream可能需要检查
/etc/os-release
- 查看
2. 查看包管理器类型
-
Ubuntu使用
apt
/apt-get
作为包管理器- 检查命令:
which apt
或which apt-get
- 更新软件包命令:
sudo apt update
- 检查命令:
-
CentOS使用
yum
或dnf
作为包管理器- CentOS 7及以下主要使用
yum
- CentOS 8+使用
dnf
- 检查命令:
which yum
或which dnf
- CentOS 7及以下主要使用
3. 使用专用命令查询
-
hostnamectl
命令(systemd系统通用):- 输出中包含"Operating System"信息
- 示例:
hostnamectl | grep -i "operating system"
-
lsb_release
命令(需安装):- Ubuntu通常预装,CentOS可能需要安装
- 示例:
lsb_release -a
其他辅助判断方法
系统目录结构差异
-
Ubuntu:
- 服务脚本通常位于
/etc/init.d/
- 网络配置可能在
/etc/netplan/
(新版)
- 服务脚本通常位于
-
CentOS:
- 服务管理更常使用
systemctl
- 网络配置通常在
/etc/sysconfig/network-scripts/
- 服务管理更常使用
默认软件差异
- Ubuntu默认使用
net-tools
的ifconfig
- CentOS 7+默认可能不安装
ifconfig
,需使用ip addr
特殊情况处理
- CentOS Stream:检查方法与传统CentOS类似,但版本信息会显示"Stream"
- 最小化安装系统:某些命令可能不可用,优先检查
/etc/*release
文件 - 容器环境:基础镜像可能极简,需结合多种方法判断
核心建议:对于快速判断,组合使用cat /etc/os-release
和检查包管理器是最可靠的方法。当系统文件被修改时,包管理器类型是最难伪造的特征之一。