菜鸟科技网

Linux查看系统版本有哪些常用命令?

在Linux系统中,了解当前操作系统的版本信息是系统管理、软件安装或故障排查中的基础操作,Linux查看操作系统版本的方法多样,不同发行版或场景下适用的命令可能存在差异,以下将详细介绍常用命令及其使用场景,并辅以示例说明。

Linux查看系统版本有哪些常用命令?-图1
(图片来源网络,侵删)

基础命令查看版本信息

  1. lsb_release命令
    lsb_release是Linux标准基线(LSB)工具,用于显示LSB和特定发行版的信息,适用于大多数基于Debian/Ubuntu的系统。

    • 常用选项
      • -a:显示所有可用信息(包括发行版ID、描述、版本号等)。
      • -i:仅显示发行版ID(如Ubuntu、CentOS)。
      • -r:显示发行版版本号(如20.04、7.9)。
    • 示例
      lsb_release -a

      输出示例:

      Distributor ID: Ubuntu  
      Description:    Ubuntu 20.04.3 LTS  
      Release:        20.04  
      Codename:       focal  
  2. /etc/os-release文件
    该文件是现代Linux系统的标准配置文件,包含发行版的详细信息,几乎所有发行版均支持。

    • 查看方法
      cat /etc/os-release

      输出示例(Ubuntu):

      Linux查看系统版本有哪些常用命令?-图2
      (图片来源网络,侵删)
      PRETTY_NAME="Ubuntu 20.04.3 LTS"  
      VERSION_ID="20.04"  
      VERSION_CODENAME=focal  
      ID=ubuntu  
      ID_LIKE=debian  
      HOME_URL="https://www.ubuntu.com/"  
      SUPPORT_URL="https://help.ubuntu.com/"  
      BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"  
      PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"  
      VERSION="20.04.3 LTS (Focal Fossa)"  

      输出示例(CentOS):

      NAME="CentOS Linux"  
      VERSION="7 (Core)"  
      ID="centos"  
      ID_LIKE="rhel fedora"  
      VERSION_ID="7"  
      PRETTY_NAME="CentOS Linux 7 (Core)"  
      ANSI_COLOR="0;31"  
      CPE_NAME="cpe:/o:centos:centos:7"  
      HOME_URL="https://www.centos.org/"  
      BUG_REPORT_URL="https://bugs.centos.org/"  
    • 提取特定字段:可通过grep命令快速获取关键信息,如:
      grep PRETTY_NAME /etc/os-release
  3. hostnamectl命令
    该命令用于查看或修改系统主机名信息,同时会显示操作系统版本、内核版本等,适用于systemd系统。

    • 示例
      hostnamectl

      输出示例:

        Static hostname: ubuntu-server  
          Icon name: computer-vm  
            Chassis: vm  
         Machine ID: XXXXXXXX  
            Boot ID: XXXXXXXX    Operating System: Ubuntu 20.04.3 LTS  
              Kernel: Linux 5.13.0-28-generic  
        Architecture: x86-64  

针对特定发行版的命令

  1. Red Hat系列(CentOS、RHEL、Fedora)

    • rpm命令:通过查询centos-releaseredhat-release包获取版本信息。
      rpm -q centos-release  # CentOS
      rpm -q redhat-release  # RHEL

      输出示例:centos-release-7-9.2009.0.el7.centos.x86_64

    • /etc/redhat-release文件:传统方式,直接显示版本号。
      cat /etc/redhat-release

      输出:CentOS Linux release 7.9.2009 (Core)

  2. Debian/Ubuntu系列

    • /etc/debian_version文件:显示Debian版本号(Ubuntu基于Debian,部分版本也支持)。
      cat /etc/debian_version

      输出示例:9(对应Debian 10/Buster)或bullseye/sid(测试版)。

    • apt命令:通过查询lsb-release包获取信息(需安装)。
      apt show lsb-release
  3. SUSE系列

    • /etc/SuSe-release文件(旧版)或/etc/os-release(新版)。
      cat /etc/SuSe-release

      输出示例:SUSE Linux Enterprise Server 12 SP5

    • zypper命令:通过查询release包获取。
      zypper info release

内核版本与硬件架构信息

除操作系统版本外,内核版本和硬件架构信息也常需查看:

  • uname命令
    uname -a  # 显示所有内核信息
    uname -r  # 仅显示内核版本
    uname -m  # 显示硬件架构(如x86_64、aarch64)

    输出示例:Linux ubuntu-server 5.13.0-28-generic #31-Ubuntu SMP Thu Oct 14 15:22:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

命令对比与适用场景

命令/文件 适用发行版 优点 缺点
lsb_release Debian/Ubuntu等 信息全面,标准化输出 需安装lsb-release
/etc/os-release 所有现代Linux发行版 无需安装,信息详细 需手动解析字段
hostnamectl systemd系统(主流发行版) 同时显示主机名和系统信息 仅适用于systemd环境
rpm//etc/redhat-release Red Hat系列 直接准确 仅限RHEL/CentOS等
/etc/debian_version Debian/Ubuntu 简单直观 信息较少,仅版本号

相关问答FAQs

Q1: 为什么执行lsb_release -a提示“command not found”?
A: 该错误通常表示系统未安装lsb-release包,可通过以下命令安装:

  • Debian/Ubuntu: sudo apt update && sudo apt install lsb-release
  • CentOS/RHEL: sudo yum install redhat-lsb-core
  • Fedora: sudo dnf install redhat-lsb-core

Q2: 如何通过脚本判断操作系统类型并执行对应操作?
A: 可结合/etc/os-release文件中的ID字段编写条件判断,

#!/bin/bash
source /etc/os-release  # 加载变量
if [ "$ID" = "ubuntu" ]; then
    echo "This is Ubuntu, running apt update..."
    sudo apt update
elif [ "$ID" = "centos" ]; then
    echo "This is CentOS, running yum update..."
    sudo yum update
else
    echo "Unsupported OS"
fi

脚本通过读取ID变量(如ubuntucentos)实现分支操作,适用于自动化运维场景。

分享:
扫描分享到社交APP
上一篇
下一篇