在Windows中,我读取了注册表项SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName
以获取操作系统的全名和版本。
但在Linux中,代码
struct utsname ver;
uname(&ver);
retVal = ver.sysname;
返回字符串linux
,而不是Ubuntu 9.04
。
如何获取Linux发行版名称和版本?
答案 0 :(得分:32)
尝试:
cat /etc/lsb-release
您也可以尝试
lsb_release -a
或者:
cat /proc/version
答案 1 :(得分:5)
lsb_release -ds ; uname -mr
我的系统上的从bash(终端)提示符中产生以下内容:
Ubuntu 10.04.4 LTS
2.6.32-41-generic x86_64
答案 2 :(得分:4)
不确定我是否完全遵循了您的追求,但我认为您只想在uname上使用“all”标志:
uname -a
答案 3 :(得分:4)
获取该信息的目的是什么?
如果您正在尝试检测系统的某些功能或属性(例如,它是否支持某些系统调用或是否有某些库),而不是依赖于lsb_release的输出,您应该:
请注意,即使您的软件仅为二进制文件,上述第一种方法也适用。
一些代码示例:
dl = dlopen(module_path, RTLD_LAZY);
if (!dl) {
fprintf(stderr, "Failed to open module: %s\n", module_path);
return;
}
funcptr = dlsym(dl, module_function);
if (!funcptr) {
fprintf(stderr, "Failed to find symbol: %s\n", module_function);
return;
}
funcptr();
dlclose(dl);
您甚至可以优雅地测试CPU操作码支持,例如http://neugierig.org/software/chromium/notes/2009/12/flash-lahf.html,http://code.google.com/p/chromium/issues/detail?id=29789
答案 4 :(得分:3)
$ cat /etc/*-release
答案 5 :(得分:2)
一般:
cat /etc/issue
答案 6 :(得分:1)
/etc/os-release
至少在CentOS 7和Ubuntu 16.04上都可用,这使得它比lsb_release
(不在CentOS上)或/etc/system-release
(不在Ubuntu上)更具跨平台性。
$ cat /etc/os-release
示例:
NAME=Fedora
VERSION="17 (Beefy Miracle)"
ID=fedora
VERSION_ID=17
PRETTY_NAME="Fedora 17 (Beefy Miracle)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:17"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
答案 7 :(得分:1)
cat发行文件以显示Linux发行版
$ cat /etc/*-release
lsb_release 将返回Linux发行版名称和版本
$ lsb_release -a
hostnamectl 将返回Linux发行版名称和版本
$ hostnamectl
打印某些系统信息
$ uname -a
or
-s, --kernel-name print the kernel name
-n, --nodename print the network node hostname
-r, --kernel-release print the kernel release
-v, --kernel-version print the kernel version
-m, --machine print the machine hardware name
-p, --processor print the processor type (non-portable)
-i, --hardware-platform print the hardware platform (non-portable)
-o, --operating-system print the operating system
要查找静态主机名,机箱,机器ID,虚拟化,操作系统,内核,体系结构
$ cat /proc/version