结论:通过查看系统文件、使用命令行工具或检查特定服务,可以快速判断服务器运行的是 Ubuntu 还是 CentOS。核心方法包括检查 /etc/os-release 文件、运行 cat /etc/issue 或 uname -r 命令,以及观察默认的包管理器类型(如 apt 对应 Ubuntu,yum 对应 CentOS)。
以下是具体的方法和步骤:
1. 检查 /etc/os-release 文件
这是最直接的方法之一。该文件包含了操作系统的详细信息。
- 打开终端并运行以下命令:
cat /etc/os-release - 如果输出中包含
Ubuntu,则说明系统是 Ubuntu。 - 如果输出中包含
CentOS或AlmaLinux等类似的名称,则说明系统是 CentOS。
示例输出:
- Ubuntu:
NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)" ID=ubuntu - CentOS:
NAME="CentOS Linux" VERSION="7 (Core)" ID="centos"
2. 查看 /etc/issue 文件
/etc/issue 文件通常包含系统发行版的基本信息。
- 运行以下命令:
cat /etc/issue - 如果显示类似
Ubuntu 20.04的内容,则系统为 Ubuntu。 - 如果显示类似
CentOS Linux 7的内容,则系统为 CentOS。
注意: 在某些情况下,此文件可能被自定义或未更新,因此建议结合其他方法验证。
3. 检查默认包管理器
不同的 Linux 发行版使用不同的包管理工具:
-
Ubuntu 使用
apt或dpkg:apt --version如果命令成功执行且返回版本信息,则系统为 Ubuntu。
-
CentOS 使用
yum或dnf:yum --version如果命令成功执行且返回版本信息,则系统为 CentOS。
4. 通过内核版本辅助判断
虽然内核版本本身不能完全区分系统类型,但可以作为参考。
- 运行以下命令:
uname -r - Ubuntu 的内核版本通常以
generic结尾,例如:5.4.0-122-generic - CentOS 的内核版本通常以
el7或el8结尾,例如:3.10.0-1160.el7.x86_64
5. 检查服务管理工具
Ubuntu 和 CentOS 使用不同的服务管理工具:
-
Ubuntu 默认使用
systemd和upstart:systemctl --version如果命令成功执行,则系统可能是 Ubuntu(或其他基于 Debian 的系统)。
-
CentOS 也使用
systemd,但可以通过检查默认的服务管理器进一步确认:ps -p 1- 如果 PID 1 是
systemd,则系统可能是 CentOS 或 Ubuntu。 - 如果 PID 1 是其他进程(如
init),则需要进一步排查。
- 如果 PID 1 是
6. 测试常见命令的兼容性
尝试运行一些特定于发行版的命令:
-
Ubuntu 特定命令:
lsb_release -a如果返回类似以下内容,则系统为 Ubuntu:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.5 LTS Release: 20.04 Codename: focal -
CentOS 特定命令:
rpm -qa | grep centos如果返回类似以下内容,则系统为 CentOS:
centos-release-7-9.el7.centos.x86_64
总结
通过以上方法,您可以轻松判断服务器运行的是 Ubuntu 还是 CentOS。推荐优先使用 cat /etc/os-release 或 lsb_release -a,因为它们提供了明确的操作系统信息。同时,结合包管理器和内核版本进行交叉验证,能够确保结果的准确性。
CDNK博客