Jawaban:
"uname -m" adalah perintah yang Anda cari. Anda dapat menjalankan 32bit dan 64bit pada prosesor intel dan AMD modern, jadi "uname -p" tidak akan membantu Anda (selain itu sebagian besar tidak berfungsi hari ini, ini di sini core2 memikirkan tanggapan untuk "uname -p" tidak diketahui").
Mencari keberadaan / usr / lib64 (seperti yang telah disarankan) juga tidak akan membantu Anda, karena beberapa paket perangkat keras dan sistem yang terkait akan menginstal pustaka 32bit dan 64bit agar aman. Pada sistem saya (debian) paket fakeroot tidak hanya itu.
Adapun output dari "uname -m", jika i386 atau i686 32bit, jika x86_64 (atau alpha, atau ia64 atau arsitektur 64bit lainnya yang belum pernah saya lihat :) ini 64bit.
(selain menyenangkan, server FreeBSD 64bit saya mengembalikan "amd64", yang mungkin sedikit aneh untuk intel quadcore tetapi benar-benar dapat dimengerti jika Anda mengetahui sejarah arsitektur x86 64bit)
uname -a dan cari x86_64. Jika Anda ingin tahu apakah CPU Anda dapat menangani 64bit, cat / proc / cpuinfo dan cari lm di dalam flag.
Hanya untuk membingungkan, Anda dapat menjalankan kernel 64bit dengan userland 32bit, itulah yang saya lakukan. Dalam hal ini, uname -m
kembali x86_64
tetapi saya tidak memiliki perpustakaan 64bit yang diinstal sehingga sebagian besar program 64bit tidak akan berjalan.
Jadi, sekali Anda memeriksa nama, Anda perlu mencari /lib64/ld-linux-x86-64.so.2
, /lib64/libc-2.7.so
dan /lib/ld-linux.so.2
, /lib/libc-2.7.so
untuk melihat apakah pustaka 64bit dan 32bit tersedia. Dan untuk benar-benar memastikan, jalankan file-file itu dan lihat apakah mereka mengeksekusi dengan benar.
Sepotong informasi lain yang bermanfaat adalah keluaran lsb_release -a
yang cross-distro dan akan melaporkan modul LSB spesifik arsitektur apa yang tersedia.
lsb_release -a
tidak menampilkan arsitektur userland
$> getconf LONG_BIT
Jawaban: 32 atau 64.
Cara lain untuk melakukannya adalah dengan menanyakan perl apa yang dikatakan kompiler ukuran bilangan bulat panjang adalah:
$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
64
vs.
$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
32
Atau, jika Anda menginstal gcc, hal yang sama dalam C:
$ cat > bits.c <<EOC
> #include <stdlib.h>
> #include <stdio.h>
>
> int main(void) {
> printf("%d\n", (int)sizeof(long)*8);
>
> exit(0);
> }
> EOC
$ gcc -Wall -o bits bits.c
$ ./bits
64
vs.
[...]
> EOC
$ gcc -Wall -o bits bits.c
$ ./bits
32
:-)
Sebagai duplikat dari:
Linux + cara memverifikasi versi linux 32 Bit atau 64 Bit
uname -m hanya akan memberi Anda arsitektur 'arch' / kernel yang sedang berjalan. Ini TIDAK akan memberi tahu Anda jika Anda menjalankan distribusi GNU / Linux 32 bit pada CPU berkemampuan 64bit.
Untuk mengetahui kemampuan CPU Anda:
cat /proc/cpuinfo
Bendera 'LM' harus ada dalam sistem 64bits karena mewakili 'LONG MODE' (Ekstensi 64bit, AMD64 AMD atau EM64T Intel).
$ uname -p
x86_64
Jika Anda memiliki / usr / lib64 Anda menjalankan x86_64 ..
Perintah Brad Gilbert memiliki bug perl. Saya sudah memperbaikinya dan perintah di bawah ini berfungsi: cat / proc / cpuinfo | grep ^ flags | perl -e '$ = <>; cetak ($ ? "x86_64 \ n": "not x86_64 \ n")'