Команда в терминале mac os для запуска любых программ

Обновлено: 05.07.2024

Следующие советы и эквиваленты элементов управления должны помочь вам при переходе между средами разработки Mac и Windows (или WSL/Linux).

Для разработки приложений ближайшим эквивалентом Xcode будет Visual Studio. Существует также версия Visual Studio для Mac, если вы когда-нибудь почувствуете необходимость вернуться. Для межплатформенного редактирования исходного кода (и большого количества подключаемых модулей) наиболее популярным выбором является Visual Studio Code.

Сочетания клавиш

Диспетчер клавиатуры PowerToys можно использовать для сопоставления сочетаний клавиш Windows с сочетаниями клавиш, которые вы используете на Mac.

< td>Отменить < td>Клавиша Windows+Shift+S
Операция Mac Windows
Копировать Command+C Ctrl+C
Вырезать Command+X Ctrl+X
Вставить Command+V Ctrl+V
Command+Z Ctrl+Z
Сохранить Command+S Ctrl+S
Открыть Command+O Ctrl+O
Заблокировать компьютер Command+Control+Q WindowsKey+L
Показать рабочий стол Command+F3 WindowsKey+D
Открыть браузер файлов Command+N WindowsKey+E
Свернуть окна Command+M WindowsKey+M
Поиск Command+Пробел WindowsKey
Закрыть активное окно Command+W Control+W
Переключить текущую задачу Command+Tab Alt+Tab
Развернуть окно до f полный экран Control+Command+F WindowsKey+Up
Сохранить экран (снимок экрана) Command+Shift+3 Клавиша Windows+Shift+S
Сохранить окно Command+Shift+4
Просмотр информации или свойств элемента Command+I Alt+Enter
Выбрать все элементы Command+A Ctrl+A
Выбрать более один элемент в списке (несмежном) Command, затем щелкните каждый элемент Control, затем щелкните каждый элемент
Введите специальный символы клавиша Option+символ клавиша Alt+символ

Сочетания клавиш на трекпаде

Некоторым из этих ярлыков требуется «Трекпад Precision», например трекпад на устройствах Surface и некоторых других ноутбуках сторонних производителей.

Параметры трекпада можно настроить на обеих платформах.

td>
Операция Mac Windows
Прокрутка Вертикальное смахивание двумя пальцами Вертикальное скольжение двумя пальцами
Масштаб Сведение и сведение двух пальцевСведение и разведение двух пальцев
Пролистывание вперед и назад между представлениями Проведение двумя пальцами в стороны Два смахивание пальцем в сторону
Переключение между виртуальными рабочими пространствами Скольжение четырьмя пальцами в сторону Скольжение четырьмя пальцами в сторону
Отображение открытых приложений Пролистывание вверх четырьмя пальцами Пролистывание вверх тремя пальцами
Переключение между приложениями< /td> Нет данных Медленно провести тремя пальцами вбок
Перейти на рабочий стол Растопырить четыре пальца< /td> Проведите тремя пальцами вниз
Открыть Cortana/Центр уведомлений Проведите двумя пальцами справа Три пальца нажмите
Открыть дополнительную информацию Три пальца коснитесь Нет данных
Показать панель запуска/запустить приложение Сведите четыре пальца Нажмите четырьмя пальцами

Оболочки командной строки и терминалы

Windows поддерживает несколько оболочек и терминалов командной строки, которые иногда работают немного иначе, чем оболочка BASH на Mac и приложения-эмуляторы терминала, такие как Terminal и iTerm.

Оболочки Windows

В Windows есть две основные оболочки командной строки:

Пользователи оболочки BASH для Mac и Linux: PowerShell также поддерживает многие псевдонимы команд, с которыми вы уже знакомы. Например:

  • Показать содержимое текущего каталога, используя: ls
  • Переместить файлы с помощью: mv
  • Перейти в новый каталог с помощью: cd

Некоторые команды и аргументы в PowerShell отличаются от BASH. Чтобы узнать больше, введите: get-help в PowerShell или ознакомьтесь с псевдонимами совместимости в документации.

Чтобы запустить PowerShell от имени администратора, введите "PowerShell" в меню "Пуск" Windows, затем выберите "Запуск от имени администратора".

Командная строка Windows (Cmd): Windows по-прежнему предоставляет традиционную командную строку (и консоль — см. ниже), обеспечивая совместимость с текущими и устаревшими командами и пакетными файлами, совместимыми с MS-DOS.Cmd полезен при запуске существующих/старых пакетных файлов или операций командной строки, но в целом пользователям рекомендуется изучить и использовать PowerShell, поскольку Cmd сейчас находится на обслуживании и не будет получать никаких улучшений или новых функций в будущем.< /p>

Оболочки Linux

Подсистема Windows для Linux (WSL) теперь может быть установлена ​​для поддержки запуска оболочки Linux в Windows. Это означает, что вы можете запускать bash с любым выбранным вами дистрибутивом Linux, интегрированным прямо в Windows. Использование WSL обеспечит среду, наиболее знакомую пользователям Mac. Например, вы будете ls отображать файлы в текущем каталоге, а не в каталоге, как в традиционной командной оболочке Windows. Чтобы узнать об установке и использовании WSL, см. Руководство по установке подсистемы Windows для Linux. Дистрибутивы Linux, которые можно установить в Windows с помощью WSL, включают:

Это лишь некоторые из них. Дополнительные сведения см. в документации по установке WSL и устанавливайте их непосредственно из Microsoft Store.

Терминалы Windows

В дополнение ко многим сторонним предложениям Microsoft предоставляет два «терминала» — приложения с графическим интерфейсом, которые обеспечивают доступ к оболочкам и приложениям командной строки.

Терминал Windows: Терминал Windows — это новое, современное, гибко настраиваемое приложение терминала командной строки, которое обеспечивает очень высокую производительность, работу с командной строкой с малой задержкой, несколько вкладок, разделенные панели окон, настраиваемые темы и стили, несколько " profiles" для различных оболочек или приложений командной строки, а также широкие возможности для настройки и персонализации многих аспектов работы с командной строкой.

Вы можете использовать Windows Terminal для открытия вкладок, подключенных к PowerShell, оболочкам WSL (например, Ubuntu или Debian), традиционной командной строке Windows или любому другому приложению командной строки (например, SSH, Azure CLI, Git Bash).

Консоль: на Mac и Linux пользователи обычно запускают предпочтительное терминальное приложение, которое затем создает и подключается к пользовательской оболочке по умолчанию (например, BASH).

Однако из-за особенностей истории пользователи Windows традиционно запускают свою оболочку, а Windows автоматически запускает и подключает консольное приложение с графическим интерфейсом.

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

Я хочу запустить приложение на OSX из скрипта. Мне нужно передать аргументы командной строки. К сожалению, open не принимает аргументы командной строки.

Единственный вариант, который я могу придумать, это использовать nohup myApp > /dev/null & для запуска моего приложения, чтобы оно могло существовать независимо от запускающего его скрипта.

Есть лучшие предложения?

Я не могу понять вопрос. «open» не принимает аргументы командной строки? Что такое "открыто"? Это AppleScript открыт? Как nohup & решает проблему?

13 ответов 13

Как упоминалось в этом вопросе, команда open в версии 10.6 теперь имеет флаг args, поэтому вы можете вызвать:

open -n ./ИмяПриложения.app --args -AppCommandLineArg

Отличный ответ. Просто хотел добавить, что при первом открытии терминала вы будете в своем домашнем каталоге, поэтому введите его таким образом, чтобы вам не нужно было переключаться в каталог приложений. Я хотел запустить Gimp без загрузки шрифтов, что занимает вечность, поэтому я набрал это с ключом -f, чтобы пропустить шрифты: open -n /Applications/GIMP.app --args -f

Предположим, что мой исполняемый файл AppName был сценарием оболочки. как мне получить доступ к -AppCommandLineArg внутри него? также я хочу принять перетаскивание файла на значок моего приложения. Я много искал, но не нашел полезного решения

В OS X 10.6 команда open была улучшена, чтобы разрешить передачу аргументов приложению:

Но для более старых версий Mac OS X и из-за того, что наборы приложений не предназначены для передачи аргументов командной строки, обычным механизмом является использование Apple Events для файлов, как здесь для приложений Cocoa или здесь для приложений Carbon. Вы также, вероятно, могли бы сделать что-то неуклюжее, передав параметры с помощью переменных среды.

Мой неуклюжий подход заключается в том, чтобы вызывать исполняемый файл напрямую с аргументами командной строки, используя nohup.

Возможно, нет. Если это работает для вас, идите с этим. Более важным моментом является то, что open(1) является cli-эквивалентом того, что происходит, когда пользователь делает двойной щелчок или «Открыть» в Finder, и ни один из этих механизмов не поддерживает обычные аргументы командной строки.

указать Google не использовать аргументы командной строки, Applications/Google Chrome.app/Contents/Versions/6.0.472.53/Google Chrome Helper.app/Contents/MacOS/Google Chrome Helper --type=renderer --lang=en -US --force-fieldtest

@Анураг Униял. "Почему?" Вы читали ответ? «обычный механизм заключается в использовании Apple Events для файлов, таких как здесь для приложений Cocoa или здесь для приложений Carbon». Так устроена Mac OS X. да. Хром нарушает правила.Как и каждая из утилит командной строки Linux. Но приложения с графическим интерфейсом, которые открываются с помощью open, как говорится в ответе, не предназначены для работы из командной строки. "Почему?" Потому что так устроена Mac OS X.

Набор приложений (файл .app) на самом деле представляет собой каталог. Вместо того, чтобы использовать open и имя файла .app, вы можете перейти в каталог приложения и запустить реальную программу машинного кода, расположенную внутри. Например:

Это настоящий двоичный исполняемый файл, который может принимать аргументы (или не принимать, в случае LittleSnapper).

Двоичный файл принимает аргументы, я уверен. Я написал это. Вызов «open» не позволяет передавать аргументы. Я уверен в этом. И да, мой скрипт вызывает 'open binary' напрямую, а не пытается открыть пакет.

Мне это не подойдет. Непосредственное выполнение двоичного файла приводит к тому, что он является дочерним процессом моего скрипта, чего я определенно не хочу. Следовательно, необходимо использовать open/nohup

У этого подхода есть существенный недостаток: если пакет содержит пользовательские библиотеки и фреймворки, вам придется возиться с DYLD_LIBRARY_PATH , DYLD_FRAMEWORK_PATH .

В случае, если вашему приложению необходимо работать с файлами (которые вы обычно ожидаете передать как: ./myApp *.jpg ), вы должны сделать это следующим образом:

Это именно то, что я искал! Мой экземпляр, например: open something.py -a Eclipse.app

Вы можете запускать приложения с помощью open :

Это должно открыть нужное приложение.

Что делать, если я хочу обработать команду 'ls'. Запуск «open -a ls» дает мне сообщение об ошибке «Невозможно найти приложение с именем «ls». Что делать, если app_you_want не является файлом или приложением.

Я бы порекомендовал технику, которую предлагает MathieuK. В моем случае мне нужно было попробовать Chromium:

Я понимаю, что это не решает проблему OP, но, надеюсь, сэкономит чье-то время. :)

@Pacerier Добавьте `&` в конец этой команды. Он запустится в фоновом режиме. Затем вы можете закрыть окно терминала, и приложение, скорее всего, останется открытым.

open также имеет флаг -a, который можно использовать для открытия приложения из папки "Приложения" по его имени (или по идентификатору пакета с флагом -b). Вы можете комбинировать это с параметром --args для достижения желаемого результата:

Чтобы открыть видео в проигрывателе VLC, которое должно масштабироваться с коэффициентом 2x и зациклиться, вы должны, например, выполнить:

Обратите внимание, что мне не удалось получить вывод команд на терминал. (хотя я ничего не пробовал, чтобы решить эту проблему)

Вы намеренно повторили открытый -a?? В любом случае, open -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir=/Users/an/userll у меня не работает.

Я хотел запустить два отдельных экземпляра Chrome, каждый из которых использует собственный профиль. Я хотел иметь возможность запускать их из Spotlight, как я привык запускать приложения для Mac. Другими словами, мне нужно было два обычных приложения для Mac: regChrome для обычного просмотра и altChrome для использования специального профиля, которые можно было легко запустить, нажав ⌘-пробел, чтобы вызвать Spotlight, затем «reg» или «alt», затем Enter.< /p>

Я полагаю, что грубым способом достижения вышеуказанной цели было бы создание двух копий пакета приложений Google Chrome под соответствующими именами. Но это некрасиво и усложняет обновление.

В итоге у меня получилось два приложения AppleScript, каждое из которых содержало по две команды. Вот вариант для altChrome:

Вторая строка запускает Chrome с альтернативным профилем (параметр --user-data-dir).

Первая строка — это неудачная попытка дать двум приложениям разные значки. Первоначально кажется, что он работает нормально. Однако рано или поздно Chrome перечитывает свой файл значка и получает тот, который соответствует тому из двух приложений, которое было запущено последним, в результате чего два запущенных приложения имеют один и тот же значок. Но я не удосужился исправить это — я держу два браузера на разных рабочих столах, и навигация между ними не была проблемой.

В некоторых разновидностях Unix вы чувствуете, как будто попали в альтернативную вселенную, когда открываете окно терминала и работаете в командной строке. Но с OS X и ее ядром Darwin часто существует элегантная интеграция между ними. В этом практическом руководстве я покажу вам, как запустить приложение OS X из командной строки с помощью команды open.

[Примечание: здесь будет полезен небольшой опыт работы с UNIX.]

Во-первых, я должен признать, что этот метод довольно чудаковат. За свою карьеру [Mac] OS X я использовал этот трюк всего несколько раз. Однако это настолько чертовски круто и очаровательно, что просто хочется использовать его при любом удобном случае.

На самом деле, если подумать, есть несколько полезных сценариев для этой техники.

  1. Finder работает, окно терминала уже открыто, и вы хотите запустить приложение с графическим интерфейсом, которое может помочь вам диагностировать проблему.
  2. Вы профессионал UNIX, живете и дышите командной строкой, но предпочитаете использовать текстовый редактор с графическим интерфейсом для кодирования, а не сырые и уродливые редакторы vi или Emacs.
  3. Вы пишете, скажем, сценарий Perl или Python для другого пользователя и в какой-то момент сценария хотите запустить приложение с графическим интерфейсом, которое продвигает рабочий процесс вперед.
  4. Вы хотите быстро запустить утилиту с правами администратора без ограничения учетной записи, в которую вы вошли. См., например, «Как найти и восстановить недостающее место на жестком диске». В этом случае вы должны обойти команду open и перейти к содержимому пакета, чтобы запустить приложение с правами sudo и администратора. Но я отвлекся.

Страница руководства

Терминальное приложение находится в папке «Утилиты», которая находится в папке «Приложения». Запустите его сейчас. Команда BSD UNIX, которую мы будем использовать, открыта. Ниже приведена страница руководства (для краткости «man»), отображаемая путем ввода:

Я распечатал большую часть справочной страницы для команды open здесь для вашего ознакомления, но я не собираюсь исследовать каждый аргумент. И не стесняйтесь сразу переходить к приведенным ниже примерам, чтобы подогреть ваш аппетит.

Для этого ограниченного практического руководства одним интересным способом использования команды open в этом контексте является использование параметра [-a]. Некоторые другие полезные варианты и аргументы приведены в примерах ниже.

Типичные примеры

Вот несколько коротких и приятных примеров команды open с аргументами -a, -e и -t. Их легко попробовать. [Если у вас не установлен BBEdit, используйте любой другой любимый текстовый редактор в /Applications.]

Откройте двери

Это лишь некоторые из замечательных вещей, которые вы можете делать в командной строке с помощью команды open. Для простоты я не углублялся в создание пути поиска или других трюков Unix, таких как псевдонимы. Все это осталось для вас, чтобы исследовать самостоятельно.

Начиная с macOS 10.8, Apple требует, чтобы приложения были подписаны перед их запуском. Однако подписание кода является платным процессом (стоимость подписки составляет 99 долларов США в год и больше, если вы также хотите опубликовать его в Mac App Store).

Независимые разработчики могут не располагать временем или бюджетом, необходимыми для подписания своих приложений или их загрузки в Mac App Store. Из-за этого многие приложения с открытым исходным кодом невозможно запустить в macOS «из коробки».

Последние версии macOS усложнили отключение Gatekeeper. К счастью, по состоянию на март 2021 года есть еще несколько способов отключить или обойти его.

Использование

Постоянное отключение гейткипера

  1. Откройте терминал, нажав Cmd + Space , введите «Терминал» и откройте приложение.
  2. Выполните следующую команду: sudo spctl --master-disable . При запросе введите пароль администратора.
  3. Привратник теперь отключен навсегда.

Отключение Gatekeeper только для одного приложения

Использование Finder

Примечание. Этот метод может работать не для всех приложений. Если приложение по-прежнему не запускается после выполнения приведенных ниже шагов, попробуйте вместо этого выполнить шаги, описанные в разделе Использование терминала.

  1. Откройте Finder и перейдите к только что загруженному приложению.
  2. Нажмите правой кнопкой мыши приложение и выберите "Открыть".
  3. Нажмите «Отмена» в появившемся диалоговом окне подтверждения. Это требуется начиная с macOS Big Sur, так как диалоговое окно теперь должно быть открыто дважды, чтобы появилась кнопка «Открыть». В macOS Catalina и более ранних версиях это диалоговое окно нужно открыть только один раз.
  4. Щелкните правой кнопкой мыши приложение второй раз и снова выберите Открыть.
  5. Нажмите «Открыть» в появившемся диалоговом окне подтверждения.

Это необходимо сделать только при первом запуске приложения. После этого вы можете запустить приложение как обычно.

Использование терминала

  1. Откройте терминал, нажав Cmd + Space , введите «Терминал» и откройте приложение.
  2. Выполните следующую команду: xattr -dr com.apple.quarantine /path/to/Application.app . Путь чувствителен к регистру и должен указывать на пакет приложения. (Для заполнения путей к файлам можно использовать клавишу Tab.)

Это нужно сделать только перед первым запуском приложения. После этого вы можете запустить приложение как обычно.

Использование curl или wget

Вы также можете загрузить приложение с помощью инструмента, который не устанавливает атрибут карантина. curl или wget должны работать для этого. Откройте терминал и запустите:

Вот как Steam и платформы обновлений, такие как Sparkle, могут загружать и запускать приложения, не требуя их подписи.

Часто задаваемые вопросы

Разве небезопасно отключать Gatekeeper?

С учетом современных угроз безопасности антивирусное программное обеспечение с годами теряет актуальность. Многие антивирусы в настоящее время обмануты исполняемыми файлами вредоносных программ, а другие формы вредоносных программ не обнаруживаются большинством антивирусов. Хотя идеальной защиты не существует, рекомендуется не подвергать себя современным угрозам, таким как программы-вымогатели.

Чтобы сделать ваши компьютеры более безопасными, рассмотрите следующие варианты:

  • Блокируйте отслеживание и вредоносные скрипты с помощью uBlock Origin. Это также ускорит просмотр и уменьшит сетевой трафик.
  • Блокируйте отслеживание и вредоносные домены с помощью файла hosts Дэна Поллока. Преимущество этого заключается в том, что оно работает со всем программным обеспечением на вашем компьютере, а не только с веб-браузерами.

Я по-прежнему не могу запустить приложение после отключения Gatekeeper.

Если приложение было упаковано в ZIP-архив, это может быть связано с отсутствием атрибута исполняемого файла ( +x ) в двоичном файле, содержащемся в пакете .app. Чтобы решить эту проблему:

  1. Откройте терминал, нажав Cmd + Space , введите «Терминал» и откройте приложение.
  2. Выполните следующую команду: chmod +x /path/to/Application.app/Contents/MacOS/* . Путь чувствителен к регистру и должен указывать на пакет приложения. (Для заполнения путей к файлам можно использовать клавишу Tab.)

Это нужно сделать только перед первым запуском приложения. После этого вы можете запустить приложение как обычно.

Читайте также: