如何判断Linux系统是Ubuntu还是CentOS
结论先行:可以通过检查系统发行版信息文件、查看包管理器类型或观察默认配置差异来快速区分Ubuntu和CentOS。最可靠的方法是查看/etc/os-release
文件内容。
主要识别方法
1. 检查系统发行版信息文件
-
/etc/os-release
文件(推荐方法):cat /etc/os-release
- Ubuntu会显示
ID=ubuntu
- CentOS会显示
ID="centos"
或ID="rhel"
(对于CentOS 7+)
- Ubuntu会显示
-
其他相关文件:
/etc/issue
– 通常包含简化的发行版名称/etc/centos-release
– 仅存在于CentOS系统/etc/lsb-release
– 通常存在于Ubuntu/Debian系统
2. 查看包管理器类型
-
Ubuntu使用
apt
/apt-get
:which apt # 存在则表示可能是Ubuntu
-
CentOS使用
yum
或dnf
:which yum # CentOS 7及以下 which dnf # CentOS 8+
3. 系统命令差异
-
服务管理命令:
- Ubuntu通常使用
systemctl
(新版本)或service
- CentOS 7+也使用
systemctl
,但旧版可能使用service
- Ubuntu通常使用
-
默认shell提示符:
- Ubuntu通常显示用户名@主机名
- CentOS可能显示更简单的提示符(取决于配置)
辅助识别特征
文件系统布局差异
-
Ubuntu:
- 用户主目录通常在
/home/username
- 第三方软件常安装在
/usr/local
- 用户主目录通常在
-
CentOS:
- 类似布局,但可能有不同的默认目录结构
默认软件差异
-
Ubuntu:
- 默认使用
snap
包管理 - 预装
ubuntu-desktop
(桌面版)
- 默认使用
-
CentOS:
- 更倾向于传统RPM包
- 服务器导向,桌面环境可选
快速判断脚本
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "系统是: $NAME $VERSION"
elif [ -f /etc/centos-release ]; then
echo "系统是: CentOS $(cat /etc/centos-release | awk '{print $4}')"
else
echo "无法确定系统类型"
fi
最终建议:对于现代Linux系统,/etc/os-release
是最标准可靠的识别方法,适用于大多数发行版。在不确定时,优先检查此文件内容。