Что такое операционная система, как выбрать ОС, их виды и отличия
Для начала определимся что такое операционная система и зачем она нужна.
Операционная система (ОС, Operating system, OS) — это набор программ, которые обеспечивают управление и взаимодействие систем компьютера между собой, а также позволяют пользователю работать со своим оборудованием.
Для чего нужна операционная система: без установленной ОС невозможно произвести никаких действий на компьютере. ОС выделяет и распределяет ресурсы между запущенными программами, определяет объем оперативной памяти для оптимизированной работы всего компьютера.
Отметим, что операционная система есть не только в компьютерах, но и в мобильных телефонах. Она выполняет такую же функцию – взаимодействие внутренних ресурсов и доступ пользователя к программам на телефоне. На сегодняшний день на рынке существуют две мобильные ОС, которые успешно используются в смартфонах – Android и iOS.
В дальнейшем речь пойдет об ОС для персональных компьютеров и серверов.
Виды операционных систем
Первые операционные системы были довольно примитивными и позволяли выполнять небольшой набор функций. На экране выводилась командная строка, где указывалась команда для выполнения. Но технологии не стоят на месте, поэтому ОС дорабатывали, обновляли, позволяя пользователю справляться с большим количеством сложных задач. Командную строку со временем заменили на иконки, а количество различных программ увеличилось.
Существует несколько наиболее известных операционных систем. Основные отличия ОС друг от друга: стоимость, поддерживаемые программы, открытость кода, уровень безопасности.
WindowsРазработана компанией Microsoft. Хотя операционная система платная, она самая популярная в мире среди пользователей компьютеров и ноутбуков, предустановленная на большинстве ПК.
Первая версия программы вышла в 1985 году. Наиболее популярная Windows10 считается не только удобной, но и с повышенной безопасностью. В настоящее время уже выпущена версия Windows11, по сравнению с предыдущей версией, у нее появился новый интерфейс, панель виджетов, улучшена многозадачность и добавлена поддержка приложений на Android. Новая версия системы пока используется меньше, в нее вносятся улучшения и дополнения.
Windows знакома многим пользователям со всего мира, она отличается быстрым запуском и простотой в использовании. Программа имеет долгую историю развития, а пользовательский интерфейс подходит для многих устройств. При выходе новой версии ОС не происходит кардинальных изменений, поэтому не требуется заново обучаться работе с системой. Многие пользовательские программы и игры разработаны для Windows, что также объясняет ее популярность.
MacOSОперационная система компании Apple, которая устанавливается только на ее продукцию. Она разработана под конкретное оборудование и работает на нем максимально эффективно. Отличительная особенность системы – взаимная интеграция macOS и iOS. Все устройства Apple могут взаимодействовать друг с другом, например, сделанный скриншот на телефоне можно тут же открыть на компьютере. У MacOS очень приятный и понятный интерфейс, высокая скорость работы, максимальная степень защиты.
LinuxLinux — семейство бесплатных операционных систем с открытым исходным кодом, работающих на основе одноимённого ядра. Это значит, что на базе ядра Linux могут создаваться различные операционные системы. У линукс несколько версий, которые можно использовать. Самые популярные из них: Ubuntu, Debian и Fedora.
- Ubuntu
Ubuntu – самая популярная ОС на базе Linux. Ее выбирают за простоту, приятный интерфейс и высокую скорость работы. Как и остальные операционные системы семейства она является бесплатной и с открытым кодом. Ubuntu обеспечивает отличную степень безопасности и эффективное распределение ресурсов. В отличие от других ОС семейства она несколько сложнее в настройке.
- Fedora
Отлично работает на компьютерах и на ноутбуках. У Fedora удобный пользовательский интерфейс, она использует продвинутые инструменты с открытым исходным кодом. Данную ОС часто применяют для корпоративного использования.
- Debian
Отличается высокой скоростью работы, максимально простой установкой и расширенными возможностями для работы с сетью. Она менее универсальна, поэтому перед использованием лучше ознакомиться с ее возможностями.
- CentOS
Операционная система с открытым исходным кодом на базе Red Hat Enterprise Linux компании Red Hat. Хотя дистрибутив Red Hat Enterprise Linux является коммерческим CentOS распространяется полностью бесплатно. Ее отличают высокая стабильность работы и долгие сроки поддержки разработчиками. CentOS предназначена для корпоративных клиентов, используется чаще всего на выделенных серверах.
UnixПоявилась в 1970-х годах, она стала основой для многих современных ОС. Unix сейчас используется только в серверах, так как заточен на работу с ними.
У серверов нет клавиатуры и монитора, подключения идет по сетевым соединениям, поэтому разработчики не озадачились созданием привлекательного интерфейса. Зато Unix гарантирует надёжность, производительность и масштабируемость. Unix — это фундамент для всех Linux-систем.- Free BSD
ОС на базе Unix с открытым исходным кодом. Она отличается совместимостью с различными платформами, высокой скоростью работы, простой установкой, надежностью. Отлично подходит для работы в сети, справляется с большими нагрузками.
Какую операционную систему выбрать
Чтобы выбрать операционную систему нужно четко представлять задачи, которые будут решаться. Это поможет сделать четкий выбор в пользу той или иной ОС.
Особое отличие ОС MacOS от всех остальных – большое внимание к дизайну и внешнему виду. Она очень удобна в использовании, интуитивно понятна даже начинающему пользователю. MacOS закрытая операционная система. Это значит, что ее код не доступен для редактирования и любой желающий не может внести в него правки и, например, исправить найденные ошибки.
Если вы планируете работать на оборудовании Apple или разрабатывать для него какие-то программы и приложения, то здесь вариант только один – использовать родную ОС.
Если ваша деятельность не привязана к продукции компании Apple, то вам остается выбирать между Windows и Linux (объединим под этим названием все UNIX-подобные системы).
Дать однозначную рекомендацию по выбору ОС невозможно. Обе системы поддерживают примерно один список языков программирования и сред разработки, имеют хорошие показатели по работоспособности, загрузки и безопасности. Поэтому часто все зависит от привычек и предпочтений самого пользователя.
Отличия ОС Windows и Linux
Отметим достоинства и недостатки каждой системы, которые помогут сделать выбор.
Безопасность
Так как Windows более распространенная ОС, то она чаще подвергается атакам различных вирусов и угрозам, даже при домашнем использовании рекомендуется устанавливать антивирусную программу для защиты ПК. Linux в этом плане более безопасная, найденные изъяны в системе очень быстро устраняются.
Стоимость
ОС Windows платная, стоимость лицензии зависит от ее вида. Чем дороже лицензия, тем больше у нее функционала. Например, в продвинутой версии есть возможность шифрования данных. Linux абсолютная бесплатная программа, поэтому она интересна для бизнесов, у которых в штате достаточное количество компьютеров.
Установка
Windows устанавливается достаточно просто, с этим может разобраться даже начинающий пользователь. Сложности могут возникнуть в случае дополнительных настроек. Для установки дистрибутивов Linux потребуется загрузить образ программы на флешку. Скачать их можно на официальном сайте. Установка ОС может проходить автоматически или в ручном режиме. Возможна загрузка Linux одновременно с другой ОС, но в этом случае потребуются определенные навыки или подробная инструкция по установке.
Требования к оборудованию
Для работы последних версий Windows потребуется двухъядерный процессор и 1 Гб оперативной памяти. Требования для нормальной работы Linux ниже: достаточно одноядерного процессора и 256 Мб оперативной памяти.
Поддерживаемое программное обеспечение
Популярность Windows – причина большого разнообразия программ, которые разрабатываются под нее. Особенно часто под Windows делаются компьютерные игры, поэтому она является более предпочтительной ОС для геймеров. Хотя Linux постоянно дополняет список доступных программ, иногда требуется самостоятельная доработка под нестандартные задачи. Linux популярна среди разработчиков и web-программистов, они выбирают ее за гибкость настроек, безопасность и открытый код. Windows – в первую очередь используют начинающие пользователи и частные владельцы ПК по причине большого разнообразия доступных программ и простоты использования.
Стоит ли платить за операционную систему
Платная ОС разрабатывается коммерческой компанией, всем своим пользователям они предоставляют техническую поддержку и помогают в решение различных вопросов. В случае бесплатных ОС таких гарантий нет. Поддержка систем и их доработка производится сообществом энтузиастов, то есть в любой момент разработчик может прекратить поддержку своего модуля или программы. Бизнес может использовать только лицензионные платные программы или программы с бесплатной лицензией (freeware). Учитывая риски, каждая компания самостоятельно принимает решение, платить за операционную систему или нет.
Серверные операционные системы
Что такое серверная операционная система? Это ОС, которая необходима для управления программами, приложениями, службами и сетевыми решениями. Чем отличается серверная операционная система от обычной: серверные ОС требуют больше объема памяти, так как обеспечивают взаимодействие с большим количеством пользователей, а также могут выполнять функции почтового, игрового сервера или другие функции IT-инфраструктуры.
Основное назначение ОС для сервера — управление приложениями, которые используют все пользователи корпоративной сети или внешние пользователи. Это, например, системы управления базами данных, программы управления сетями и анализа событий в сети, средства обмена сообщениями, Web-серверы, почтовые серверы, серверные части бизнес-приложений. Поэтому требования к производительности и надежности серверных операционных систем очень высоки.
Какие операционные системы используются на серверах
Microsoft Windows Server
ОС для сервера, которая знакома многим администраторам. Она достаточно удобная в использовании, обладает широким набором функций, нет проблем с совместимостью. Из негативных моментов отметим, что Windows требует чуть больше системных ресурсов, часто подвергается атакам вирусов и является платной лицензией.
FreeBSD
В отличие от Microsoft является бесплатной, хорошо справляется с нагрузками и достаточно безопасна. FreeBSD имеет целостное ядро, к которому применима тонкая настройка при соответствующих знаниях. Система продолжает активно развиваться. Негативные моменты: отсутствие достаточного количества инструкций по работе с системой, для администрирования нужен специалист, хорошо разбирающийся в работе системы.
CentOS Server
Одна из самых популярных серверных систем. Она построена на базе Red Hat Enterprise Linux (RHEL) и является продуктом с открытым исходным кодом. Популярность системы обусловлена минимальными требованиями к ресурсам.
CentOS поддерживает наиболее популярные панели хостинга, имеет широкую функциональность и удобный интерфейс. Ответы на вопросы по работе с системой можно найти на различных форумах и сообществах пользователей CentOS.
Ubuntu Server
Широко используется для веб-разработки, служб маршрутизации, терминальных серверов. ОС понятна в управлении, показывает высокую стабильность в работе, имеет регулярные обновления, хороший уровень безопасности. Из недостатком стоит отметить ограниченное количество программ, написанных для данной ОС.
Debian Server
Один из старейших дистрибутивов Linux. Используется бесплатно по лицензии GNU GPL. Система обладает гибкостью, высоким уровнем безопасности, требует минимальное количество ресурсов. В сети можно найти огромное количество документации от комьюнити разработчиков. Минусом системы является редкое обновление и не самый дружественный интерфейс.
Fedora Server
Серверная операционная система создана для хранения и обработки данных, удобного управления сервисами и инфраструктурой. Является бесплатной, надежной и безопасной, с невысокими системными требованиями. Обновления ОС выходят 1-2 раза в год. К недостаткам можно отнести ограниченное число программ для данной ОС, а для более тонкой настройки потребуются более профессиональные знания.
Oracle Linux Server ОС
Оптимизирована для работы баз данных, подходит для корпоративных задач по развертыванию масштабных инфраструктур, облачных нагрузок. Дистрибутив является бесплатным, но можно включить платную техническую поддержку. Система обладает дружелюбным интерфейсом, отличается стабильностью и надежностью, удобна в администрировании, поддерживает применения правок в реальном времени – то есть без перезагрузок и перерывов в работе системы. Новые версии системы выходят достаточно редко, что можно отнести к минусам данной ОС.
Заключение
Операционная система – программа, без которой невозможна работа компьютера и взаимодействие с пользователем. Существует большое разнообразие операционных систем, чтобы выбрать подходящую ОС нужно определить задачи, которые потребуют решения. А также стоит обратить внимание на цену, защиту от вирусов, надежность, частоту обновлений и удобство использования.
Серверная операционная система – более функциональная программа и требует больше оперативной памяти.
Универсальной ОС для серверов не существует. Выбор операционной системы зависит от задач, которые она должна решать. Когда ваша ОС не справляется с текущими функциями, стоит присмотреться к расширению функционала или выбору другой операционной системы.
Операционная система общего назначения (ОСОН) «ОСнова»
Перейти на сайт ОС ОСНОВА
Свидетельство о государственной регистрации программы для ЭВМ № 2018616118 от 23.05.2018.
Включена в «Единый реестр российских программ для электронных вычислительных машин и баз данных».
Получен сертификат соответствия ФСТЭК России № 4381 на соответствие требованиям по безопасности информации, установленным в документах «Требования по безопасности информации, устанавливающие уровни доверия к средствам технической защиты информации и средствам обеспечения безопасности информационных технологий» (ФСТЭК России, 2020) — по 4 уровню доверия, «Требования безопасности информации к операционным системам» (ФСТЭК России, 2016), «Профиль защиты операционных систем типа А четвертого класса защиты ИТ.ОС.А4.ПЗ» (ФСТЭК России, 2017).
Назначение: построение защищённых автоматизированных систем (АС ЗИ), обрабатывающих конфиденциальную информацию и персональные данные.
Преимущества:
стабильное, с долговременной поддержкой, ядро Linux, обеспечивающее максимальную защиту памяти — без изменений;
средства организации домена Active Directory с удобным инструментом администрирования;
система регистрации событий в полном соответствии с требованиями ИТ. ОС.А4.ПЗ, гибкой политикой управления и удобным средством просмотра;
замкнутая программная среда:
контроль целостности файлов любого типа до исполнения;
поддержка алгоритмов криптографических преобразований России и Казахстана;
возможность интеграции с решениями Рутокен и КриптоПро;
работа продуктов сторонних разработчиков без их модификации.
Области применения:
государственные информационные системы;
обработка персональных данных;
банковская сфера;
медицинские и учебные заведения;
обработка конфиденциальных данных.
Внешний вид:
Руководство оператора ОС «ОСнова» (размер ~ 3 МБ).
Руководство администратора ОС «ОСнова» (размер ~ 8 МБ).
Поделиться:
В наши компетенции входит: импортозамещение в сфере информационных технологий (ИТ), создание доверенной защищённой среды, автоматизированных систем в защищённом исполнении (АИС), разработка операционных систем (ОС), систем управления базами данных (СУБД), программного обеспечения (ПО), защищённых веб-порталов, средств защиты информации (СЗИ), программно-аппаратных комплексов (ПАК, АПК, ПТК), внедрение доверенной системы виртуализации и интеллектуальной системы управления телекоммуникационным оборудованием (SDN) в России и странах СНГ.
КОНТАКТНАЯ ИНФОРМАЦИЯ
Адрес: 127474, Россия, г. Москва, Дмитровское шоссе, д. 60А. БЦ «Лихоборский»
Телефон: +7-499-280-09-70, email: mailnppct.ru
При использовании материалов сайта гиперссылка на сайт обязательна.
© АО «НППКТ», 2017—2023
Python os.name возвращает nt в Windows 7
Python os.name возвращает «nt» в Windows 7
Я использую os.name для получения имени текущей операционной системы, под которой работает текущий скрипт. Но странно, вместо «виндовс 7» возвращает «нт».
Вот код:
импорт ОС печать (имя ОС)
И результат:
нт
- питон
3
Можно использовать платформа
модуль для проверки:
В [244]: импортировать платформу В [247]: platform.version() Исходящий[247]: '6.1.7601' В [248]: platform.system() Выход[248]: 'Windows' В [249]: platform.release() Вышел[249]: '7' В [250]: platform.win32_ver() Out[250]: ('7', '6.1.7601', 'SP1', 'Многопроцессор бесплатно') В [268]: platform.platform() Выход[268]: «Windows-7-6.1.7601-SP1»
Так что просто используйте platform.system() == 'Windows' и platform.release() == 7
для проверки 😉
Или проще 'Windows-7' в platform.platform()
.
1
Модуль os позволяет нам запускать разный код в зависимости от того, в какой операционной системе он работает.
nt означает, что вы используете Windows, и posix mac
Если вы хотите проверить, является ли ОС Windows, Linux или OSX, то наиболее надежным способом является platform.system(). Если вы хотите выполнять вызовы, специфичные для ОС, но через встроенные модули Python posix или nt, используйте os.name.
>>> импортная платформа >>> платформа.система() 'Windows' # для Linux печатается 'Linux', для Mac печатается `'Darwin'
Подробнее см. здесь. Python: на какой ОС я работаю?
‘nt’ означает ‘Новая технология’, которая изначально появилась с выпуском 32-битной версии. Но после этого название переносилось просто без какого-либо конкретного значения. для получения дополнительной информации см.: что такое NT?
Согласно документу, os.name
в настоящее время имеет одно из следующих значений: ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’, ‘riscos’. То, что вам нужно, может быть системная платформа
.
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
ОбнаружениеОС — Как определить ОС из сценария Bash?
спросил
Изменено 4 месяца назад
Просмотрено 441 тысяч раз
Я хотел бы сохранить файлы . bashrc
и .bash_login
в системе контроля версий, чтобы я мог использовать их на всех компьютерах, которые использую. Проблема в том, что у меня есть псевдонимы для определенных ОС, поэтому я искал способ определить, работает ли скрипт в Mac OS X, Linux или Cygwin.
Как правильно определить операционную систему в сценарии Bash?
- баш
- ос-обнаружение
6
Я думаю, должно работать следующее. Я не уверен насчет win32
.
if [[ "$OSTYPE" == "linux-gnu"* ]]; затем # ... elif [[ "$OSTYPE" == "darwin"* ]]; затем # Mac OS X elif [[ "$OSTYPE" == "cygwin" ]]; затем # Уровень совместимости POSIX и эмуляция среды Linux для Windows elif [[ "$OSTYPE" == "msys" ]]; затем # Облегченная оболочка и утилиты GNU, скомпилированные для Windows (часть MinGW) elif [[ "$OSTYPE" == "win32" ]]; затем # Я не уверен, что это может произойти.elif [[ "$OSTYPE" == "freebsd"* ]]; затем # ... еще # Неизвестный. фи
20
Для моего .bashrc я использую следующий код:
platform='unknown' unamestr=$(имя) если [[ "$unastr" == 'Linux' ]]; затем платформа = 'линукс' elif [[ "$unamestr" == 'FreeBSD' ]]; затем платформа = 'freebsd' фи
Затем я делаю что-то вроде:
if [[ $platform == 'linux' ]]; затем псевдоним ls='ls --color=auto' elif [[ $platform == 'freebsd' ]]; затем псевдоним ls='ls -G' фи
Некрасиво, но работает. Вы можете использовать случай
вместо , если
, если хотите.
10
На странице руководства bash указано, что переменная OSTYPE хранит имя операционной системы:
OSTYPE
Автоматически устанавливается в строку, описывающую операционную систему, в которой выполняется bash. По умолчанию система- зависимый.
Здесь установлено значение linux-gnu
.
11
$OSTYPE
Вы можете просто использовать предопределенную переменную $OSTYPE
например:
случай "$OSTYPE" в солярис*) эхо "СОЛЯРИС" ;; darwin*) echo "OSX" ;; linux*) echo "LINUX" ;; bsd*) эхо "BSD" ;; msys*) эхо "WINDOWS" ;; cygwin*) echo "ТАКЖЕ WINDOWS" ;; *) echo "неизвестно: $OSTYPE" ;; эсак
Однако он не распознается более старыми оболочками (такими как Bourne shell ).
имя
Другой метод — определение платформы на основе команды uname
.
См. следующий скрипт (готовый для включения в .bashrc):
# Определить платформу (аналогично $OSTYPE) ОС="`унаме`" случай $OS в «Линукс») ОС = 'Линукс' псевдоним ls='ls --color=auto' ;; «ФриБСД») ОС='FreeBSD' псевдоним ls='ls -G' ;; «ВиндовсНТ») ОС='Windows' ;; 'Дарвин') ОС = 'Мак' ;; «СанОС») ОС='Солярис' ;; 'AIX') ;; *) ;; эсак
Вы можете найти несколько практических примеров в моих . bashrc
.
Вот аналогичная версия, используемая в Travis CI:
case $(uname | tr '[:upper:]' '[:lower:]') в линукс*) экспорт TRAVIS_OS_NAME=linux ;; Дарвин*) экспорт TRAVIS_OS_NAME=osx ;; msys*) экспорт TRAVIS_OS_NAME=окна ;; *) экспорт TRAVIS_OS_NAME=не установлен ;; эсак
3
Определить операционную систему и ЦП типа не так-то просто портативно . У меня есть сценарий sh
, состоящий примерно из 100 строк, который работает на самых разных платформах Unix: на любой системе, которую я использовал с 1988 года. но обычно это unknown
на современных платформах Unix.
uname -m
даст «имя аппаратного обеспечения» в некоторых системах Unix.
/bin/arch
, если он существует, обычно указывает тип процессора.
uname
без аргументов будет называть операционную систему.
В конце концов вам придется подумать о различиях между платформами и о том, насколько хорошо вы хотите их сделать. Например, для простоты я трактую от i386
до i686
, любой « Pentium*
» и любой « AMD*Athlon*
» как x86
.
Мой ~/.profile
запускает скрипт при запуске, который устанавливает одну переменную в строку, указывающую комбинацию процессора и операционной системы. У меня есть платформа для конкретной платформы bin
, man
, lib
и включают каталоги
, которые настраиваются на основе этого. Затем я установил множество переменных среды. Так, например, сценарий оболочки для переформатирования почты может вызвать, например, $LIB/mailfmt
, который является исполняемым двоичным файлом для конкретной платформы.
Если вы хотите срезать углы, , uname -m
и простой uname
скажут вам то, что вы хотите знать на многих платформах. Добавьте другие вещи, когда вам это нужно. (И используйте случай
, не вложенный если
!)
4
Я рекомендую использовать этот полный код bash
нижний регистр(){ эхо "$1" | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/" } ОС=`нижний регистр \`uname\`` ЯДРО=`унаме -r` MACH=`uname -m` если [ "{$OS}" == "windowsnt" ]; затем ОС=виндовс elif [ "{$OS}" == "darwin" ]; затем ОС=макинтош еще ОС=`имя` если [ "${OS}" = "SunOS" ] ; затем ОС=Солярис ARCH=`унаме-p` OSSTR="${OS} ${REV}(${ARCH} `uname -v`)" elif [ "${OS}" = "AIX" ] ; затем OSSTR="${OS} `oslevel` (`oslevel -r`)" elif [ "${OS}" = "Linux" ] ; затем если [-f /etc/redhat-релиз]; затем DistroBasedOn='RedHat' DIST=`cat /etc/redhat-release |sed s/\ выпуск.*//` PSUEDONAME=`cat /etc/redhat-release | sed s/.*\(// | sed s/\)//` REV=`cat /etc/redhat-release | sed s/. DISTRIB_RELEASE' | awk -F= '{напечатать $2}'` фи если [ -f /etc/UnitedLinux-релиз] ; затем DIST="${DIST}[`cat /etc/UnitedLinux-release | tr "\n" ' ' | sed s/VERSION.*//`]" фи ОС=`строчная $ОС` DistroBasedOn=`$DistroBasedOn в нижнем регистре` ОС только для чтения только для чтения DIST только для чтения DistroBasedOn только для чтения PSUEDONAME только для чтения REV Ядро только для чтения MACH только для чтения фи фи эхо $ ОС эхо $ядро эхо $MACH 9Дарвин ]]; затем
Дополнительным преимуществом которого является соответствие любой версии Darwin, несмотря на суффикс версии. Это также работает для любых вариантов Linux
, которые можно ожидать.
Вы можете увидеть некоторые дополнительные примеры в моих точечных файлах здесь
1
имя
или
uname -a
если вам нужна дополнительная информация
В bash используйте $OSTYPE
и $HOSTTYPE
, как задокументировано; вот что я делаю. Если этого недостаточно, и если даже uname
или uname -a
(или другие подходящие варианты) не дают достаточно информации, всегда есть скрипт config.guess из проекта GNU, сделанный именно для этой цели.
Попробуйте использовать «uname». Например, в Linux: «uname -a».
Согласно странице руководства, uname соответствует SVr4 и POSIX, поэтому он также должен быть доступен в Mac OS X и Cygwin, но я не могу этого подтвердить.
Кстати: $OSTYPE здесь также установлен на linux-gnu
🙂
1
Я записал эти сахара в свой .bashrc
:
if_os () { [[ $OSTYPE == *$1* ]]; } если_никс () { случай "$OSTYPE" в *linux*|*hurd*|*msys*|*cygwin*|*sua*|*interix*) sys="gnu";; *bsd*|*darwin*) sys="bsd";; *sunos*|*solaris*|*indiana*|*illumos*|*smartos*) sys="sun";; эсак [[ "${sys}" == "$1" ]]; }
Итак, я могу делать такие вещи, как:
if_nix gnu && alias ls='ls --color=auto' && export LS_COLORS=". .." if_nix bsd && export CLICOLORS=on && export LSCOLORS="..." if_os linux && alias psg="ps -FA | grep" #альтернатива pgrep if_nix bsd && alias psg="ps -alwx | grep -i" #альтернатива pgrep if_os darwin && псевдоним finder="open -R"
4
Ниже приведен способ обнаружения Debian и RedHat на основе 9ИМЯ | grep Knoppix ; затем эхо «=============================================== «=» echo «Установка пакетов $DEB_PACKAGE_NAME на Kanoppix» эхо «=============================================== «=» apt-получить обновление apt-get install -y $DEB_PACKAGE_NAME еще echo «ОС НЕ ОБНАРУЖЕНА, не удалось установить пакет $PACKAGE» выход 1; фи выход 0
Пример вывода для Ubuntu Linux:
delivery@delivery-E5450$ sudo shDetect_os.sh [sudo] пароль для доставки: ИМЯ="Убунту" =============================================== Установка пакетов python2.7 python-dev python-pip libssl-dev на Ubuntu =============================================== Запустите http://dl. google.com стабильную версию InRelease Получите: 1 http://dl.google.com стабильный Release.gpg [916 Б] Получить: 2 http://dl.google.com стабильную версию [1.189 B] ...
Вы можете использовать следующее:
OS=$(uname -s)
, тогда вы можете использовать переменную ОС в своем скрипте.
3
Я написал личную библиотеку Bash и среду сценариев, которая использует GNU shtool для довольно точного определения платформы.
GNU shtool — это очень портативный набор скриптов, который содержит, среди прочего, команду «shtool platform». Вот результат:
платформа shtool -v -F "%sc (%ac) %st (%at) %sp (%ap)"
на нескольких разных машинах:
Mac OS X Leopard: 4.4BSD/Mach4.0 (iX86) Apple Darwin 9.6.0 (i386) Apple Mac OS X 10.5.6 (iX86) Сервер Ubuntu Веселый: LSB (iX86) GNU/Linux 2.9/2.6 (i686) Ubuntu 9.04 (iX86) Дебиан Ленни: LSB (iX86) GNU/Linux 2.7/2.6 (i686) Debian GNU/Linux 5. 0 (iX86)
Как видите, это дает вполне удовлетворительные результаты. GNU shtool работает немного медленно, поэтому я фактически сохраняю и обновляю идентификацию платформы в файле в системе, которую вызывают мои сценарии. Это моя структура, поэтому она работает для меня, но ваш пробег может отличаться.
Теперь вам нужно найти способ упаковать shtool со своими скриптами, но это несложное упражнение. Вы также всегда можете вернуться к выводу uname.
РЕДАКТИРОВАТЬ:
Я пропустил сообщение Тедди о config.guess
(каким-то образом). Это очень похожие скрипты, но не одинаковые. Я лично использую shtool и для других целей, и он работает очень хорошо для меня.
попробуйте это:
DISTRO=$(cat /etc/*-release | grep -w NAME | cut -d= -f2 | tr -d '"') echo "Определенная платформа: $DISTRO"
5
Безопасно использовать во всех дистрибутивах.
$ кот /etc/*релиз
Получается что-то вроде этого.
DISTRIB_ID=LinuxMint DISTRIB_RELEASE=17 DISTRIB_CODENAME=киана DISTRIB_DESCRIPTION="Linux Mint 17 Qiana" ИМЯ="Убунту" ВЕРСИЯ = "14.04.1 LTS, Надежный Тар" ID=убунту ID_LIKE=дебиан PRETTY_NAME="Ubuntu 14.04.1 LTS" VERSION_ID="14.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
Извлечь/назначить переменным по своему усмотрению
Примечание: В некоторых настройках. Это также может дать вам некоторые ошибки, которые вы можете игнорировать.
cat: /etc/upstream-release: это каталог
9
Это то, что я использую, если кто-то заинтересован в обнаружении WSL и WSL версии 2.
#!/usr/bin/env bash unameOut=$(uname -a) case "${unameOut}" в *Майкрософт*) ОС="WSL";; #должно быть первым, так как подсистема Windows для Linux также будет иметь Linux в названии *Майкрософт*) ОС="WSL2";; #ПРЕДУПРЕЖДЕНИЕ: Моя версия 2 использует Ubuntu 20.