в чем разница между терминалом в Mac OS X и Ubuntu
И Mac OS X, и Ubuntu (и другие ОС Linus) имеют терминал / командную строку.
Являются ли эти терминалы одинаковыми для разных ОС? Если нет, в чем разница?
2 ответа 2
Эмулятор терминала предоставляет интерфейс для запуска оболочки, который также является интерфейсом для доступа к функциям вашей операционной системы.
Терминалы раньше были реальными машинами, например, монитором с подключенной клавиатурой, который посылал нажатия клавиш на фактический компьютер на другом конце и получал выходные данные с этого компьютера. Например, знаменитый VT100:
В настоящее время это эмулируется этими приложениями, такими как Terminal.app в OS X или GNOME Terminal для графического интерфейса GNOME в дистрибутивах Linux.
Поскольку он отделен от оболочки, которую вы можете запустить (например, bash, zsh, . ), вы можете использовать любой другой эмулятор терминала. Например, в OS X вы можете использовать iTerm 2, который предлагает немного больше, чем обычное терминальное приложение.
Поскольку терминал является мостом между вашим графическим интерфейсом и текстовой оболочкой, его функциональные возможности должны выходить за рамки приема ввода с клавиатуры и отображения вывода из оболочки. Терминал должен предоставить вам средства:
- копирование и вставка в графический интерфейс
- отправка специальных команд в оболочку (так называемые escape-последовательности ; ваш терминал, например, отобразит Cmd — Right Arrow в соответствующую последовательность оболочки, чтобы перейти в конец строки *)
- разрешить другие сочетания клавиш с горячими клавишами
- позволяя оболочке отслеживать мышь
- позволяет одновременно работать нескольким вкладкам с разными оболочками
- позволяя перетащить значок файла в оболочку, чтобы получить его реальный путь
- уведомление графического интерфейса пользователя о событиях (например, о мигающем экране или росте)
- и т.п.
Подводя итог: различные терминалы предлагают разные функциональные возможности в отношении того, как они взаимодействуют с вашей операционной системой, с одной стороны, и оболочкой, с другой стороны. Вы можете найти сравнение эмуляторов терминала в Википедии.
При этом, нет важной разницы. Большинство людей настраивают терминалы по своему вкусу, например, некоторые любят прозрачный фон, а другие нет. Кому-то нравится, чтобы они отображали свою оболочку черным по белому, другим — зеленому по черному.**
Некоторые терминалы позволяют настраивать различные профили сочетаний клавиш или даже другие профили, которые запускают разные оболочки при запуске, с другим размером окна и т.д.
* Обратите внимание, что это довольно упрощенное утверждение. Терминалу просто нужно найти способ сопоставления специальных клавиш — особенно на Mac, где есть клавиша Command — с командами, которые может понять оболочка.
** Это также функциональность терминала: отображение цветов. На самом деле вы можете настроить свой терминал так, чтобы вместо него отображалось, что оболочка должна быть зеленой, а не красной . Это прежде всего вопрос настройки.
Источник
Как командная строка Mac сравнивается с Linux?
Я люблю Ubuntu Linux — особенно командную строку. Но я должен признать, что, по крайней мере, на данный момент, Windows более удобна для пользователя — для этого есть больше программного обеспечения, больше драйверов, и больше всего работает.
Знание того, что Mac построен на Unix, заставляет задуматься, а не сладкое ли это место между ними. Но мне интересно: насколько похожа командная строка Mac на bash Linux ? Могу ли я разобраться с использованием сценариев vim, bash, git и т. Д.? Будут ли общие команды, такие как изменение каталогов, другими? Кто-нибудь знает онлайн ресурс «сравни и сравнивай»?
Bash — это bash, поэтому оболочка и ее встроенные компоненты совпадают. Но учтите, что поведение некоторых инструментов, таких как ps или head может отличаться в деталях, может привести к сбою ваших сценариев.
Mac OS X — это ОС Unix, и ее командная строка на 99,9% такая же, как и в любом дистрибутиве Linux. bash это ваша оболочка по умолчанию, и вы можете скомпилировать все те же программы и утилиты. Там нет заметной разницы. Вы также можете найти различные проекты, такие как MacPorts, которые обеспечивают управление пакетами для Mac.
Это очень похоже, но если вы знаете о каких-либо различиях между BSD и Linux, ожидайте, что Mac будет работать с BSD.
Пара вещей — это действительно зависит от того, что вы подразумеваете под командной строкой.
- Вы, вероятно, запустите bash, который будет таким же, как bash в любой другой UNIX. Язык программирования bash тоже будет таким же — при условии, что это та же версия. Версии Bash имеют небольшие различия в языке, но это не имеет ничего общего с MacOSX против Linux как таковой.
Вы можете столкнуться с этим — / bin / bash на Mac прикреплен к 3.x по причинам лицензирования. Вы можете найти незначительные проблемы совместимости, если вы привыкли к 4 или даже 5.
bash сам по себе является небольшим подмножеством «командной строки». Чтобы быть полезным, вы обычно используете другие распространенные утилиты UNIX, такие как awk, ls или cut. Из-за своей истории (она произошла от BSD, а не от Linux или SystemV), версии утилит для Mac будут отличаться от тех, которые вы привыкли использовать в Linux (также как версии GNU). Они будут иметь по крайней мере некоторые различия флагов, а также некоторые отличия вывода и функциональности по сравнению с Linux. Сценарии, которые их используют, должны быть изменены для компенсации. BSD awk против GNU gawk довольно сильно отличается. ИЛИ, вы можете получить эти версии GNU из macports или home brew и установить свой PATH так, чтобы это были значения по умолчанию (по сравнению со встроенными версиями).
MacOS X также имеет несколько новых интересных инструментов. open хорошо, он откроет объект, как если бы вы дважды щелкнули по нему. defaults позволяет вам установить некоторые настройки, некоторые даже не в панелях настроек GUI. textutil может быть полезным и say может быть весело.
Функциональность командной строки в 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 , как системы по мере необходимости ,
Источник
В чем разница между использованием терминала на mac и linux? [закрытый]
Я использую Ubuntu в течение последних четырех лет.
У меня есть базовые знания команд и я предпочитаю работать в терминале, а не через графический интерфейс. Недавно я начал использовать Mac.
Я пробовал несколько команд терминала (которые я использую на Ubuntu) в терминале Mac, и он, похоже, реагирует в основном одинаково.
есть ли какие-либо существенные различия в командах, которые я использую, задаче (задачах), которые они выполняют, или среде оболочки, которой я должен быть в курсе?
2 ответов
если вы сделали новую или чистую установку OS X версии 10.3 или более поздней, оболочка пользовательского терминала по умолчанию-bash.
Bash-это, по сути, расширенная и бесплатная версия GNU оригинальной оболочки Bourne, sh. Если у вас есть предыдущий опыт работы с bash (часто по умолчанию в установках GNU/Linux), это делает опыт командной строки OS X знакомым, в противном случае рассмотрите возможность переключения вашей оболочки либо на tcsh, либо на zsh, поскольку некоторые считают их более удобными для пользователя.
если вы обновили или используете OS X версии 10.2.x, 10.1.x или 10.0.x, пользовательская оболочка по умолчанию-tcsh, Расширенная версия csh (‘c-shell’). Ранние реализации были немного глючными, а синтаксис программирования немного странным, поэтому он разработал плохой рэп.
есть еще некоторые фундаментальные различия между mac и linux, как Гордон Дэвиссон так метко перечисляет, например нет useradd на Mac и ifconfig работает по-разному.
следующая таблица полезна для знание различных оболочек unix.
вы также можете найти эти руководства полезными:
в заключение, я нахожусь на Linux (Ubuntu 11) и Mac osX, поэтому я использую bash, и то, что мне нравится больше всего, — это настройка .bashrc следующее (источник из .bash_profile на OSX) файл с псевдонимами, некоторые примеры ниже. Теперь я выделил все свои псевдонимы .bash_aliases файл и включить его с:
в рамках .bashrc or .файл bash_profile.
обратите внимание, что это пример разницы mac-linux, потому что на Mac вы не можете иметь —color=auto . В первый раз, когда я сделал это (не зная), я переопределил ls быть недействительным, что было немного тревожно, пока я не удалил —auto-color !
@Michael Durrant’s answer умело охватывает саму оболочку, но среда оболочки также включает в себя различные команды, которые вы используете в оболочке, и они будут похожи-но не идентичны-между OS X и linux. В общем, оба будут иметь одинаковые основные команды и функции (особенно те, которые определены в стандарте Posix), но многие расширения будут разными.
например, системы linux обычно имеют useradd команда для создания новых пользователей, но OS X нет. В OS X вы обычно используете GUI для создания пользователей; если вам нужно создать их из командной строки, вы используете dscl (которого нет в linux) для редактирования базы данных пользователей (см. здесь).
кроме того, некоторые команды, которые у них есть, будут иметь разные функции и параметры. Например, линуксы обычно включают GNU sed , который использует -r возможность вызова расширенных регулярных выражений; в OS X вы бы использовали -E возможность получить то же самое эффект.
EDIT: другое отличие заключается в том, что многие команды linux позволяют указывать параметры после их аргументов (например, ls file1 file2 -l ), в то время как большинство команд OS X требуют, чтобы опции были строго первыми ( ls -l file1 file2 ).
наконец, поскольку сама ОС отличается, некоторые команды ведут себя по-разному между ОС. Например, в linux вы, вероятно, используете ifconfig изменить конфигурацию сети. На OS X, ifconfig будет работать (вероятно, со слегка другой синтаксис), но ваши изменения, скорее всего, будут перезаписаны случайным образом демоном конфигурации системы; вместо этого вы должны отредактировать сетевые настройки с помощью networksetup , а затем пусть демон конфигурации применит их к состоянию живой сети.
Источник
What are the differences between using the terminal on a mac vs linux? [closed]
Want to improve this question? Update the question so it’s on-topic for Stack Overflow.
Closed 9 years ago .
I’ve been using Ubuntu for the last four years.
I have a basic knowledge of shell commands and I prefer working in a terminal rather than using a GUI. Recently I’ve started using a Mac.
I’ve tried a few terminal commands (that I use on Ubuntu) in the Mac terminal and it seems to respond in mostly the same way.
Are there any significant differences in the commands I use, the task(s) they perform or the shell environment that I should be aware of?
2 Answers 2
If you did a new or clean install of OS X version 10.3 or more recent, the default user terminal shell is bash.
Bash is essentially an enhanced and GNU freeware version of the original Bourne shell, sh. If you have previous experience with bash (often the default on GNU/Linux installations), this makes the OS X command-line experience familiar, otherwise consider switching your shell either to tcsh or to zsh, as some find these more user-friendly.
If you upgraded from or use OS X version 10.2.x, 10.1.x or 10.0.x, the default user shell is tcsh, an enhanced version of csh(‘c-shell’). Early implementations were a bit buggy and the programming syntax a bit weird so it developed a bad rap.
There are still some fundamental differences between mac and linux as Gordon Davisson so aptly lists, for example no useradd on Mac and ifconfig works differently.
The following table is useful for knowing the various unix shells.
You may also find these guides helpful:
On a final note, I am on Linux (Ubuntu 11) and Mac osX so I use bash and the thing I like the most is customizing the .bashrc (source’d from .bash_profile on OSX) file with aliases, some examples below. I now placed all my aliases in a separate .bash_aliases file and include it with:
in the .bashrc or .bash_profile file.
Note that this is an example of a mac-linux difference because on a Mac you can’t have the —color=auto . The first time I did this (without knowing) I redefined ls to be invalid which was a bit alarming until I removed —auto-color !
@Michael Durrant’s answer ably covers the shell itself, but the shell environment also includes the various commands you use in the shell and these are going to be similar — but not identical — between OS X and linux. In general, both will have the same core commands and features (especially those defined in the Posix standard), but a lot of extensions will be different.
For example, linux systems generally have a useradd command to create new users, but OS X doesn’t. On OS X, you generally use the GUI to create users; if you need to create them from the command line, you use dscl (which linux doesn’t have) to edit the user database (see here). (Update: starting in macOS High Sierra v10.13, you can use sysadminctl -addUser instead.)
Also, some commands they have in common will have different features and options. For example, linuxes generally include GNU sed , which uses the -r option to invoke extended regular expressions; on OS X, you’d use the -E option to get the same effect. Similarly, in linux you might use ls —color=auto to get colorized output; on macOS, the closest equivalent is ls -G .
EDIT: Another difference is that many linux commands allow options to be specified after their arguments (e.g. ls file1 file2 -l ), while most OS X commands require options to come strictly first ( ls -l file1 file2 ).
Finally, since the OS itself is different, some commands wind up behaving differently between the OSes. For example, on linux you’d probably use ifconfig to change your network configuration. On OS X, ifconfig will work (probably with slightly different syntax), but your changes are likely to be overwritten randomly by the system configuration daemon; instead you should edit the network preferences with networksetup , and then let the config daemon apply them to the live network state.
Источник