Язык AppleScript
В Mac OS X имеется два стильных и элегантных средства автоматизации рутинных задач: Automator и Quartz Composer. Хотя оба этих инструмента просто великолепны, не следует забывать и о языке AppleScript, который присутствует в Mac OS X с первых дней ее существования. Многие приложения поддерживают автоматизацию при помощи AppleScript. Команды AppleScript очень удобно запускать из окна Terminal при помощи команды osascript.
В качестве аргумента команде osascript можно передать имя файла скрипта или, при работе в интерактивном режиме, указать опцию -e, например:
1$ osascript -e ‘say «Hello world»‘
Кроме того, команде osascript можно передавать целые последовательности команд, используя так называемый heredoc-синтаксис, показанный в листинге.
1234567// Передача команде osascript последовательности команд$ osascript — <<EOF;tell application «Finder»activateopen folder «Applications» of startup diskend tellEOF
Как видно на примере, показанном в листинге, команде osascript можно передавать короткие скрипты, используя символ дефиса (-) и специальный heredoc-синтаксис. Здесь символ дефиса (-) служит сигналом для osascript о том, что необходимо прочесть скрипт из стандартного ввода оболочки, при этом все, что заключено между символами Буфер обмена
Если вы много работаете с командной строкой, то вам часто требуется передать вывод одной из ваших команд другой программе (например, для вставки в электронную таблицу или отправки по почте). В окне Terminal можно выделить вывод команды и использовать обычные операции копирования и вставки (copy/paste). Помимо этого, вы можете перенаправить вывод команды в буфер по конвейеру (pipe). Например, следующая команда перенаправляет список всех работающих на вашем Mac процессов в буфер обмена:
1$ ps -ef | pbcopy
Аналогичным образом, вы можете перенаправить содержимое буфера обмена команде UNIX, используя для этой цели команду pbpaste. Например, следующая команда ищет в буфере обмена строки, содержащие комбинации цифр формата nn:nn (например, временные отметки вида 08:30):
1$ pbpaste | grep ‘[0-9][0-9]:[0-9][0-9]’
Некоторые приложения, например, Microsoft Word, хранят текст в буфере обмена в формате, не поддерживаемом в UNIX (символом завершения строки является возврат каретки, r). Исправить положение поможет использование Perl. В данном случае команда действует во многом подобно утилите sed и заменяет символ возврата каретки r (carriage return) на символ перевода строки n (line feed):
1$ pbpaste | perl -pe ‘s/r/n/g’ | grep ‘[0-9][0-9]:[0-9][0-9]’
Команда Open
Вам требуется что-то открыть? Например, файл или папку? Не проблема — следующая команда откроет нужный объект в Finder:
1$ open ~/Music
Вы можете также запускать приложения — для этого команда open должна использоваться с ключом –a, например:
1$ open -a iTunes
Команда open имеет множество мощных и удобных опций, поэтому внимательно изучите их, дав в окне Terminal команду man open.
Функция QuickLook
Функцию быстрого просмотра QuickLook тоже можно вызвать из окна Terminal. Например, чтобы отобразить содержимое файла, дайте следующую команду:
1$ qlmanage -p flower.jpg
Можно отобразить и целую группу файлов, например:
1$ qlmanage -p *jpg
Функция Spotlight
Работая из командной строки, можно выполнять поиски с помощью Spotlight. Например, чтобы выполнить поиск термина, дайте следующую команду:
1$ mdfind N95
Если вы к тому же знаете, где искать то, что вам требуется, очень удобно воспользоваться опцией –onlyin (например, вместо аргумента N95 можно указать модель вашей камеры):
1$ mdfind -onlyin ~/Pictures N95
Кроме того, можно пользоваться и ключевыми словами Spotlight, например:
1$ mdfind «kMDItemComposer == ‘*Garcia*'»
А вот пример команды, которая выводит метаданные Spotlight для конкретного файла:
1$ mdls ~/Pictures/iChat Icons/Planets/Pluto and Charon.gif
Получение экранных снимков из командной строки
С помощью утилиты командной строки screencapture можно получить экранный снимок. Например, следующая команда создает экранный снимок, создает файл с указанным вами именем и сохраняет в нем полученный снимок:
1$ screencapture cap.png
Команду screencapture можно запустить и удаленно, без регистрации на компьютере.