如何查找Linux操作系统名称和版本? 本文介绍了获取操作系统名称,版本,内核版本和硬件CPU体系结构的所有命令,支持很多如Debian ,ubuntu ,CentOS ,mint ,arch ,fedora ,RHEL之类的Linux发行版,在进行操作系统更新或包更新时了解操作系统版本是非常重要的。
1)从命令行检查OS版本
使用你喜欢的编辑器打开以下文件
/etc/os-release
此文件将显示操作系统名称。
输出# cat /etc/os-release
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/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
hostnamectl命令
hostnamectl命令与systemd (centos和ubuntu的新版本)一起引入,它有多个功能,如显示主机名和更改系统名称。# hostnamectl
Static hostname: linoxide
Icon name: computer-vm
Chassis: vm
Machine ID: cb018d6767ca4c8983df25647a8794b0
Boot ID: ac9d219352a94cdba47494ebd1f42f5c
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-862.11.6.el7.x86_64
Architecture: x86-64
/proc/version文件
/proc文件夹内的version文件有助于查找操作系统名称和内核版本# cat /proc/version
Linux version 3.10.0-862.11.6.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Tue Aug 14 21:49:04 UTC 2018
#
lsb_release -a
lsb_release显示有关你的特定Linux发行版的Linux标准基础信息,如果你得到"command not found",则你需要安装lsb核心包。# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
2)查找CPU架构
有一些命令可以帮助了解你的CPU是32位还是64位
使用uname命令
显示处理器类型uname -p命令$ uname -p
x86_64
如果命令无效,则可以使用uname -a命令,该命令提供了更多信息,
使用"arch"命令
arch命令将显示机器结构。$ arch
x86_64
lscpu命令
可以使用lscpu命令显示CPU体系结构信息$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
你可以看到输出显示了cpu兼容模式(32和64位)
LSHW命令
你可以使用lshw -c命令来过滤硬件描述里的CPU信息$ lshw -c cpu
*-cpu
description: CPU
product: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
vendor: Intel Corp.
physical id: 33
bus info: [email protected] version: Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz
serial: To Be Filled By O.E.M.
slot: U3E1
size: 2973MHz
capacity: 3200MHz
width: 64 bits
表示处理器类型的64位,这个命令在基于Red Hat的系统上不适用,仅适用于基于Debian的系统。
/proc/cpuinfo
你可以列出proc cpuinfo内容文件来检查处理器是32位还是64位,如果你想查看处理器是否为64-bit,那么在/proc/cpuinfo中列出的参数中查找lm (表示长模式)。$ grep -o -w 'lm' /proc/cpuinfo | sort -u
lm
3)检查Linux操作系统类型(32或64位)
如何检查OS安装是否支持64或32位? 下面的命令有助于确定。
getconf命令
你可以使用getconf命令来了解内核是32位还是64位。$ getconf LONG_BIT
64
uname -a
uname命令有一些选项可以提供特殊信息,我们可以使用命令的-a选项作为操作系统类型的更多信息,$ uname -a
Linux centos-01 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
在上面的输出中,x86_64 GNU/Linux表示64位的linux内核正在运行,如果你看到i386/i486/i586/i686,那么它是32位内核。
dpkg命令
当你安装了64位操作系统时,这意味着你的CPU也是64位的,安装的软件包将对应于相同的体系结构。 我们可以在系统上看到已安装的软件包架构来确定我们的操作系统类型$ dpkg --print-architecture
amd64
该命令只能在基于Debian的系统上使用。
检查库文件
安装在操作系统上的库有助于确定这一类型的类型,当你有一个64位操作系统时,你也会安装64位库。$ ls -la / | grep lib
lrwxrwxrwx. 1 root root 7 Feb 21 13:38 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Feb 21 13:38 lib64 -> usr/lib64
使用yum
你可以使用yum info来获得关于可用软件包的一些信息。 它还将打印与软件包兼容的操作系统架构$ yum info nginx | grep -i arch
Arch : x86_64
因为我们的操作系统是64位的,所以包也兼容64位,
echo变量
你可以通过显示操作系统类型来获得操作系统的版本$ echo $HOSTTYPE
x86_64$ echo $MACHTYPE
x86_64-redhat-linux-gnu
查询文件类型
文件命令确定文件类型。 输出的结果包含你的系统架构$ file /lib/systemd/systemd
/lib/systemd/systemd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=8019aadd1f0962539e2f746b044873956ce2e32c, stripped
你可以看到ELF 64-bit, X86-64
对于非系统操作系统,可以使用$ file /sbin/init
你是否还知道其他命令? 请在评论部分提供你的建议和信息。