uname 命令可用于大多數(shù) UNIX 和類 UNIX 系統(tǒng)以及 Linux。
功能說明:uname用來獲取電腦和操作系統(tǒng)的相關(guān)信息。
語 法:uname [-amnrsvpio][--help][--version]
補(bǔ)充說明:uname可顯示linux主機(jī)所用的操作系統(tǒng)的版本、硬件的名稱等基本信息。
參 數(shù):
-a或–all 詳細(xì)輸出所有信息,依次為內(nèi)核名稱,主機(jī)名,內(nèi)核版本號(hào),內(nèi)核版本,硬件名,處理器類型,硬件平臺(tái)類型,操作系統(tǒng)名稱
-m或–machine 顯示主機(jī)的硬件(CPU)名
-n或-nodename 顯示主機(jī)在網(wǎng)絡(luò)節(jié)點(diǎn)上的名稱或主機(jī)名稱
-r或–release 顯示linux操作系統(tǒng)內(nèi)核版本號(hào)
-s或–sysname 顯示linux內(nèi)核名稱
-v 顯示顯示操作系統(tǒng)是第幾個(gè) version 版本
-p 顯示處理器類型或unknown
-i 顯示硬件平臺(tái)類型或unknown
-o 顯示操作系統(tǒng)名
–help 獲得幫助信息
–version 顯示uname版本信息
最常用參數(shù) uname -a
幾個(gè)使用示例(資料來自jb51.net):
[root@jb51.net ~]# uname
Linux
注:?jiǎn)为?dú)使用uname命令時(shí)相當(dāng)于uname -s
[root@jb51.net ~]# uname -a
Linux jb51.net 2.6.18-4-686 #1 SMP Mon Mar 26 17:17:36 UTC 2007 i686 GNU/Linux
[root@jb51.net ~]# uname -m
i686
[root@jb51.net ~]# uname -n
jb51.net
[root@jb51.net ~]# uname -r
2.6.18-4-686
[root@jb51.net ~]# uname -s
Linux
[root@jb51.net ~]# uname -v
#1 SMP Mon Mar 26 17:17:36 UTC 2007
[root@jb51.net ~]# uname -p
i686
[root@jb51.net ~]# uname -i
i386
[root@jb51.net ~]# uname -o
GNU/Linux
[root@jb51.net ~]# uname --version //兩個(gè)-
uname (GNU coreutils) 5.97
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
Written by David MacKenzie.
推薦閱讀 Linux uname函數(shù)調(diào)用 資料收集
【uname系統(tǒng)調(diào)用】
功能描述:
獲取當(dāng)前內(nèi)核名稱和其它信息。
用法:
#include sys/utsname.h>
extern int uname (struct utsname *__name) __THROW;
參數(shù):
__name:指向存放系統(tǒng)信息的緩沖區(qū),原型如下
struct utsname
{ char sysname[_UTSNAME_SYSNAME_LENGTH];//當(dāng)前操作系統(tǒng)名
char nodename[_UTSNAME_NODENAME_LENGTH];//網(wǎng)絡(luò)上的名稱
char release[_UTSNAME_RELEASE_LENGTH];//當(dāng)前發(fā)布級(jí)別
char version[_UTSNAME_VERSION_LENGTH];//當(dāng)前發(fā)布版本
char machine[_UTSNAME_MACHINE_LENGTH];//當(dāng)前硬件體系類型
#if _UTSNAME_DOMAIN_LENGTH - 0
/* Name of the domain of this node on the network. */
# ifdef __USE_GNU
char domainname[_UTSNAME_DOMAIN_LENGTH]; //當(dāng)前域名
# else
char __domainname[_UTSNAME_DOMAIN_LENGTH];
# endif
#endif
};
返回說明:
成功執(zhí)行時(shí),返回0。失敗返回-1,errno被設(shè)為EFAULT,表示buf無效。
關(guān)于uname的具體用法可以使用“man uname”來查看。
實(shí)例如下:
#include sys/utsname.h>
#include stdio.h>
#include stdlib.h>
int main()
{
struct utsname testbuff;
int fb=0;
fb=uname(testbuff);
if(fb0)
{
perror("uname");
return 0;
}else
{
printf(" sysname:%s\n nodename:%s\n release:%s\n version:%s\n machine:%s\n \n ",\
testbuff.sysname,\
testbuff.nodename,\
testbuff.release,\
testbuff.version,\
testbuff.machine);
#if _UTSNAME_DOMAIN_LENGTH - 0
# ifdef __USE_GNU
printf(" domainame:%s\n ",testbuff.domainname);
//char domainname[_UTSNAME_DOMAIN_LENGTH]; //當(dāng)前域名
# else
printf(" __domainame:%s\n ",testbuff.__domainname);
//char __domainname[_UTSNAME_DOMAIN_LENGTH];
# endif
#endif
}
return 0;
}