Essayez uname -m
. Ce qui est court uname --machine
et il produit:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
Sinon, pas pour le noyau Linux, mais pour le CPU , vous tapez:
cat /proc/cpuinfo
ou:
grep flags /proc/cpuinfo
Sous le paramètre "flags", vous verrez différentes valeurs: voir " Que signifient les drapeaux dans / proc / cpuinfo? " Parmi eux, un est nommé lm
: Long Mode
( x86-64 : amd64, également connu sous le nom d'Intel 64, c'est-à-dire 64 bits capable)
lm ==> 64-bit processor
Ou en utilisantlshw
(comme mentionné ci - dessous par Rolf de Saxe ), sans sudo
(juste pour saluer la largeur du processeur):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
Remarque: vous pouvez avoir un processeur 64 bits avec un noyau 32 bits installé .
(comme ysdx le mentionne dans sa propre réponse , "De nos jours, un système peut être multiarchitecture donc cela n'a pas de sens de toute façon. Vous voudrez peut-être trouver la cible par défaut du compilateur")
uname -i
,uname -p
etuname -m
spectacle?Si vous exécutiez une plate-forme 64 bits, vous verriez x86_64 ou quelque chose de très similaire dans la sortie d' uname -a
Pour exécuter le nom du matériel de votre machine spécifique
Vous pouvez également appeler
qui renvoie 32 ou 64
la source
uname -m
sortiesx86_64
getconf LONG_BIT
sorties32
Laquelle est correcte ?? : \uname -m
n'est pas utile pour les QPconfigure
car il peut donner le mauvais résultat. L'getconf LONG_BIT
obtenir la taille de bits par défaut de la bibliothèque C qui peut ne pas être la bonne taille pour une spécifiée, parCC
, compilateur.getconf LONG_BIT
peut fournir 32 ig, il a été conçu comme une application 32 bits (généralement un noyau 64 bits exécutant un espace utilisateur 32 bits).lscpu
énumérera ces informations parmi d'autres concernant votre CPU:la source
Une autre commande utile pour une détermination facile est la suivante:
Commander:
Réponse:
la source
La commande
est équivalent à
mais est deux fois plus rapide à taper
la source
Je me posais des questions à ce sujet spécifiquement pour la construction de logiciels dans Debian (le système Debian installé peut être une version 32 bits avec un noyau 32 bits, des bibliothèques, etc., ou il peut s'agir d'une version 64 bits avec des éléments compilés pour le 64- bits plutôt que le mode de compatibilité 32 bits).
Les paquets Debian eux-mêmes ont besoin de savoir à quelle architecture ils sont destinés (bien sûr) lorsqu'ils créent réellement le paquet avec toutes ses métadonnées, y compris l'architecture de la plate-forme, il existe donc un outil de paquetage qui le produit pour d'autres outils et scripts de paquetage à utiliser, appelé dpkg-architecture . Il comprend à la fois ce pour quoi il est configuré pour construire, ainsi que l'hôte actuel. (Normalement, ce sont les mêmes.) Exemple de sortie sur une machine 64 bits:
Vous pouvez imprimer une seule de ces variables ou effectuer un test par rapport à leurs valeurs avec les options de ligne de commande dans dpkg -architecture.
Je n'ai aucune idée de la façon dont dpkg-architecture déduit l'architecture, mais vous pouvez consulter sa documentation ou son code source (dpkg-architecture et une grande partie du système dpkg en général sont Perl).
la source
dpkg --architecture
pour obtenir l'architecture du système hôte, qui ne nécessite pas l'dpkg-dev
installation du package.dpkg: error: unknown option --architecture
pour dpkg 1.17.5ubuntu de 14.04. dpkg-architecture (avec dpkg-dev installé) fonctionne bien cependant.dpkg --print-architecture
fonctionne sur Debian depuis toujours. Celui-ci fonctionne mais est limité à Debian et ses dérivés.la source
Si vous avez un système d'exploitation 64 bits, au lieu de i686, vous avez
x86_64
ouia64
dans la sortie deuname -a
. En ce que vous n'avez aucune de ces deux chaînes; vous avez un système d'exploitation 32 bits (notez que cela ne signifie pas que votre processeur n'est pas 64 bits).la source
uname
sortie qui indiquent un système d'exploitation 64 bits. Tout le monde n'est pas un x86 ou Itanium ...Ce système est 32 bits. iX86 en
uname
signifie qu'il s'agit d'une architecture 32 bits. Si c'était 64 bits, il reviendraitla source
De nos jours, un système peut être multiarchitecture donc cela n'a pas de sens de toute façon. Vous voudrez peut-être trouver la cible par défaut du compilateur:
Vous pouvez essayer de compiler un monde bonjour:
la source
cc -v | grep …
est de toute façon spécifique au compilateur, on peut simplement l'utilisercc -dumpmachine
, ce qui ne nécessite pas de grepping et est pris en charge non seulement par GCC.En ce qui concerne la réponse "getconf LONG_BIT" .
J'ai écrit une fonction simple pour le faire en 'C':
Bonne idée, le «getconf»!
la source
CHAR_BIT*sizeof(void*)
ou__WORDSIZE
en C.fgets
: stackoverflow.com/questions/16323185/…Vous pouvez également vérifier à l'aide d'une variable d'environnement:
Résultat:
i386
-> 32 bitsx86_64
-> 64 bitsExtrait de: http://www.sysadmit.com/2016/02/linux-como-saber-si-es-32-o-64-bits.html
la source
/bin/bash
ce n'est pas une variable d'environnement. Si vous dépendez déjà de Bash, cela fonctionne très bien. Cependant, le résultat peut êtrei386
,i486
,i586
,i686
et d' autres donc soyez prudent.Dans Bash, en utilisant un débordement d'entier:
C'est beaucoup plus efficace que d'appeler un autre processus ou d'ouvrir des fichiers.
la source
getconf utilise le moins d'appels système:
la source
Si vous décalez 1 de gauche de 32 et que vous obtenez 1, votre système est de 32 bits. Si vous décalez 1 de gauche de 64 et que vous obtenez 1, votre système est en 64 bits.
En d'autres termes,
if echo $((1<<32)) gives 1 then your system is 32 bit
.if echo $((1<<64)) gives 1 then your system is 64 bit
.la source
Si l'un est sévèrement limité dans les binaires disponibles (par exemple dans initramfs), mes collègues ont suggéré:
Sur mes systèmes ALT Linux, i586 a
/lib/ld-linux.so.2
et x86_64 a/lib64/ld-linux-x86-64.so.2
.la source
la source
Je ne peux pas croire que pendant tout ce temps, personne n'a mentionné:
pour obtenir des détails sur la vitesse, la quantité, la taille et les capacités du matériel CPU.
la source
Script simple pour obtenir 64 bits ou 32 bits
la source
[ -z `uname -m | grep 64` ] && echo "32-bit" || echo "64-bit"
Basé sur le fait que 64 bits est généralement
x86_64
et 32 bits esti686
etc.la source
Vous devez d'abord télécharger Virtual Box. Sélectionnez ensuite un nouveau et un Linux 32 bits. Ensuite, démarrez Linux en l'utilisant. S'il démarre, il est de 32 bits, sinon, il est de 64 bits.
la source