我是从官方网站下载并安装Ubuntu的。
但是,我不知道我安装的是32位还是64位版本。

在Windows 7中,我可以右键单击我的计算机并列出了它是哪个版本。

是否有一种简便的方法可以在Ubuntu中进行检查?

评论

相关: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(这是一个棘手的过程)

#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 unameuname -muname -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