获取处理器运算位数
在写脚本(如:lnmp)时,经常需要判断linux操作系统是64bit还是32bit,如果是64bit执行这个命令(ln -s
/usr/local/lib/libmcrypt.la
/usr/lib64/libmcrypt.la),如果是32bit则执行另一个命令(ln -s
/usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la)
使用getconf LONG_BIT,会直接返回32or64,如:
[root@halamadrid ~]# getconf LONG_BIT
64
”getconf WORD_BIT”&”getconf LONG_BIT”
判断linux系统是32位还是64位其实有很多方法,推荐用getconf。 然而有人认为getconf WORD_BIT=32则是32bit,getconf WORD_BIT=64则是64bit,请去64bit机器上执行,这种理解其实是错误的。因为getconf WORD_BIT在64位机器上显示结果也可能是32。
32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节。linux系统中可用”getconf WORD_BIT”和”getconf LONG_BIT”获得word和long的位数。64位系统中应该分别得到32和64。故使用getconf LONG_BIT才能准确返回对应处理器位数的数字。
shell脚本通常做法如下:
if [ `getconf WORD_BIT` = '32' ] && [ `getconf LONG_BIT` = '64' ] ; then
ln -s /usr/local/lib/libmcrypt.la /usr/lib64/libmcrypt.la
else
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
获取内核名称
uname -a。会返回内核名称,如:
[root@halamadrid ~]# uname -a
Linux centos7.2 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
也能看出位数。