小智 37

“uname -m”是您要查找的命令。您可以在现代英特尔和 AMD 处理器上同时运行 32 位和 64 位,因此“uname -p”不会帮助您(此外,这些天它大多不起作用,这里 core2 认为对“uname -p”的响应是“未知”)。

寻找 /usr/lib64 的存在(正如所建议的)也不会帮助你,因为一些硬件和系统相关的包会安装 32 位和 64 位库以确保安全。在我的(debian)系统上, fakeroot 包就是这样做的。

至于“uname -m”的输出,如果是 i386 或 i686,则是 32 位,如果是 x86_64(或 alpha,或 ia64 或其他一些我从未见过的 64 位架构:)则是 64 位。

(顺便说一句,我的 64 位 FreeBSD 服务器返回“amd64”,这对于英特尔四核可能有点奇怪,但如果您了解 x86 64 位架构的历史,则完全可以理解)


kas*_*ani 15

uname -a 并查找 x86_64。如果您想知道您的 CPU 是否可以处理 64 位,请使用 cat /proc/cpuinfo 并在标志中查找 lm。

  • cat /proc/cpuinfo | grep ^flags | perl -e'$_=<>;print "x86_64\n":"不是 x86_64\n"' (3认同)

web*_*sen 6

对于 RedHat/CentOS:

$ uname -a
Linux cs-centos 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 12:03:43 EST 2008 i686 athlon i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

32 位

  • i686和/或i386

64 位

  • uname -a输出中有x86_64


TRS*_*-80 6

只是为了混淆,您可以使用 32 位用户空间运行 64 位内核,这就是我正在做的。在这种情况下,uname -m返回x86_64但我没有安装任何 64 位库,因此大多数 64 位程序将无法运行。

所以一旦你检查了 uname,你需要寻找/lib64/ld-linux-x86-64.so.2,/lib64/libc-2.7.so/lib/ld-linux.so.2/lib/libc-2.7.so看看是否有 64 位和 32 位库可用。为了真正确定,运行这些文件并查看它们是否正确执行。

另一个有用的信息是lsb_release -a跨发行版的输出,它将报告哪些特定于架构的 LSB 模块可用。

  • 不幸的是 `lsb_release -a` 不输出用户空间架构 (2认同)

Den*_*ter 6

$> getconf LONG_BIT 答案:32 或 64。