当我输入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位?
这在编写配置脚本时很有用,例如:我为什么体系结构构建?
当我输入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
其他回答
真不敢相信这么久以来,居然没人提过
sudo lshw -class cpu
查阅有关中央处理器硬件的速度、数量、大小和功能的详细资料。
如果您使用的是64位操作系统,uname -a的输出信息中有x86_64或ia64,而不是i686。因为你没有这两条弦中的任何一条;你有一个32位的操作系统(注意,这并不意味着你的CPU不是64位)。
$ grep "CONFIG_64" /lib/modules/*/build/.config
# CONFIG_64BIT is not set
#include <stdio.h>
int main(void)
{
printf("%d\n", __WORDSIZE);
return 0;
}
Getconf使用最少的系统调用:
$ strace getconf LONG_BIT | wc -l
253
$ strace arch | wc -l
280
$ strace uname -m | wc -l
281
$ strace grep -q lm /proc/cpuinfo | wc -l
301