Наследование команд Linux / Unix [дубликат]

На этот вопрос уже есть ответ здесь:

Все ли из основные команды Unix, доступные во всех дистрибутивах Linux, включая Ubuntu, или только определенные команды унаследованы Linux? Кроме того, есть ли в GNU собственные команды или все те же команды?

2
задан 7 December 2018 в 05:06

2 ответа

Там существует что-то известное как стандарт POSIX. Это создается Open Group, чтобы иметь определенный стандарт того, какие команды должны существовать в подобной Unix системе, определенные системные вызовы, которые система должна реализовать, и основные устройства и интерфейсы, которые должны присутствовать. В этом смысле совместимая POSIX система должна смочь иметь утилиты (и те утилиты должны согласиться со стандартным поведением), который имеет другая совместимая POSIX система. В этом смысле утилиты GNU и Ubuntu совместимы POSIX - им действительно обрисовывал в общих чертах вещи стандарт, хотя у них есть опции (такой как -p в cp команда), которые расширяют функциональность.

"Наследование" как таковое зависит от того, совместим ли дистрибутив Linux POSIX, который действительно выполняет Ubuntu. Другие дистрибутивы за пределами управления Ubuntu, даже если они основаны на Ubuntu, и Ubuntu не обязательно ответственна за то, как они реализуют команды на своей стороне. Даже компиляция GNU coreutils может быть сделана по-другому. Таким образом, другое распределение может иметь утилиты GNU, хотя они могут быть скомпилированы по-другому.

Однако не фокусируйтесь так на утилитах, как на следующем POSIX и портативных сценариях и кодировании путей. Это включает сценарии записи для #!/bin/sh если Вы ожидаете, что они будут работать над другой ОС, будут следовать стандарту /bin/sh синтаксис (которому может недоставать бесспорный /bin/bash функции, такие как массивы), и избегают определенных для GNU флагов при выполнении команд. Вы не можете пойти не так, как надо, если Вы подаете свои заявки и портативные сценарии. Где Вам действительно нужны расширенные функции, убедиться проверить, работает ли сценарий на Ubuntu (и это указано в /etc/os-release файл) или где-нибудь еще.

Дополнительное чтение по теме:

2
ответ дан 2 December 2019 в 03:30

Основные дистрибутивы, включая Ubuntu, включают пакеты, которые обеспечивают, версии почти всего Unix управляет, чтобы Вы могли бы искать. Они не могут все быть установлены с начала, но обычно существуют доступные версии.

Однако существует 2 детали, которые стоит отметить. Во-первых, нет никакого общего, универсального Unix ОС. Когда Вы спрашиваете, включает ли Linux все те функции, Вы ошибаетесь, чтобы думать, что существует, вообще говоря, такая вещь как Unix. Там конкурируют реализации от IBM или Беркли. Будут незначительные различия в способе, которым эти вещи отвечают на команды. На Macintosh, например, открывают терминал, и Вы находитесь в их версии Unix, который создается сверху Unix BSD.

Во-вторых, потому что Ubuntu является открытой системой, авторы пакетов могут осуществить некоторые расхождения во мнениях о том, как обрабатываются аргументы. Одна из неожиданностей для меня была пониманием, что автор каждого сценария решает, как должны быть акцентированы аргументы. Они хотят параметры как "-color=auto", или они хотят "-окрашивают автоматическими". Многие стандартные программы GNU/Linux позволят Вам свободно переставлять параметры командной строки, таким образом, "mkdir перебросят/пожрут-p", или "mkdir-p переброс/бормотание" будет иметь тот же эффект, но на другом Unixes они могут настоять, что параметр на первом месте.

Необходимо считать страницы справки для каждой стандартной программы для обнаружения то, что они хотят. Это - самая неутешительная/печальная вещь для меня. Некоторые программы, говорят, что "PS" или "tar" решают, что они не хотят использовать тире больше, и мы должны обратить внимание. Теперь ps -aux и ps aux сделайте то же самое, которое раздражает меня немного.

Семейство GNU/Linux программ составляет самый большой блок, который Вы найдете, но не все, и даже среди набора GNU/Linux я замечаю некоторые странные различия от одной системы до другого. Одна из моих любимых программ является названным сценарием Perl, "переименовывают", который все еще доступен на Ubuntu. Однако при установке Fedora Linux переименуйте, заменяется совершенно другой вещью.

0
ответ дан 2 December 2019 в 03:30

Другие вопросы по тегам:

Похожие вопросы: