最近碰到一个问题,在Linux终端下怎么查看当前操作系统是什么,版本是什么。不同的Linux发行版不完全一样,查了一些资料现在总结如下。有以下命令可以查看:


第一种方法
# lsb_release -a


LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch
Distributor ID:    CentOS
Description:    CentOS release 5.7 (Final)
Release:    5.7
Codename:    Final


LSB是Linux Standard Base的缩写

-v, --version      显示版本信息
-i, --id           显示发行版的ID
-d, --description  显示该发行版的描述信息
-r, --release      显示当前系统是发行版的具体版本号
-c, --codename     发行版代号
-a, --all          显示上面的所有信息
-h, --help         显示帮助信息

这个命令适用于所有遵守LSB规范的的linux,包括Redhat、SuSE、Debian、Ubuntu、Centos等发行版。

接下来的命令虽不能查看当前系统名和版本,但可以显示系统核心信息。
root@MyMail ~ # uname
Linux
root@MyMail ~ # uname -r
2.6.18-164.el5
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux

以下二种方法适用于RedHat,CentOS

root@MyMail ~ # cat /etc/redhat-release(我的版本是centos 6.4所以我用的命令是cat /etc/centos-release)
CentOS release 5.7 (Final)

登录到linux执行rpm -q redhat-release
#rpm -q redhat-release
或CentOS
root@MyMail ~ # rpm -q centos-release
centos-release-5-7.el5.centos.1


RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”

rpm -q samba //查询程序是否安装

rpm -ivh  /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm    //指定安装目录

rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装;
rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本

rpm -qa | grep httpd      #[搜索指定rpm包是否安装]--all搜索*httpd*
rpm -ql httpd         #[搜索rpm包]--list所有文件安装目录

rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
rpm -qpR file.rpm       #[查看包]依赖关系
rpm2cpio file.rpm |cpio -div    #[抽出文件]

rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hash
rpm -ivh

rpm -Uvh file.rpm    #[升级一个rpm]--upgrade
rpm -e file.rpm      #[删除一个rpm包]--erase
第四种方法:

当前centos 版本与redhat对应的版本的命令

这个命令在centos下并不准确,显示的系统和版本也是Red Hat 3.4.6-10。

# cat /proc/version
Linux  version 2.6.9-78.ELsmp (mockbuild@builder16.centos.org) (gcc version  3.4.6 20060404 (Red Hat 3.4.6-10)) #1 SMP Fri Jul 25 00:04:28 EDT 2008

而此命令在Ubuntu上使用,显示中智能看出是Ubuntu,但看不出版本。

最后一种方法:

#cat /etc/issue

在CentOS下执行显示为:

CentOS release 5.7 (Final)
Kernel \r on an \m


或在Ubuntu下显示为:

Ubuntu 11.04 \n \l


可以查看当前正在运行的 Ubuntu 的版本号。