versiones sistema sirve que para operativo informatica funciona como caracteristicas linux unix

sirve - sistema operativo linux versiones



La mejor manera de encontrar el nombre del sistema operativo y la versiĆ³n en la plataforma Unix/Linux (5)

Con perl y Linux::Distribution , la solución más limpia para un viejo problema:

#!/bin/sh perl -e '' use Linux::Distribution qw(distribution_name distribution_version); my $linux = Linux::Distribution->new; if(my $distro = $linux->distribution_name()) { my $version = $linux->distribution_version(); print "you are running $distro"; print " version $version" if $version; print "/n"; } else { print "distribution unknown/n"; } ''

Necesito encontrar el nombre y la versión del sistema operativo en la plataforma Unix / Linux. Para esto intenté seguir:

  1. utilidad lsb_release

  2. /etc/redhat-release o archivo específico

Pero no parece ser la mejor solución ya que la compatibilidad con LSB_RELEASE ya no es para RHEL 7.

¿Hay alguna forma de que funcione en cualquier plataforma Unix o Linux?

Cualquier ayuda sería muy apreciada.


El comando "lsb_release" proporciona cierta base de Linux estándar e información específica de la distribución. Entonces, usando el siguiente comando podemos obtener el nombre del sistema operativo y la versión del sistema operativo.

" lsb_release -a "


El siguiente comando funcionó muy bien para mí. Le da el nombre y la versión del sistema operativo.

lsb_release -a


En cada distribución tiene archivos de diferencias, así que escribo los más comunes:

---- CentOS Linux distro `cat /proc/version` ---- Debian Linux distro `cat /etc/debian_version` ---- Redhat Linux distro `cat /etc/redhat-release` ---- Ubuntu Linux distro `cat /etc/issue` or `cat /etc/lsb-release`

en el último / etc / issue no existía, así que probé el segundo y me devolvió la respuesta correcta


Esto funciona bien para todo el entorno Linux.

#!/bin/sh cat /etc/*-release

En Ubuntu:

$ cat /etc/*-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=10.04 DISTRIB_CODENAME=lucid DISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"

o 12.04:

$ cat /etc/*-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.04 DISTRIB_CODENAME=precise DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS" NAME="Ubuntu" VERSION="12.04.4 LTS, Precise Pangolin" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu precise (12.04.4 LTS)" VERSION_ID="12.04"

En RHEL:

$ cat /etc/*-release Red Hat Enterprise Linux Server release 6.5 (Santiago) Red Hat Enterprise Linux Server release 6.5 (Santiago)

O use este script:

#!/bin/sh # Detects which OS and if it is Linux then it will detect which Linux # Distribution. OS=`uname -s` REV=`uname -r` MACH=`uname -m` GetVersionFromFile() { VERSION=`cat $1 | tr "/n" '' '' | sed s/.*VERSION.*=/ // ` } if [ "${OS}" = "SunOS" ] ; then OS=Solaris ARCH=`uname -p` OSSTR="${OS} ${REV}(${ARCH} `uname -v`)" elif [ "${OS}" = "AIX" ] ; then OSSTR="${OS} `oslevel` (`oslevel -r`)" elif [ "${OS}" = "Linux" ] ; then KERNEL=`uname -r` if [ -f /etc/redhat-release ] ; then DIST=''RedHat'' PSUEDONAME=`cat /etc/redhat-release | sed s/.*/(// | sed s//)//` REV=`cat /etc/redhat-release | sed s/.*release/ // | sed s// .*//` elif [ -f /etc/SuSE-release ] ; then DIST=`cat /etc/SuSE-release | tr "/n" '' ''| sed s/VERSION.*//` REV=`cat /etc/SuSE-release | tr "/n" '' '' | sed s/.*=/ //` elif [ -f /etc/mandrake-release ] ; then DIST=''Mandrake'' PSUEDONAME=`cat /etc/mandrake-release | sed s/.*/(// | sed s//)//` REV=`cat /etc/mandrake-release | sed s/.*release/ // | sed s// .*//` elif [ -f /etc/debian_version ] ; then DIST="Debian `cat /etc/debian_version`" REV="" fi if [ -f /etc/UnitedLinux-release ] ; then DIST="${DIST}[`cat /etc/UnitedLinux-release | tr "/n" '' '' | sed s/VERSION.*//`]" fi OSSTR="${OS} ${DIST} ${REV}(${PSUEDONAME} ${KERNEL} ${MACH})" fi echo ${OSSTR}