但是,我不知道我安装的是32位还是64位版本。
在Windows 7中,我可以右键单击我的计算机并列出了它是哪个版本。
是否有一种简便的方法可以在Ubuntu中进行检查?
#1 楼
我至少知道两种方式。打开终端(Ctrl + Alt + T)并输入:uname -a
32位Ubuntu的结果:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux
,而64位Ubuntu将显示:
Linux discworld 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
更短的版本:
$ uname -i
x86_64
或
file /sbin/init
32位Ubuntu的结果:
/sbin/init: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
而对于64位版本,它看起来像:
/sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
与使用systemd(16.04)的系统相同:
file /lib/systemd/systemd
64位结果:
/lib/systemd/systemd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=54cc7ae53727d3ab67d7ff5d66620c0c589d62f9, stripped
评论
由“嗅探”广泛可用的可执行文件的(二进制)内容组成的方法2是非常间接且笨拙的。尽管它适用于大多数设置,但仅存在64位可执行文件不应成为检测正在运行的OS体系结构的可靠方法。特别是当您考虑使用multiarch,ia32_libs时,尤其是在您的init示例中,您是upstart
–MestreLion
13年3月25日在11:20
您可能是对的,但是方法1向我显示了i686,但没有显示32或64的输出
–亚历山大
2014年3月17日在13:04
@aleks是32位(请参见突出显示的文本:答案中的“ i686 i686 i386”)
–灵风
2014年3月17日13:10
它是32位,我使用了第二种方法,但是第一种方法没有显示任何类似于i386的东西:),但您的回答有所帮助。非常感谢
–亚历山大
2014年3月17日13:30
#file / sbin / init-/ sbin / init:到upstart的符号链接'-#file / sbin / upstart-/ sbin / upstart:ELF 64位LSB共享对象,x86-64 ...
– Nakilon
2014年12月17日在9:15
#2 楼
具有Unity的Ubuntu 12.04+命中Command(mac)或Window键。
键入
Details
,然后选择“详细信息”图标读取“ OS类型”字段
64位操作系统将读取“ 64位”
显示上述屏幕的替代方法:
单击系统菜单(位于右上角的齿轮)
单击“关于此计算机”
我知道终端响应很好,但是我想这是GUI的答案。 :)
使用Unity的Ubuntu 11.04
点击Command(mac)或Window键。
键入
System info
,然后选择系统信息图标读取“操作系统类型”字段
64位操作系统将读取“ 64位”
评论
+1:对于习惯于Windows的用户,GUI方式优于终端命令,特别是要求使用简便的方式。
–MestreLion
13年3月25日在11:01
另外,另一种进入同一屏幕的(GUI)方法是:系统菜单(右上角,时钟附近)->系统设置->详细信息
–MestreLion
13年3月25日在11:25
最简单的方法就是牢记:请运行旧版Ubuntu的任何人提供与您的GUI相当的工具!特别是对于Lucid Lynx(由于LTS支持到2015年,因此很可能会在人们的便携式笔记本电脑上运行。)
– J-P
2013年6月14日18:56
@ J-P:对于较旧的Ubuntu,例如Lucid Lynx,我知道最简单的GUI方式就是Gnome的系统监视器。其“系统”选项卡显示了体系结构。
–MestreLion
2013年6月30日21:30
GUI窗口很漂亮,但是想想如果您在没有安装GUI的情况下运行服务器版本,是否可以等待一分钟?
–克里斯
2014年1月14日21:30
#3 楼
一个非常简单而简短的方法是:打开终端,输入以下内容,然后按Enter。
getconf LONG_BIT
案例64)是答案。
评论
在我的32位系统上,这也给出了正确的答案。在各种答案列出的所有命令中,此命令的输出是最简单的。
–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
2014年5月5日在11:46
除外:$ getconf LONGBIT getconf:无法识别的变量`LONGBIT'
–澳大利亚
16年1月7日16:00
您缺少下划线@Auspex LONG_BIT
–迈克尔
16年2月19日在21:41
@Michael Damn,我也是。我不知道该如何管理,并且在过去的一个月中将这两台计算机升级到64位,现在已经很麻烦了;-)谢谢,无论如何!
–澳大利亚
16-2-20在21:32
#4 楼
参考:如何知道我正在运行32位还是64位Linux?使用以下命令:
uname -m
您通常会得到:
i686
用于32位(或可能是i586或i386),并且:
x86_64
用于64位。
评论
很难相信/ etc / release似乎没有提到它。
–rogerdpack
2014年5月22日15:49
uname -mpi提供了uname -a中提到的所有内容,即使它们通常都是相同的...
–野生
2014年5月28日在17:34
#5 楼
打开终端,然后尝试arch
命令。如果其输出为x86_64,则为64位。如果显示i686,i386等,则为32位。 但是,确定体系结构的最佳方法是运行
arch
命令并在输出中搜索Google。评论
arch与uname -m相同(甚至在手册页中也有说明)。 ;-)
–扭矩
2010年11月1日14:05
在我的计算机(Ubuntu 9.04)上,arch命令似乎不存在。所以我想说uname -m更可靠。
–乔纳森·斯特恩伯格
2010年11月1日于15:09
@JonathanSternberg:它是几个月后由Uname的相同作者开发的,并包含在相同的coreutils软件包中。因此从Ubuntu 10.04开始,这两个命令都可用。
–MestreLion
13年3月25日在11:10
#6 楼
dpkg --print-architecture
命令将显示您是否已安装32位或64位Ubuntu OS。在64位系统上
$ dpkg --print-architecture
amd64
在32位系统上
$ dpkg --print-architecture
i386
`
评论
到目前为止,正确检测运行64位内核的32位OS的唯一方法。
–丹·加思韦特(Dan Garthwaite)
2014年6月16日14:48
#7 楼
Architecture Checker下载链接
下载它
提取它。
标记文件Architecture Checker.sh Executable并运行它。
脚本基本上是这样的:
#!/bin/bash
ARCH=$(uname -m)
if [ "$ARCH" = "i686" ]; then
zenity --info --title="Architecture Checker" --text="Your Architecture is 32-Bit"
fi
if [ "$ARCH" = "x86_64" ]; then
zenity --info --title="Architecture Checker" --text="Your Architecture is 64-Bit"
fi
这需要在可执行的文本文件中,并且需要安装
zenity
。评论
老实说需要下载并解压缩那8行文件吗?只需将其放在此处的代码块中即可。
– Kiri
13-10-26在9:10
当uname -m的输出不是i686时...善用zenity,但是可以使用notify-send。
–野生
2014年5月28日在17:45
#8 楼
转到系统设置,然后在系统部分下,单击详细信息。您将获得所有详细信息,包括操作系统,处理器以及系统运行的是64位还是32位版本。评论
太好了但是我不知道如何“进入系统设置”。 (顺便说一句)我正在使用12.4 MATE。
–木瓜
17年8月11日13:50
#9 楼
打开Ubuntu软件中心,然后搜索lib32
。如果发现任何结果,则说明您正在执行64位安装(结果是用于在64位安装上运行32位应用程序的兼容性库)。并不是一个更好的答案,但是至少不需要终端... ;-)
编辑
我发现了一个更简单的方法:打开“帮助”->关于Mozilla Firefox,您将看到它就在那里... ;-)
在底部显示“用户代理字符串”,例如在我的64位系统上:
Mozilla/5.0 (X11; U; Linux x86_64; nl; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12
,或者在我的32位系统上:
Mozilla/5.0 (X11; U; Linux i686; nl; rv:1.9.2.12) Gecko/20101027 Ubuntu/10.10 (maverick) Firefox/3.6.12
x86_64
是64位,i686
是32位(但这仍然不是应该存在的答案;))
评论
当然,纯GUI也很脆弱,但其名称(或描述)包含lib32的软件包肯定不是检测体系结构的可靠方法。
–MestreLion
13年3月25日在11:27
#10 楼
电源按钮(最上方,最右端)具有“关于此计算机”选项。 :)评论
不在12.04 LTS上
–törzsmókus
13年8月19日在9:17
#11 楼
您应该记住,在安装32位内核时,您可能拥有64位CPU。即如果您的CPU是64,则并不意味着您的操作系统是64,这取决于您所安装的操作系统。>因此要获得硬件平台,请使用
man uname
或uname -m
或uname -p
,而要获取内核类型,最好使用uname -i
命令。检查此SO问题
评论
与这个问题实际上没有关系:他有一个64位CPU,想知道安装了哪个OS。
–澳大利亚
16年1月7日在16:05
#12 楼
据我所记得,可以在32位系统上安装x86_64内核。就像在这里写的那样,您应该查看系统上具有哪些库/已安装了哪些软件包。因此,最安全的查看方法是检查您是否具有/lib64
,以及它是否是/lib
的符号链接。如果它们包含_amd64.deb,则它是64位系统,也就是说,如果您已安装软件包并且尚未清除缓存。所有这些都可以通过Konqueror / Dolphin来完成指向并单击或:
ls -la / |grep lib
#13 楼
在Synaptic或Software Center中查看您的软件资源。如果您尚未删除原始来源,例如cdrom,它将(?)指示体系结构。这是一个GUI,但不会说“ 32bit”或“ 64bit”。#14 楼
对于Debian衍生系统。在64位系统上:
$ dpkg-architecture -q DEB_BUILD_ARCH
amd64
在32位系统上:
$ dpkg-architecture -q DEB_BUILD_ARCH
i386
#15 楼
我不确定您所说的32位操作系统。具体来说,我的内核和桌面发行版是64位Debian / Sid,但我通常使用
schroot
运行deboostrap
-ed 32 chroot
版本环境中的Debian位(用于测试)。您是否认为我的32位环境应称为32位(我相信是这样)或64位(毕竟,它确实可以运行)在64位内核中)。在那种环境中,
uname -m
表示i686
,并且所有库,可执行文件和进程都是32位。 uname -m
命令可以告诉您ELF可执行文件是32位还是64位。请参阅Linux特定的personality(2)syscall(以及uname(2)一个)。 />
关于处理器的硬件信息可以通过例如
cat /proc/cpuinfo
看到。在我的台式机64位系统和32位系统中,其输出相同schroot环境。
评论
-1:您添加了很多不必要的混乱,而没有添加任何有用的新信息。为什么要说“不确定32位操作系统”?这是一个非常简单的问题,您知道的。您的chroot示例毫无意义:它类似于虚拟机,因此,如果使用32位OS引导,则uname -m当然会输出i686。但是“主机”仍然是64位,并且uname -m会这样说,如果您在chroot环境之外运行它
–MestreLion
13年3月25日在11:47
另外,/ proc / cpuinfo也会引起误解:它显示的是CPU功能,而不是实际安装(和运行)的OS体系结构。过去5年中出售的几乎所有台式机CPU都是64位,但这与问题完全无关。当然,在两种情况下它都报告相同,因为您的CPU硬件相同,并且能够运行32位和64位OS。
–MestreLion
13年3月25日在11:54
@ MestreLion,Basile试图说的是,在某些情况下,例如,使用LXC或chroot时,您可能会运行带有64位内核的纯32位系统。在这些情况下,uname会告诉您64位的内核体系结构,而其他方法会告诉您32位的用户级体系结构,并且尚不清楚两者中的哪一个是“ the”体系结构。
–乔尼
13-10-2在12:51
@Joni:好的,我了解。但这是一个极端的案例,当然不是OP的案例。
–MestreLion
13年10月10日在9:06
可能不是OP的情况,我只是想弄清楚Basile试图提出的观点(而且,看起来我先前的修改来纠正答案被拒绝了吗?在这种环境下,uname -m将输出内核的体系结构x86_64,不是i686。)
–乔尼
13-10-10在9:18
评论
相关:32位和64位之间有什么区别,我应该选择哪个?类似的问题:askubuntu.com/questions/189640 / ...
视频[youtube.com/watch?v=d39JLc5regY]
如何从磁盘上的文件确定OS体系结构(32位或64位)的可能副本?
安装架构和内核架构是两回事。例如,我实现了debian multiarch支持viadpkg --add-architecture amd64,并在我的32位Ubuntu 16.04中安装了一些amd64软件包。现在,我可以使用64位内核运行32位安装,而不会出现问题。因此,当dpkg --print-architecture打印i386时,uname -m打印x86_64。请参阅wiki.debian.org/Multiarch/HOWTO(这是一个棘手的过程)