小编典典

如何确定给定的 Linux 是 32 位还是 64 位?

all

当我输入uname -a时,它会给出以下输出。

Linux mars 2.6.9-67.0.15.ELsmp #1 SMP Tue Apr 22 13:50:33 EDT 2008 i686 i686 i386 GNU/Linux

我怎么知道给定的操作系统是 32 位还是 64 位?

这在编写脚本时很有用configure,例如:我要为什么架构构建?


阅读 110

收藏
2022-03-14

共1个答案

小编典典

试试uname -m。缺少uname --machine它并输出:

x86_64 ==> 64-bit kernel
i686   ==> 32-bit kernel

否则, 不是针对 Linux 内核,而是针对 CPU ,您键入:

cat /proc/cpuinfo

要么:

grep flags /proc/cpuinfo

在“flags”参数下,你会看到各种值:见“
/proc/cpuinfo中的flags是什么意思?
”其中一个名为lmLong Modex86-64:amd64,也称为Intel
64,即64位有能力的)

lm ==> 64-bit processor

或者使用lshw(如下面)的Rolfof Saxony,不使用sudo(仅用于获取 cpu 宽度):

lshw -class cpu|grep "^       width"|uniq|awk '{print $2}'

注意:您可以拥有一个安装了 32 位内核的 64 位 CPU
(正如ysdx在他/她自己的回答中提到的那样,“现在,一个系统可以是
多架构 的,所以无论如何它没有意义。你可能想找到编译器的默认目标”)

2022-03-14