जवाबों:
"uname -m" वह कमांड है जिसकी आप तलाश कर रहे हैं। आप आधुनिक इंटेल और AMD प्रोसेसर पर 32 बिट और 64 बिट दोनों को चला सकते हैं, इसलिए "uname -p" आपकी मदद नहीं करने वाला है (इसके अलावा यह ज्यादातर इन दिनों काम नहीं करता है, यहाँ core2 "unp -p" की प्रतिक्रिया को सोचता है) अज्ञात है")।
/ Usr / lib64 के अस्तित्व की तलाश में (जैसा कि सुझाव दिया गया है) या तो आपकी मदद करने वाला नहीं है, क्योंकि कुछ हार्डवेयर और सिस्टम से संबंधित पैकेज 32 बिट और 64 बिट लाइब्रेरी को सुरक्षित पक्ष पर स्थापित करने के लिए स्थापित करेंगे। मेरे (डेबियन) सिस्टम पर फ़ेकरूट पैकेज बस यही करता है।
के रूप में "uname -m" के आउटपुट के लिए, अगर यह i386 या i686 है तो यह 32 बिट है, अगर यह x86_64 (या अल्फा, या ia64 या कुछ अन्य 64 बिट आर्किटेक्चर मैंने कभी नहीं देखा है :) यह 64 बिट है।
(एक तरफ एक मजेदार के रूप में, मेरा 64 बिट फ्रीबीएसडी सर्वर "amd64" लौटाता है, जो एक इंटेल क्वाडकोर के लिए थोड़ा अजीब हो सकता है लेकिन पूरी तरह से समझने योग्य है यदि आप x86 64 बिट आर्किटेक्चर के इतिहास को जानते हैं)
uname -a और x86_64 के लिए देखें। यदि आप जानना चाहते हैं कि क्या आपका सीपीयू 64 बिट, कैट / प्रॉप / सीपीयूएफआईओ को संभाल सकता है और झंडे के भीतर एलएम की तलाश कर सकता है।
बस चीजों को भ्रमित करने के लिए, आप 32 बिट उपयोगकर्ता के साथ 64 बिट कर्नेल चला सकते हैं, जो कि मैं कर रहा हूं। इस मामले में, uname -m
रिटर्न x86_64
लेकिन मेरे पास कोई 64 बिट लाइब्रेरी स्थापित नहीं है, इसलिए अधिकांश 64 बिट प्रोग्राम नहीं चलेंगे।
तो एक बार आप uname जाँच, आप के लिए देखने की जरूरत है /lib64/ld-linux-x86-64.so.2
, /lib64/libc-2.7.so
और /lib/ld-linux.so.2
, /lib/libc-2.7.so
कि क्या 64 बिट और 32 बिट पुस्तकालयों में उपलब्ध हैं देखने के लिए। और वास्तव में सुनिश्चित करने के लिए, उन फ़ाइलों को चलाएं और देखें कि क्या वे सही तरीके से निष्पादित करते हैं।
जानकारी का एक और उपयोगी टुकड़ा है जिसका उत्पादन lsb_release -a
क्रॉस-डिस्ट्रो है और यह रिपोर्ट करेगा कि आर्किटेक्चर-विशिष्ट एलएसबी मॉड्यूल उपलब्ध हैं।
lsb_release -a
यूज़रलैंड आर्किटेक्चर का उत्पादन नहीं करता है
$> getconf LONG_BIT
उत्तर: 32 या 64।
इसका एक और तरीका यह है कि पर्ल से पूछा जाए कि कंपाइलर ने एक लंबे पूर्णांक का आकार क्या है:
$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
64
बनाम
$ perl -MConfig -e 'print $Config{longsize}*8 . "\n";'
32
या, यदि आपने gcc स्थापित किया है, 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
बनाम
[...]
> EOC
$ gcc -Wall -o bits bits.c
$ ./bits
32
:-)
के डुप्लिकेट के रूप में:
लिनक्स + कैसे लिनक्स संस्करण 32 बिट या 64 बिट सत्यापित करने के लिए
uname -m आपको केवल कर्नेल का रनिंग 'आर्क' / आर्किटेक्चर देगा। यह नहीं बताएगा कि आपके 64 बिट्स सक्षम सीपीयू पर 32 बिट्स जीएनयू / लिनक्स वितरण चल रहा है या नहीं।
अपनी सीपीयू क्षमता जानने के लिए:
cat /proc/cpuinfo
'LM' ध्वज 64 बिट्स सिस्टम में मौजूद होना चाहिए क्योंकि यह 'LONG MODE' (64 बिट एक्सटेंशन्स, AMD के AMD64 या Intel के EM64T) का प्रतिनिधित्व करता है।
यदि आपके पास / usr / lib64 है तो आप x86_64 चला रहे हैं।
ब्रैड गिल्बर्ट की कमान में एक बग था। मैंने इसे ठीक कर लिया है और नीचे का कमांड काम करता है: cat / proc / cpuinfo | grep ^ झंडे | perl -e '$ = <>; प्रिंट ($ ? "x86_64 \ n": "x86_64 \ n")'