23

Я люблю Ubuntu Linux - особенно командную строку. Но я должен признать, что, по крайней мере, на данный момент, Windows более удобна для пользователя - для этого есть больше программного обеспечения, больше драйверов, и больше всего работает.

Знание того, что Mac построен на Unix, заставляет задуматься, а не сладкое ли это место между ними. Но мне интересно: насколько похожа командная строка Mac на bash Linux? Могу ли я разобраться с использованием сценариев vim, bash, git и т.д.? Будут ли общие команды, такие как изменение каталогов, другими? Кто-нибудь знает онлайн ресурс "сравни и сравнивай"?

6 ответов6

28

Mac OS X - это ОС Unix, и ее командная строка на 99,9% такая же, как и в любом дистрибутиве Linux. bash - это ваша оболочка по умолчанию, и вы можете компилировать все те же программы и утилиты. Там нет заметной разницы. Вы также можете найти различные проекты, такие как MacPorts, которые обеспечивают управление пакетами для Mac.

11

Это очень похоже, но если вы знаете о каких-либо различиях между BSD и Linux, ожидайте, что Mac будет работать с BSD.

10

Bash - это bash, поэтому оболочка и встроенные модули одинаковы. Но учтите, что поведение некоторых инструментов, таких как "ps" или "head", может отличаться в деталях, поэтому ваши сценарии могут потерпеть неудачу.

8

Пара вещей - это действительно зависит от того, что вы подразумеваете под командной строкой.

  1. Вы, вероятно, запустите bash, который будет таким же, как bash в любой другой UNIX. Язык программирования bash тоже будет таким же - при условии, что это та же версия. Версии Bash имеют небольшие различия в языке, но это не имеет ничего общего с MacOSX против Linux как таковой.

  2. bash сам по себе является небольшим подмножеством «командной строки». Чтобы быть полезным, вы обычно используете некоторые другие распространенные утилиты UNIX, такие как awk, или ls, или cut. Из-за своей истории (она произошла от BSD, а не от Linux или SystemV), версии утилит для Mac будут отличаться от тех, которые вы привыкли использовать в Linux (также как версии GNU). Они будут иметь по крайней мере некоторые различия флагов, а также некоторые отличия вывода и функциональности по сравнению с Linux Сценарии, которые их используют, должны быть изменены для компенсации. BSD awk против GNU gawk довольно сильно отличается. ИЛИ вы можете получить эти версии GNU из macports и установить свой PATH так, чтобы это были значения по умолчанию (по сравнению со встроенными версиями).

  3. MacOS X также имеет несколько новых интересных инструментов. open это хорошо, он откроет объект, как если бы вы дважды щелкнули по нему. defaults позволяют вам установить некоторые настройки, некоторые даже не на панелях настроек GUI. textutil может быть полезен, а say может быть веселым.

3

Функциональность командной строки в Mac и Linux действительно схожи, поскольку OS X имеет вид UNIX (называемый Darwin) под GUI, который вы видите.

Оболочкой по умолчанию в OS X является bash, поэтому, если вы с ней знакомы, вы все настроите правильно.

На Mac приложением командной строки по умолчанию является Терминал. Существует также ряд других эмуляторов, но в целом Terminal обеспечивает внешний вид и оболочку, к которой вы привыкли в Linux.

Основным источником различий являются:

  • Иногда аргументы командной строки (например, см. du например). Основные команды, такие как cd или ls и т.д., Похожи.
  • Есть больше частей OS X, которые не должны редактироваться вручную, как вы могли бы сделать в Linux. Это отдельная тема, но имейте в виду, что запуск Mac не совсем похож на запуск Linux-бокса с точки зрения конфигурации и поддержки.

Тем не менее, есть также много интересных хаков, доступных из командной строки в OS X (например, open commnand). Есть много предыдущих тем и сообщений в блоге там с дополнительной информацией.

Вы также можете получить набор пакетов с открытым исходным кодом (например, git , hg и т.д.) Через MacPorts, Fink или несколько других систем управления пакетами для OS X. При необходимости вы также можете создавать другие исходные пакеты, предназначенные для UNIX/Linux-подобных систем.

-2

Здесь есть одно отличие. Попробуйте эту команду в оболочке bash для Mac и Linux

find /etc -name "*.conf"

Mac ничего не показывает, хотя внутри /etc много файлов .conf.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .