萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 判斷系統位元數(32/64-bit)的 Shell 指令與腳本寫法

Linux 同樣分 32 位元與 64 位元架構,確認系統位元數對安裝正確套件、編譯程式至關重要。本文整理最可靠的 getconf 指令、uname 輔助判斷,並提供可直接嵌入部署腳本的 Shell 程式碼片段。

Linux 系統架構示意圖

方法一:getconf —— 最標準、跨平台通用

getconf WORD_BIT   # 輸出 word 位元數(通常為 32)
getconf LONG_BIT   # 輸出 long 位元數(32 位系統為 32,64 位系統為 64)

判斷邏輯

  • 64 位元系統:WORD_BIT=32 且 LONG_BIT=64
  • 32 位元系統:WORD_BIT=32 且 LONG_BIT=32

原理補充: C 語言資料模型中,int 通常 4 bytes;long 在 LP64 模型(Linux x86_64 採用)為 8 bytes,故 LONG_BIT=64 成為 64 位元系統鐵證。

方法二:Shell 腳本一鍵判斷並執行差異化邏輯

#!/bin/bash
if [ "$(getconf WORD_BIT)" = '32' ] && [ "$(getconf LONG_BIT)" = '64' ]; then
    # 64 位元系統專屬邏輯,例如連結庫至 /usr/lib64
    ln -sf /usr/local/mysql/lib/mysql /usr/lib64/mysql
else
    # 32 位元系統邏輯
    ln -sf /usr/local/mysql/lib/mysql /usr/lib/mysql
fi

方法三:uname -a 輔助快速肉眼辨識

# 32 位元輸出範例
Linux localhost 2.6.32-431.el6.i686 #1 SMP ... i686 i686 i386 GNU/Linux
# 關鍵字:i686 / i386

# 64 位元輸出範例
Linux demolinux 2.6.32-431.el6.x86_64 #1 SMP ... x86_64 x86_64 x86_64 GNU/Linux
# 關鍵字:x86_64

若輸出含 x86_64 即為 64 位元核心;含 i686/i386 則為 32 位元。

常見誤區提醒

❌ 錯誤認知:getconf WORD_BIT=64 才是 64 位元系統。
✅ 事實:WORD_BIT 在 64 位元 Linux 上依然輸出 32,關鍵在 LONG_BIT=64。

結語

生產環境腳本建議採用 getconf LONG_BIT 單一指令判斷,簡潔可靠;互動式操作時 uname -m(輸出 x86_64 或 i686)最直觀。掌握這兩招,再也不用猜系統架構。

copyright © 萬盛學電腦網 all rights reserved