linux - picard - puddletag
¿Cómo saber qué distribución de Linux estoy usando? (6)
/ etc / issue o /etc/issue.net dan una buena pista. Las distribuciones más nuevas proporcionan / etc / lsb-release que facilitan la determinación de las cadenas exactas de forma progmática, es decir, el nombre de distro / major & minor release / sitio web, etc.
En ausencia de la versión / etc / lsb, es mucho más difícil, de ahí la creación de la versión lsb.
Como dijo Alok, parece que estás en un sistema bastante antiguo (o extremadamente escaso). No creo que este sea un caso que pueda (de manera confiable) determinar de manera progresiva con unas pocas líneas de código.
Si todo lo demás falla, verifique qué tipo de administrador de paquetes está en uso (apt / rpm / otros), verifique si /etc/init.d es un enlace simbólico (distribuciones rpm / RH) o un directorio (distribuciones basadas en Debian ) ... y tiene una buena pista de lo que puede esperar que esté presente en el sistema de archivos raíz en cuanto a la estructura.
No puedes complacer a todos :)
Se mudó a https://superuser.com/questions/80251/how-to-know-which-linux-distribution-im-using
¿Cómo saber qué distribución de Linux estoy usando?
uname -a le da a Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp # 1 SMP Fri 14 de agosto 15:48:17 MDT 2009 i686 i686 i386 GNU / Linux ¿Cómo puedo saber si Ubuntu / Debian / Fedora o ¿Sombrero rojo?
Yo uso /etc/init.d/serviced restart para reiniciar servicios, parece que no es la familia Redhat
Actualizar:
[~]$ cat /etc/issue
cat: /etc/issue: No such file or directory
[~]$ cat /etc/issue.net
cat: /etc/issue.net: No such file or directory
[~]$ lsb_release -a
-sh: lsb_release: command not found
[~]$ cat /etc/*-release
cat: /etc/*-release: No such file or directory
[~]$ cat /etc/*-version
cat: /etc/*-version: No such file or directory
[~]$ cat /etc/*release
cat: /etc/*release: No such file or directory
[~]$ cat /etc/*_release
cat: /etc/*_release: No such file or directory
[~]$ cat /etc/*version
cat: /etc/*version: No such file or directory
[~]$
EL significa Enterprise Linux en este caso, así que creo que RedHat o un clon (como CentOS). No conozco una buena manera de averiguar en qué programación está; Hay algunas pistas diferentes para cada uno.
cat /etc/redhat_release
cat /etc/debian_version
es un buen comienzo (Tenga en cuenta que Ubuntu no modifica /etc/debian_version
cuando /etc/debian_version
los cambios de Debian, por lo que mi sistema Karmic de Ubuntu ha comprimido / sid en debian_version).
Edición: se olvidó de lsb. Buena llamada, Tim Post y Alok. El objetivo principal de LSB es ofrecer formas distales independientes de hacer las cosas.
Parece que aquí hay algo de información:
> cat /etc/issue
Welcome to SUSE LINUX Enterprise Server 9 (i586) - Kernel /r (/l).
> uname -a
Linux boxname 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 i686 athlon i386 GNU/Linux
> cat /etc/*-release
SUSE LINUX Enterprise Server 9 (i586)
VERSION = 9
PATCHLEVEL = 3
Prueba esto:
cat /etc/*-release
También puedes probar / etc / * - versión
Si tiene el comando lsb_release
,
lsb_release -a
le dirá (o simplemente use lsb_release -i
).
lsb_release
está en la especificación básica básica de Linux .
Editar : Parece que estás en un sistema de Red Hat. Una búsqueda en google en su salida de uname
lo sugiere . ¡Esto no es programático, por supuesto!
Una lista de los nombres de archivos de lanzamiento para las distribuciones más comunes: Archivos de lanzamiento
Y una función que podría ayudarte: Shell script