Linux下判断当前系统发行版本的方法总结

测试过的Ubuntu版本为Ubuntu Server 14.04, CentOS版本为CentOS 7.3。
1、根据/etc/os-release文件,这个文件ubuntu和centOS下都有,以如下方式取出其中NAME字段的值即可判断系统版本
awk -F= '/^NAME/{print $2}' /etc/os-release
Ubuntu系统输出如下:
"Ubuntu"
CentOS系统输出如下:
"CentOS Linux"
2、使用lsb_release命令,这个命令并不一定所有发行版都默认有安装,例如在我自己的ubuntu server 14.04默认就有这个工具,而CentOS 7.3下面就没有,所以,如果有的话可以用如下命令进行判断:
lsb_release -d
Ubuntu系统输出如下:
Description:    Ubuntu 14.04.5 LTS
CentOS系统下该命令不存在,是否可以据此判断为Redhat系呢?网上看到有在CentOS上使用这个命令的例子,不能以此判断。
3、通过特征文件判断:
  • Redhat或CentOS存在/etc/redhat-release文件
  • Debian或Ubuntu存在/etc/debian_version文件,Ubuntu还存在/etc/lsb-release文件
     读取文件内容还可进一步判断系统的具体发行版本。
4、通过查看/proc/version文件判断,
cat /proc/version
Ubuntu系统下输出如下:
Linux version 4.4.0-31-generic (buildd@lgw01-43) (gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016
CentOS系统下输出如下:
Linux version 3.10.0-693.21.1.el7.x86_64 ( [email protected] ) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Wed Mar 7 19:03:37 UTC 2018
所以可以看到Ubuntu的版本信息比较清楚,CentOS里面只有builder后面有一个带centos的域名,后面括号里显示的是Red Hat,所以在区分CentOS和Redhat发行版时不够方便。

还有两种方法,我使用起来并没有那么方便,但网上有人可以用,所以也补充进来:
5、使用/etc/issue
cat /etc/issue
Ubuntu下输出:
Ubuntu 14.04.5 LTS \n \l
CentOS下输出:
\S
Kernel \r on an \m
所以可以看得出,Ubuntu下明确带有版本信息,而CentOS没有相关字段,这个并不适合所有场合。

6、使用uname -v
uname -v
Ubuntu下输出:
#50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016
CentOS下输出:
#1 SMP Wed Mar 7 19:03:37 UTC 2018
所以,看得出CentOS的输出信息也不够明确。



你可能感兴趣的:(Ubuntu系统管理)