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

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


当前回答

lscpu会列出关于你的CPU的其他信息:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
...

其他回答

首先你必须下载虚拟盒子。然后选择new和32位Linux。然后使用它引导linux。如果它启动,那么它是32位的,如果它不启动,那么它是64位的。

如果您使用的是64位操作系统,uname -a的输出信息中有x86_64或ia64,而不是i686。因为你没有这两条弦中的任何一条;你有一个32位的操作系统(注意,这并不意味着你的CPU不是64位)。

在Bash中,使用整数溢出:

if ((1 == 1<<32)); then
  echo 32bits
else
  echo 64bits
fi

它比调用另一个进程或打开文件要高效得多。

lscpu会列出关于你的CPU的其他信息:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
...

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

运行特定的机器硬件名称

uname -m

你也可以打电话

getconf LONG_BIT

哪个返回32或64