Versuchen Sie es uname -m
. Welches ist kurz uname --machine
und es gibt aus:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
Andernfalls geben Sie nicht für den Linux-Kernel, sondern für die CPU Folgendes ein:
cat /proc/cpuinfo
oder:
grep flags /proc/cpuinfo
Unter dem Parameter "flags" sehen Sie verschiedene Werte: siehe " Was bedeuten die Flags in / proc / cpuinfo? ". Einer davon heißt lm
: Long Mode
( x86-64 : amd64, auch bekannt als Intel 64, dh 64-Bit fähig)
lm ==> 64-bit processor
Oder verwenden Sielshw
(wie unten von Rolf von Sachsen erwähnt ), ohne sudo
(nur um die CPU-Breite zu erfassen):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
Hinweis: Sie können eine 64-Bit-CPU mit einem 32-Bit-Kernel installieren .
(Wie ysdx in seiner eigenen Antwort erwähnt : "Heutzutage kann ein System ein Multiarch sein, daher macht es sowieso keinen Sinn. Vielleicht möchten Sie das Standardziel des Compilers finden.")
uname -i
,uname -p
unduname -m
zeigt?Wenn Sie eine 64-Bit-Plattform ausführen, wird in der Ausgabe von uname -a x86_64 oder etwas sehr Ähnliches angezeigt
Um Ihren spezifischen Maschinenhardwarennamen auszuführen
Sie können auch anrufen
was entweder 32 oder 64 zurückgibt
quelle
uname -m
Ausgängex86_64
getconf LONG_BIT
Ausgänge32
Welches ist richtig? : \uname -m
ist nicht sinnvoll , für die QP ist ,configure
wie es das falsche Ergebnis geben kann. Siegetconf LONG_BIT
erhalten die Standardbitgröße der C-Bibliothek, die möglicherweise nicht die richtige Größe für einen angegebenenCC
Compiler hat.getconf LONG_BIT
kann 32 ig bereitstellen, es wurde als 32-Bit-Anwendung erstellt (normalerweise 64-Bit-Kernel, auf dem ein 32-Bit-Benutzerland ausgeführt wird).lscpu
listet diese unter anderem Informationen zu Ihrer CPU auf:quelle
Ein weiterer nützlicher Befehl zur einfachen Bestimmung lautet wie folgt:
Befehl:
Antworten:
quelle
Der Befehl
ist äquivalent zu
ist aber doppelt so schnell zu tippen
quelle
Ich habe mich darüber speziell für das Erstellen von Software in Debian gewundert (das installierte Debian-System kann eine 32-Bit-Version mit einem 32-Bit-Kernel, Bibliotheken usw. sein, oder es kann eine 64-Bit-Version mit für das 64- kompilierten Dingen sein. Bit statt 32-Bit-Kompatibilitätsmodus).
Debian-Pakete selbst müssen (natürlich) wissen, für welche Architektur sie sind, wenn sie das Paket mit all seinen Metadaten, einschließlich der Plattformarchitektur, tatsächlich erstellen. Daher gibt es ein Verpackungstool, das es für andere zu verwendende Verpackungstools und Skripte ausgibt dpkg-architektur . Es enthält sowohl das, wofür es erstellt wurde, als auch den aktuellen Host. (Normalerweise sind diese jedoch gleich.) Beispielausgabe auf einem 64-Bit-Computer:
Sie können nur eine dieser Variablen drucken oder einen Test mit ihren Werten mit Befehlszeilenoptionen für dpkg -architecture durchführen.
Ich habe keine Ahnung, wie die dpkg-Architektur die Architektur herleitet, aber Sie können sich die Dokumentation oder den Quellcode ansehen (die dpkg-Architektur und ein Großteil des dpkg-Systems im Allgemeinen sind Perl).
quelle
dpkg --architecture
, um die Hostsystemarchitektur abzurufen, für die dasdpkg-dev
Paket nicht installiert werden muss.dpkg: error: unknown option --architecture
für dpkg 1.17.5ubuntu vom 14.04. Die dpkg-Architektur (mit installiertem dpkg-dev) funktioniert jedoch einwandfrei.dpkg --print-architecture
hat seit Ewigkeiten an Debian gearbeitet. Dieser funktioniert, ist aber auf Debian und seine Derivate beschränkt.quelle
Wenn Sie ein 64-Bit-Betriebssystem anstelle von i686 haben, haben Sie
x86_64
oderia64
in der Ausgabe vonuname -a
. Insofern haben Sie keine dieser beiden Zeichenfolgen; Sie haben ein 32-Bit-Betriebssystem (beachten Sie, dass dies nicht bedeutet, dass Ihre CPU nicht 64-Bit ist).quelle
uname
Ausgabe, die auf ein 64-Bit-Betriebssystem hinweisen. Nicht die ganze Welt ist ein x86 oder Itanium ...Dieses System ist 32bit. iX86 in
uname
bedeutet, dass es sich um eine 32-Bit-Architektur handelt. Wenn es 64 Bit wäre, würde es zurückkehrenquelle
Heutzutage kann ein System ein Multiarch sein, daher macht es sowieso keinen Sinn. Möglicherweise möchten Sie das Standardziel des Compilers finden:
Sie können versuchen, eine Hallo-Welt zusammenzustellen:
quelle
cc -v | grep …
es sowieso compilerspezifisch ist, kann man nur verwendencc -dumpmachine
, was kein Grepping erfordert und nicht nur von GCC unterstützt wird.In Bezug auf die Antwort "getconf LONG_BIT" .
Ich habe eine einfache Funktion dazu in 'C' geschrieben:
Gute Idee, die 'getconf'!
quelle
CHAR_BIT*sizeof(void*)
oder__WORDSIZE
in C.fgets
: stackoverflow.com/questions/16323185/…Sie können dies auch mithilfe einer Umgebungsvariablen überprüfen:
Ergebnis:
i386
-> 32 Bitx86_64
-> 64 BitAuszug aus: http://www.sysadmit.com/2016/02/linux-como-saber-si-es-32-o-64-bits.html
quelle
/bin/bash
es sich nicht um eine Umgebungsvariable handelt. Wenn Sie bereits von Bash abhängig sind, funktioniert dies einwandfrei. Jedoch kann das Ergebnis seini386
,i486
,i586
,i686
und andere , so vorsichtig sein.Verwenden Sie in Bash einen Ganzzahlüberlauf:
Es ist viel effizienter als das Aufrufen eines anderen Prozesses oder das Öffnen von Dateien.
quelle
getconf verwendet die wenigsten Systemaufrufe:
quelle
Wenn Sie 1 um 32 nach links verschieben und 1 erhalten, ist Ihr System 32-Bit. Wenn Sie 1 um 64 nach links verschieben und 1 erhalten, ist Ihr System 64-Bit.
Mit anderen Worten,
if echo $((1<<32)) gives 1 then your system is 32 bit
.if echo $((1<<64)) gives 1 then your system is 64 bit
.quelle
Wenn die verfügbaren Binärdateien (z. B. in initramfs) stark eingeschränkt sind, schlugen meine Kollegen vor:
Auf meinen ALT Linux-Systemen hat i586
/lib/ld-linux.so.2
und x86_64/lib64/ld-linux-x86-64.so.2
.quelle
quelle
Ich kann nicht glauben, dass in all dieser Zeit niemand erwähnt hat:
um Details über die Geschwindigkeit, Menge, Größe und Fähigkeiten der CPU-Hardware zu erhalten.
quelle
Einfaches Skript, um 64-Bit oder 32-Bit zu erhalten
quelle
[ -z `uname -m | grep 64` ] && echo "32-bit" || echo "64-bit"
Basierend auf der Tatsache, dass 64-Bit normalerweise
x86_64
und 32-Bit isti686
usw.quelle
Zuerst müssen Sie Virtual Box herunterladen. Wählen Sie dann neues und ein 32-Bit-Linux. Dann booten Sie das Linux damit. Wenn es bootet, ist es 32 Bit, wenn es nicht bootet, ist es ein 64 Bit.
quelle