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

getconf WORD_BIT # 輸出 word 位元數(通常為 32) getconf LONG_BIT # 輸出 long 位元數(32 位系統為 32,64 位系統為 64)
WORD_BIT=32 且 LONG_BIT=64WORD_BIT=32 且 LONG_BIT=32原理補充: C 語言資料模型中,int 通常 4 bytes;long 在 LP64 模型(Linux x86_64 採用)為 8 bytes,故 LONG_BIT=64 成為 64 位元系統鐵證。
#!/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
# 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)最直觀。掌握這兩招,再也不用猜系統架構。