Попробуй uname -m
. Который не хватает, uname --machine
и это выводит:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
В противном случае, не для ядра Linux, а для процессора , введите:
cat /proc/cpuinfo
или:
grep flags /proc/cpuinfo
Под параметром «flags» вы увидите различные значения: см. « Что означают флаги в / proc / cpuinfo? ». Среди них одно имя lm
: Long Mode
( x86-64 : amd64, также известный как Intel 64, то есть 64-разрядный дееспособный)
lm ==> 64-bit processor
Или же, используяlshw
(как указано ниже , с помощью Rolf Саксонии ), без sudo
(только для ширины оглавления центрального процессора):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
Примечание: у вас может быть 64-битный процессор с установленным 32-битным ядром .
(как ysdx упоминает в своем собственном ответе : «В настоящее время система может быть многоархивной, так что в любом случае это не имеет смысла. Возможно, вы захотите найти цель компилятора по умолчанию»)
uname -i
,uname -p
иuname -m
показать?Если бы вы работали на 64-битной платформе, вы бы увидели x86_64 или что-то очень похожее в выводе uname -a
Чтобы получить название вашего конкретного компьютера, запустите
Вы также можете позвонить
который возвращает 32 или 64
источник
uname -m
выходыx86_64
getconf LONG_BIT
выходы32
какой из них правильный ?? : \uname -m
не полезно для QP,configure
поскольку оно может дать неправильный результат.getconf LONG_BIT
Получить битовый по умолчанию размера библиотеки C, не может быть правильным размером для указанного, наCC
, составителя.getconf LONG_BIT
может обеспечить 32 ig, это было построено как 32-битное приложение (обычно 64-битное ядро, работающее под 32-битным пользовательским пространством).lscpu
перечислю это среди другой информации относительно вашего процессора:источник
Еще одна полезная команда для легкого определения:
Команда:
Ответ:
источник
Команда
эквивалентно
но в два раза быстрее набрать
источник
Мне было интересно узнать об этом специально для сборки программного обеспечения в Debian (установленная система Debian может быть 32-битной версией с 32-битным ядром, библиотеками и т. Д., Или это может быть 64-битная версия с материалами, скомпилированными для 64- бит, а не 32-битный режим совместимости).
Сами пакеты Debian должны знать, для какой они архитектуры (конечно), когда они фактически создают пакет со всеми его метаданными, включая архитектуру платформы, поэтому существует инструмент упаковки, который выводит его для использования другими инструментами упаковки и сценариями, называемый архитектура dpkg . Он включает в себя как то, для чего он настроен, так и текущий хост. (Обычно это то же самое.) Пример вывода на 64-битной машине:
Вы можете напечатать только одну из этих переменных или проверить их значения с помощью параметров командной строки для dpkg -architecture.
Я понятия не имею, как архитектура dpkg выводит архитектуру, но вы можете посмотреть ее документацию или исходный код (архитектура dpkg и большая часть системы dpkg в целом являются Perl).
источник
dpkg --architecture
для получения архитектуры хост-системы, которая не требует установкиdpkg-dev
пакета.dpkg: error: unknown option --architecture
для dpkg 1.17.5ubuntu от 14.04. Архитектура dpkg (с установленным dpkg-dev) работает нормально.dpkg --print-architecture
работает на Debian с незапамятных времен. Этот работает, но ограничен Debian и его производными.источник
Если у вас есть 64-битная ОС, а не i686, у вас есть
x86_64
илиia64
на выходеuname -a
. В том, что у вас нет ни одной из этих двух строк; у вас 32-битная ОС (обратите внимание, что это не означает, что ваш процессор не 64-битный).источник
uname
выводе есть другие значения, которые указывают на 64-битную ОС. Не весь мир - это x86 или Itanium ...Эта система является 32-битной. iX86
uname
означает, что это 32-битная архитектура. Если бы он был 64-битным, он бы вернулсяисточник
В настоящее время система может быть многоархивной, поэтому в любом случае это не имеет смысла. Возможно, вы захотите найти цель компилятора по умолчанию:
Вы можете попытаться скомпилировать привет мир:
источник
cc -v | grep …
как в любом случае это зависит от компилятора, можно просто использоватьcc -dumpmachine
, который не требует grepping и поддерживается не только GCC.Относительно ответа "getconf LONG_BIT" .
Я написал простую функцию, чтобы сделать это в 'C':
Хорошая идея, getconf!
источник
CHAR_BIT*sizeof(void*)
или__WORDSIZE
в C.fgets
: stackoverflow.com/questions/16323185/…Вы также можете проверить, используя переменную окружения:
Результат:
i386
-> 32 битаx86_64
-> 64 битаИзвлечено из: http://www.sysadmit.com/2016/02/linux-como-saber-si-es-32-o-64-bits.html
источник
/bin/bash
она не является переменной окружения. Если вы уже зависите от Bash, это работает нормально. Тем не менее, результат может бытьi386
,i486
,i586
,i686
и другие , так что будьте осторожны.В Bash используется целочисленное переполнение:
Это гораздо эффективнее, чем запуск другого процесса или открытие файлов.
источник
getconf использует наименьшее количество системных вызовов:
источник
Если вы сдвинете 1 влево на 32 и получите 1, ваша система будет 32-битной. Если вы сдвинете 1 влево на 64, и вы получите 1, ваша система будет 64-битной.
Другими словами,
if echo $((1<<32)) gives 1 then your system is 32 bit
,if echo $((1<<64)) gives 1 then your system is 64 bit
,источник
Если один из них сильно ограничен в доступных двоичных файлах (например, в initramfs), мои коллеги предложили:
В моих системах ALT Linux у i586 есть,
/lib/ld-linux.so.2
а у x86_64 есть/lib64/ld-linux-x86-64.so.2
.источник
источник
Я не могу поверить, что за все это время никто не упомянул:
получить подробную информацию о скорости, количестве, размере и возможностях аппаратного обеспечения процессора.
источник
Простой скрипт для получения 64 бит или 32 бит
источник
[ -z `uname -m | grep 64` ] && echo "32-bit" || echo "64-bit"
Исходя из того, что 64-битные это обычно
x86_64
и 32-битные этоi686
и т.д.источник
Сначала вы должны загрузить Virtual Box. Затем выберите новый и 32-битный Linux. Затем загрузите Linux, используя его. Если он загружается, то он 32-битный, если нет, то это 64-битный.
источник