Ответ 1
Попробуйте следующее:
cat /etc/*-release
Вы также можете попробовать /etc/ * - version
Переместился на https://superuser.com/info/80251/how-to-know-which-linux-distribution-im-using
Как узнать, какое дистрибутив Linux я использую?
uname -a дает Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp # 1 SMP Пт Авг 14 15:48:17 MDT 2009 i686 i686 i386 GNU/Linux Как я могу узнать, что это Ubuntu/Debian/Fedora или Redhat?
Я использую перезапуск /etc/init.d/serviced для перезапуска serevices, кажется, что это не семейство Redhat
Update:
[~]$ 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
[~]$
Попробуйте следующее:
cat /etc/*-release
Вы также можете попробовать /etc/ * - version
Если у вас есть команда lsb_release
,
lsb_release -a
сообщит вам (или просто используйте lsb_release -i
).
lsb_release
находится в Стандартная базовая базовая спецификация Linux.
Изменить: Похоже, вы находитесь в системе Red Hat. Поиск Google на вашем uname
выходе предлагает это. Конечно, это не программно!
/etc/issue или /etc/issue.net дают хорошую подсказку. Новые дистрибутивы предоставляют /etc/lsb -release, которые упрощают определение точных строк прогматически, то есть имя-дистрибутив/основной и младший выпуск/веб-сайт и т.д.
В отсутствие /etc/lsb -release его гораздо сложнее, следовательно, создание lsb-release.
Как сказал Алок, похоже, что вы находитесь на довольно древней (или крайне редкой) системе. Я не думаю, что это случай, который вы можете (надежно) прогматически определить с помощью нескольких строк кода.
Если все остальное не работает, проверьте, какой тип менеджера пакетов используется (apt/rpm/others), проверьте, является ли /etc/init.d символической связью (rpm/RH distros) или каталогом ( дистрибутивы на основе debian).. и у вас есть довольно хорошая подсказка относительно того, что вы можете ожидать от присутствия в корневой файловой системе в отношении структуры.
Вы не можете понравиться всем:)
Похоже, здесь есть информация:
> 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
Перечислите имена файлов выпуска для наиболее распространенных дистрибутивов: Отменить файлы
И функция, которая может вам помочь: Shell script
В этом случае EL означает Enterprise Linux, поэтому я думаю, что RedHat или клон (например, CentOS). Я не знаю, как правильно программировать, какой дистрибутив вы используете; есть несколько разных подсказок для каждого из них.
cat /etc/redhat_release
cat /etc/debian_version
- хорошее начало. (Обратите внимание, что Ubuntu не изменяет /etc/debian_version
, когда они извлекают изменения из Debian, поэтому моя система Ubuntu Karmic имеет сжатие /sid в debian_version.)
Изменить: забыли про lsb. Хороший звонок, Тим Пост и Алок. Вся суть LSB заключается в том, чтобы дать независимые от дистрибутива способы сделать что-то.