Tente uname -m
. Qual é curto uname --machine
e produz:
x86_64 ==> 64-bit kernel
i686 ==> 32-bit kernel
Caso contrário, não para o kernel do Linux, mas para a CPU , você digita:
cat /proc/cpuinfo
ou:
grep flags /proc/cpuinfo
No parâmetro "flags", você verá vários valores: consulte " O que significam os sinalizadores em / proc / cpuinfo? " Entre eles, um é nomeado lm
: Long Mode
( x86-64 : amd64, também conhecido como Intel 64, ou seja, 64 bits capaz)
lm ==> 64-bit processor
Ou usandolshw
(como mencionado abaixo por Rolf da Saxônia ), sem sudo
(apenas para manter a largura da CPU):
lshw -class cpu|grep "^ width"|uniq|awk '{print $2}'
Nota: você pode ter uma CPU de 64 bits com um kernel de 32 bits instalado .
(como ysdx menciona em sua própria resposta : "Atualmente, um sistema pode ser multiarca, para que não faça sentido de qualquer maneira. Você pode encontrar o destino padrão do compilador")
uname -i
,uname -p
euname -m
show?Se você estivesse executando uma plataforma de 64 bits, veria x86_64 ou algo muito semelhante na saída de uname -a
Para obter o nome específico do hardware da sua máquina, execute
Você também pode ligar
que retorna 32 ou 64
fonte
uname -m
outputsx86_64
getconf LONG_BIT
outputs32
Qual está correto? : \uname -m
não é útil para a QP éconfigure
como ele pode dar o resultado errado. Ogetconf LONG_BIT
tamanho do bit padrão da biblioteca C pode ser o tamanho correto para umCC
compilador especificado por .getconf LONG_BIT
pode fornecer 32 ig, ele foi construído como um aplicativo de 32 bits (normalmente um kernel de 64 bits executando uma terra de usuário de 32 bits).lscpu
listará estas entre outras informações sobre sua CPU:fonte
Outro comando útil para facilitar a determinação é o seguinte:
Comando:
Responda:
fonte
O comando
é equivalente a
mas é duas vezes mais rápido para digitar
fonte
Eu estava pensando sobre isso especificamente para a construção de software no Debian (o sistema Debian instalado pode ser uma versão de 32 bits com um kernel de 32 bits, bibliotecas etc.) ou pode ser uma versão de 64 bits com material compilado para o sistema 64-bit. em vez do modo de compatibilidade de 32 bits).
Os próprios pacotes Debian precisam saber para qual arquitetura eles são (é claro) quando eles realmente criam o pacote com todos os seus metadados, incluindo a arquitetura da plataforma, para que exista uma ferramenta de empacotamento que o produza para outras ferramentas e scripts de empacotamento, chamados arquitetura dpkg . Inclui tanto o que ele está configurado para construir, quanto o host atual. (Normalmente, eles são os mesmos.) Exemplo de saída em uma máquina de 64 bits:
Você pode imprimir apenas uma dessas variáveis ou fazer um teste em relação a seus valores com as opções de linha de comando para dpkg -architecture.
Não tenho idéia de como o dpkg-architecture deduz a arquitetura, mas você pode ver a documentação ou o código fonte (dpkg-architecture e grande parte do sistema dpkg em geral são Perl).
fonte
dpkg --architecture
para obter a arquitetura do sistema host, que não requer a instalação dodpkg-dev
pacote.dpkg: error: unknown option --architecture
para o dpkg 1.17.5ubuntu de 14.04. O dpkg-architecture (com o dpkg-dev instalado) funciona bem.dpkg --print-architecture
trabalhou no Debian desde sempre. Este funciona, mas está limitado ao Debian e seus derivados.fonte
Se você possui um sistema operacional de 64 bits, em vez do i686, possui
x86_64
ouia64
na saída deuname -a
. Na medida em que você não possui nenhuma dessas duas strings; você possui um sistema operacional de 32 bits (observe que isso não significa que sua CPU não é de 64 bits).fonte
uname
saída que indicam o SO de 64 bits. Nem todo o mundo é um x86 ou Itanium ...Esse sistema é de 32 bits. iX86 in
uname
significa que é uma arquitetura de 32 bits. Se fosse de 64 bits, retornariafonte
Atualmente, um sistema pode ser multiarca, por isso não faz sentido. Você pode encontrar o destino padrão do compilador:
Você pode tentar compilar um olá mundo:
fonte
cc -v | grep …
é específico do compilador, pode-se usar apenascc -dumpmachine
, o que não requer grepping e é suportado não apenas pelo GCC.Com relação à resposta "getconf LONG_BIT" .
Eu escrevi uma função simples para fazê-lo em 'C':
Boa ideia, o 'getconf'!
fonte
CHAR_BIT*sizeof(void*)
ou__WORDSIZE
em C.fgets
: stackoverflow.com/questions/16323185/…Você também pode verificar usando uma variável de ambiente:
Resultado:
i386
-> 32 bitsx86_64
-> 64 bitsExtraído de: http://www.sysadmit.com/2016/02/linux-como-saber-si-es-32-o-64-bits.html
fonte
/bin/bash
não é uma variável de ambiente. Se você já é dependente do Bash, isso funciona bem. No entanto, o resultado pode seri386
,i486
,i586
,i686
e outros por isso tome cuidado.No Bash, usando excesso de número inteiro:
É muito mais eficiente do que invocar outro processo ou abrir arquivos.
fonte
O getconf usa o menor número de chamadas do sistema:
fonte
Se você alternar 1 deixado por 32 e você obtém 1, seu sistema é de 32 bits. Se você alternar 1 deixado por 64 e obtiver 1, seu sistema será de 64 bits.
Em outras palavras,
if echo $((1<<32)) gives 1 then your system is 32 bit
.if echo $((1<<64)) gives 1 then your system is 64 bit
.fonte
Se alguém está severamente limitado nos binários disponíveis (por exemplo, no initramfs), meus colegas sugeriram:
Nos meus sistemas ALT Linux, o i586 possui
/lib/ld-linux.so.2
e o x86_64 possui/lib64/ld-linux-x86-64.so.2
.fonte
fonte
Não acredito que, durante todo esse tempo, ninguém tenha mencionado:
para obter detalhes sobre a velocidade, quantidade, tamanho e recursos do hardware da CPU.
fonte
Script simples para obter 64 ou 32 bits
fonte
[ -z `uname -m | grep 64` ] && echo "32-bit" || echo "64-bit"
Com base no fato de que 64 bits é geralmente
x86_64
e 32 bits éi686
etc.fonte
Primeiro você precisa baixar o Virtual Box. Em seguida, selecione um novo e um Linux de 32 bits. Então inicie o linux usando-o. Se inicializar, será de 32 bits, se não for, será de 64 bits.
fonte