可以通过以下几种方法判断云服务器的Linux发行版:
1. 查看发行版信息文件
主要发行版识别文件:
# 方法1:查看 /etc/os-release(推荐)
cat /etc/os-release
# 方法2:查看 /etc/issue
cat /etc/issue
# 方法3:查看 /etc/*-release
cat /etc/*-release
# 方法4:查看 /etc/lsb-release(Ubuntu/Debian)
cat /etc/lsb-release
2. 使用专用命令
# 方法1:使用 hostnamectl(systemd系统)
hostnamectl
# 方法2:使用 lsb_release(需要安装lsb-release包)
lsb_release -a
# 方法3:查看内核版本(辅助判断)
uname -a
3. 快速判断脚本
#!/bin/bash
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "发行版: $NAME"
echo "版本: $VERSION"
echo "ID: $ID"
elif [ -f /etc/redhat-release ]; then
echo "RedHat系: $(cat /etc/redhat-release)"
elif [ -f /etc/debian_version ]; then
echo "Debian系: $(cat /etc/debian_version)"
else
echo "未知发行版"
fi
4. 各发行版特征
CentOS/RHEL/Fedora(RedHat系)
# 有 /etc/redhat-release 文件
cat /etc/redhat-release
# CentOS 8+ 和 RHEL 8+ 使用 dnf 包管理器
# 旧版使用 yum
Ubuntu/Debian(Debian系)
# Ubuntu有 /etc/lsb-release
# Debian有 /etc/debian_version
# 使用 apt 包管理器
其他发行版
- AlmaLinux/Rocky Linux:类似CentOS,查看/etc/os-release
- openSUSE:有/etc/SuSE-release
- Arch Linux:有/etc/arch-release
5. 包管理器判断
# 检查包管理器
which apt 2>/dev/null && echo "Debian/Ubuntu系"
which yum 2>/dev/null && echo "RHEL/CentOS 7或更早"
which dnf 2>/dev/null && echo "RHEL/CentOS 8+或Fedora"
which zypper 2>/dev/null && echo "openSUSE"
which pacman 2>/dev/null && echo "Arch Linux"
6. 一键检测命令
最简单的方法是:
# 综合判断
grep -E "^NAME=" /etc/os-release | cut -d'"' -f2
# 或
awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"'
推荐使用 cat /etc/os-release,这是最标准的方法,适用于大多数现代Linux发行版。
CLOUD技术笔记