这篇博客是总结、归纳查看Linux系统是32位还是64位的一些方法,很多内容来自网上网友的博客。本篇只是整理、梳理这方面的知识,方便自己忘记的时候随时查看。
方法1:getconf LONG_BIT 查看
如下例子所示: 32位Linux系统显示32, 64位Linux系统显示64。最简单、快捷的方法。
[root@DB-Server ~]# getconf LONG_BIT
[root@gettestlnx01 ~]# getconf LONG_BIT
方法2:uname命令查看
如下例子所示,i686 i386表示32位系统,i686 只是i386的一个子集,支持的cpu从Pentium 2 (686)开始,之前的型号不支持。x86_64表示64位系统。
[root@DB-Server ~]# uname -a Linux DB-Server 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686
i686 i386 GNU/Linux [root@DB-Server ~]# uname -m i686
[root@gettestlnx01 ~]# uname -a Linux gettestlnx01 3.8.13-16.2.1.el6uek.x86_64 #1 SMP Thu Nov 7 17:01:44 PST 2013 x86_64 x86_64 x86_64 GNU/Linux [root@gettestlnx01 ~]# uname -m x86_64
方法3: arch命令查看
[root@DB-Server ~]# arch i686 [root@gettestlnx01 ~]# arch x86_64
方法4: file命令查看
[root@DB-Server ~]# file /sbin/init /sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped [root@DB-Server ~]# file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
[root@gettestlnx01 ~]# file /sbin/init /sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped [root@gettestlnx01 ~]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
方法5:
此方法来自于David的博客,通过查看CPU的信息来判定Linux系统是否是64位操作系统。如果结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit。
[root@DB-Server ~]# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
[root@gettestlnx01 ~]# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l 6