走啊走
加油

怎么查看linux系统是ubuntu还是centos还是redhat或者其他?

服务器价格表

如何快速识别Linux系统发行版(Ubuntu/CentOS/RedHat等)

结论先行:通过查看/etc/os-release文件或使用lsb_release -a命令可以最准确快速地判断Linux系统发行版类型及版本信息。

最可靠的识别方法

  • 查看/etc/os-release文件(适用于大多数现代Linux发行版):

    cat /etc/os-release

    输出示例

    NAME="Ubuntu"
    VERSION="20.04.3 LTS (Focal Fossa)"
    ID=ubuntu
    ID_LIKE=debian
  • 使用lsb_release命令(需要先安装LSB包):

    lsb_release -a

    输出示例

    Distributor ID: Ubuntu
    Description:    Ubuntu 20.04.3 LTS
    Release:        20.04
    Codename:       focal

其他辅助识别方法

  • 检查/etc/issue/etc/issue.net文件

    cat /etc/issue
    cat /etc/issue.net
  • *检查`/etc/-release`文件**:

    cat /etc/centos-release  # CentOS特有
    cat /etc/redhat-release  # RedHat特有
  • 使用hostnamectl命令(systemd系统适用):

    hostnamectl

各发行版特有识别特征

  • Ubuntu/Debian系列

    • 存在/etc/debian_version文件
    • 包管理器是apt/dpkg
    • 典型标识ID=ubuntuID=debian
  • CentOS/RedHat系列

    • 存在/etc/redhat-release/etc/centos-release
    • 包管理器是yumdnf
    • 典型标识ID="centos"ID="rhel"
  • Amazon Linux

    • 存在/etc/system-release
    • 典型标识NAME="Amazon Linux"

快速判断脚本

#!/bin/bash
if [ -f /etc/os-release ]; then
    . /etc/os-release
    echo "系统发行版: $NAME"
    echo "版本: $VERSION"
elif [ -f /etc/redhat-release ]; then
    echo "系统发行版: $(cat /etc/redhat-release)"
elif [ -f /etc/lsb-release ]; then
    . /etc/lsb-release
    echo "系统发行版: $DISTRIB_ID"
    echo "版本: $DISTRIB_RELEASE"
else
    echo "无法确定系统发行版"
fi

为什么推荐/etc/os-release

/etc/os-release已成为现代Linux发行版的标准配置,它提供了结构化、标准化的系统信息,比检查各种发行版特有的文件更可靠。所有主流发行版(Ubuntu 15.04+、CentOS 7+、RHEL 7+等)都支持此文件。

特殊情况处理

  • 容器环境:某些精简容器可能缺少标准识别文件,可尝试:

    uname -a
    cat /proc/version
  • 老旧系统:对于非常旧的系统,可能需要检查:

    cat /etc/*version
    rpm -q redhat-release  # 仅限RPM系

最终建议对于大多数现代Linux系统,cat /etc/os-release是最简单、最可靠的识别方法,它能提供包括发行版名称、版本号、代号等完整信息。