Как запускать приложения с графическим интерфейсом из терминала

Anonim

Мы все знаем, как запускать приложения из графического интерфейса двойным щелчком по значку или нажатием на приложение в Dock, и существует множество способов сделать это, и все они относительно быстрые. Однако, если вы проводите приличное количество времени с командной строкой, приятно иметь возможность запускать приложения Mac прямо оттуда. Кроме того, Терминал имеет значительную долю приложений, работающих в текстовом режиме, но, возможно, вы хотели отредактировать текстовый файл в приложении TextWrangler с графическим интерфейсом Mac OS X, а не в текстовом nano или vim.

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

Открытие приложений Mac OS X из командной строки

Команда терминала для запуска графических приложений MacOS называется «открыть», и вот как она работает в самом простом виде:

open -a ApplicationName

Это откроет определенное приложение с именем «ApplicationName».

Но open гораздо мощнее. Если вы просто наберете «открыть» в командной строке, вы вернете основной файл справки с подробностями о том, как правильно использовать команду с различными флагами и синтаксисом.

Хотя команда открытия существует во всех версиях Mac OS X, возможности несколько различаются в зависимости от того, какая версия MacOS / Mac OS X работает на Mac. Тем не менее, в современных версиях вы увидите следующее:

$ open Использование: open Help: Open открывает файлы из оболочки. По умолчанию открывает каждый файл, используя приложение по умолчанию для этого файла. Если файл имеет форму URL-адреса, файл будет открыт как URL-адрес. Опции: -a Открывается с указанным приложением. -b Открывается с указанным идентификатором пакета приложения. -e Открывается с помощью TextEdit. -t Открывается в текстовом редакторе по умолчанию. -f Считывает ввод со стандартного ввода и открывает с помощью TextEdit. -F --fresh Запускает новое приложение, то есть без восстановления окон. Сохраненное постоянное состояние теряется, за исключением документов без названия. -R, --reveal Выбирает в Finder вместо открытия. -W, --wait-apps Блокирует до закрытия используемых приложений (даже если они уже были запущены). --args Все оставшиеся аргументы передаются в argv функции main() приложения, а не открываются. -n, --new Открыть новый экземпляр приложения, даже если он уже запущен. -j, --hide Запускает скрытое приложение. -g, --background Не переводит приложение на передний план.-h, --header Ищет в файлах заголовков заголовки, соответствующие заданным именам файлов, и открывает их.

Другими словами, пример простого синтаксиса команды может выглядеть следующим образом, открывая «ИмяПриложения» с файлом, расположенным по пути ‘/file/to/open’:

open -a ApplicationName /file/to/open

Обратите внимание, что вам не нужен полный путь к имени приложения, но вам понадобится полный путь к имени файла.

Использование, вероятно, не требует пояснений для тех, кто имеет опыт работы в среде командной строки, но для тех, кто плохо знаком с Терминалом, не запутайтесь, он прост в использовании, и мы объясню. Например, если вы хотите отредактировать /etc/motd с помощью TextWrangler, чтобы изменить сообщение дня, но вы ненавидите редакторы командной строки nano и vi, введите следующее:

$ open -a TextWrangler /etc/motd

Теперь вы можете редактировать эти файлы в знакомом графическом интерфейсе. open достаточно умен, чтобы знать, что когда вы применяете флаг -a, вы запускаете приложение, поэтому вам не нужно вводить его полный путь. Очевидно, что ему все равно потребуется полный путь к файлу, который вы редактируете.

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

Также стоит отметить, что если вы запускаете приложение с пробелами в имени, вы захотите добавить обратную косую черту после каждого слова, открытие Adobe Photoshop CS будет выглядеть так:

$ открыть -a Adobe\ Photoshop\ CS

Запуск приложений с графическим интерфейсом от имени пользователя root из командной строки

Вы даже можете открывать файлы с помощью sudo с помощью команды open, если вам нужно отредактировать файл как root, например:

sudo open -a TextEdit /tmp/magicfile

Это запустит целевой файл в нужное приложение от имени пользователя root, предоставив полные привилегии root для редактирования и изменения файла, что весьма полезно для редактирования многих системных файлов. Конечно, не изменяйте системные файлы, если вы не знаете, что делаете.

Создание псевдонимов оболочки для часто запускаемых приложений с графическим интерфейсом

Так что вводить всю команду несколько раз или вводить все это снова и снова — это своего рода головная боль, верно? Что ж, давайте упростим задачу, назначив псевдоним часто запускаемому приложению. Мы возьмем в качестве примера вышеупомянутое приложение Adobe Photoshop, поскольку имя файла длинное, поэтому вот как мы это сделаем с оболочкой Bash по умолчанию в Mac OS X:

Сначала запустите профиль или .bash_profile в текстовом редакторе:

$ nano .profile

или же

$ open -e .profile

Игнорируя все, что может быть в этом файле (он также может быть пустым), добавьте в новую строку следующее:

"

alias photoshop=open -a Adobe\ Photoshop\ CS"

Это создает псевдоним, так что команда «open -a Adobe\ Photoshop CS» теперь сокращена до просто «photoshop». Сохраните .profile, и вперед! Вы можете использовать команду alias вместе с open практически для чего угодно, просто не забудьте выбрать псевдоним для несуществующей команды.

Как видите, команда open действительно удобна, если у вас есть другие полезные способы ее использования в Mac OS X, обязательно сообщите нам об этом в комментариях.

Как запускать приложения с графическим интерфейсом из терминала