当我输入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位?

这在编写配置脚本时很有用,例如:我为什么体系结构构建?


当前回答

如果您运行的是64位平台,那么在uname -a的输出中会看到x86_64或类似的东西

运行特定的机器硬件名称

uname -m

你也可以打电话

getconf LONG_BIT

哪个返回32或64

其他回答

#include <stdio.h>

int main(void)
{
    printf("%d\n", __WORDSIZE);
    return 0;
}
$ grep "CONFIG_64" /lib/modules/*/build/.config
# CONFIG_64BIT is not set

真不敢相信这么久以来,居然没人提过

sudo lshw -class cpu

查阅有关中央处理器硬件的速度、数量、大小和功能的详细资料。

[-z ' uname -m | grep 64 '] && echo "32-bit" || echo "64-bit"

基于64位通常是x86_64, 32位是i686等等的事实。

简单的脚本获得64位或32位

        if $(getconf LONG_BIT | grep '64'); then
           echo "64 bit system"
        else
            echo "32 bit system"
        fi