uname 命令可用于大多數 UNIX 和類 UNIX 系統(tǒng)以及 Linux。
功能說明:uname用來獲取電腦和操作系統(tǒng)的相關信息。
語 法:uname [-amnrsvpio][--help][--version]
補充說明:uname可顯示linux主機所用的操作系統(tǒng)的版本、硬件的名稱等基本信息。
參 數:
-a或–all 詳細輸出所有信息,依次為內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類型,硬件平臺類型,操作系統(tǒng)名稱
-m或–machine 顯示主機的硬件(CPU)名
-n或-nodename 顯示主機在網絡節(jié)點上的名稱或主機名稱
-r或–release 顯示linux操作系統(tǒng)內核版本號
-s或–sysname 顯示linux內核名稱
-v 顯示顯示操作系統(tǒng)是第幾個 version 版本
-p 顯示處理器類型或unknown
-i 顯示硬件平臺類型或unknown
-o 顯示操作系統(tǒng)名
–help 獲得幫助信息
–version 顯示uname版本信息
最常用參數 uname -a
幾個使用示例(資料來自jb51.net):
[root@jb51.net ~]# uname
Linux
注:單獨使用uname命令時相當于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 //兩個-
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函數調用 資料收集
【uname系統(tǒng)調用】
功能描述:
獲取當前內核名稱和其它信息。
用法:
#include sys/utsname.h>
extern int uname (struct utsname *__name) __THROW;
參數:
__name:指向存放系統(tǒng)信息的緩沖區(qū),原型如下
struct utsname
{ char sysname[_UTSNAME_SYSNAME_LENGTH];//當前操作系統(tǒng)名
char nodename[_UTSNAME_NODENAME_LENGTH];//網絡上的名稱
char release[_UTSNAME_RELEASE_LENGTH];//當前發(fā)布級別
char version[_UTSNAME_VERSION_LENGTH];//當前發(fā)布版本
char machine[_UTSNAME_MACHINE_LENGTH];//當前硬件體系類型
#if _UTSNAME_DOMAIN_LENGTH - 0
/* Name of the domain of this node on the network. */
# ifdef __USE_GNU
char domainname[_UTSNAME_DOMAIN_LENGTH]; //當前域名
# else
char __domainname[_UTSNAME_DOMAIN_LENGTH];
# endif
#endif
};
返回說明:
成功執(zhí)行時,返回0。失敗返回-1,errno被設為EFAULT,表示buf無效。
關于uname的具體用法可以使用“man uname”來查看。
實例如下:
#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]; //當前域名
# else
printf(" __domainame:%s\n ",testbuff.__domainname);
//char __domainname[_UTSNAME_DOMAIN_LENGTH];
# endif
#endif
}
return 0;
}