Консоль для маководов: Beyond the GUI

  • Tutorial
Доброго дня, уважаемые хабравчане-маководы!

Сегодня я расскажу как увеличить эффективность работы в Mac OS X за счёт использования консоли.

Лирическое отступление


Думаю, ни для кого не секрет, что Mac OS является Unix-based системой, но переработанной почти до неузнаваемости. Даже консоль засунули куда подальше — не сразу и найдёшь. И вся система нацелена на использование GUI, при дефолтных настройках даже переключение между кнопками по Tab не работает — без мыши никуда. И тем не менее, Мак — это не только окошки, не только док и лаунчер. Мак это ещё и вся мощь shell скриптов и консоли!

Если Вы пришли из мира M$, то для начала неплохо бы поучить общие команды shell'а, например, по вот этому учебному пособию. Как минимум, нужно усвоить команды перехода по каталогам и способы запуска программ и скриптов.

Если Вы пришли в мир Mac OS из мира Linux'а и FreeBSD, то, скорее всего, знаете как минимум основы shell-скриптинга. Но и для вас в статье может оказаться кое-что интересное, ведь в маке есть уникальные консольные команды, которые так же полезно знать.

Вот о некоторых особенностях маковской консоли далее и пойдёт речь.

Начнём работу


Для начала избавимся от стандартного терминала. Ну, точнее, поставим другой — получше. Я лично предпочитаю iTerm2, который подходит для работы куда лучше системного. Хотя, и у него бывают интересные моменты (см. картинку вверху).

Далее нам могут понадобиться дополнительные инструменты, поэтому устанавливаем MacPorts (хотя, конечно, можно и другой менеджер пакетов). Теперь мы можем ставить нужные консольные утилиты с помощью простых команд. Например, ставим Midnight Commander (он в любом случае может пригодиться), набираем в iTerm2:

sudo port install mc


После ввода пароля и установки зависимостей и самого mc, можем его запустить, как вы уже догадались, командой mc.

О ужас! Нам понадобятся функциональные клавиши, а они нажимаются только через Fn+F15, что же делать? Ну как что — лезть в системные настройки и выключать это. Иначе сложно будет с mc работать.

Ещё одно важное замечание: кури мануалыесли что-то не понятно, набираем в консоли man команда — и получаем подробное описание команды. (Кстати, для выхода из просмотра мануала надо просто нажать Q).

Продолжаем знакомство с консолью. Команда open


Легко можно заметить, что mc показывает куда больше файлов и папок, чем Finder. Конечно, можно поставить хак для него, чтобы он отображал такие файлы, но не все это любят. Так что остаётся лишь пользоваться Cmd+Shift+G и вводить вручную имя папки. Но данный способ не особо удобен: нет автокомплита, нет возможности видеть скрытые файлы. Теперь вернёмся к терминалу. В Mac OS X есть замечательнейшая команда open, которая действует так, как будто пользователь сделал даблклик на файле или папке в Finder — открывает файл, бандл или ссылку в связанной программе, открывает папку в Finder'е. Вот простой пример работы с этой командой: заходим с помощью mc в скрытую папку (например, /etc/) и набираем:

open .


Wuala! Файндер отобразил нам нашу системную папку! Но это ещё не всё, ведь скрытые файлы всё ещё не видны. Для примера, откроем наш .profile:

open .profile

И — опа! — скрытый файл открылся в TextEdit! Всё предельно просто.

Пара слов о бандлах


Это всем известно, но на всякий случай повторю: обычные программы в Mac OS X на самом деле являются папками с расширением .app и особым образом устроенным содержимым. Убедиться в этом легко: открываем в Finder папку /Applications/ и делаем Ctrl+Click (либо Right-Click, если хотите) на любой программе и выбираем «Показать содержимое пакета».

Из консоли это так же очень хорошо видно: mc отображает эти программы именно как папки. И как же запустить из консоли GUI-программу, спросите вы? Очень просто, есть даже два способа.

Способ первый, простейший:

open /Applications/Safari.app

Программа будет запущена и консоль будет свободна для дальнейших действий.

Способ второй, интересный:

/Applications/Safari.app/Contents/MacOS/Safari

Программа будет запущена, но консоль не освобидится — она будет ждать завершения программы и выводить всё, что программа захочет вывести в неё. То есть, таким образом можно посмотреть рабочий лог некоторых программ.

Ещё одно очень важное различие между этими двумя методами: второй позволяет запустить два экземпляра программы, в то время как первый активирует уже запущенную, буде такая имеется. Так что через консоль можно решить и эту проблему (хотя, скорее фичу) макоси: через Finder, док и лаунчер запустить два экземпляра программы нельзя, а вот из консоли — пожалуйста, хоть двадцать два.

Скрипт?


Расскажу вкратце что из себя представляет shell-скрипт. По сути — это обычный текстовый файл, содержащий серию команд для выполнения. Самый простой скрипт просто запускает последовательно все команды. Скрипты посложнее могут иметь условия, циклы и функции, то есть, скрипт может быть весьма большой и сложной программой. Основной плюс таких скриптов — на их службе вся мощь консольных утилит из мира unix, что с лихвой компенсирует бедность языковых конструкций. Приведу простой пример скрипта, который преобразует все файлы .png в текущей директории, уменьшив их размер до 200 пикселей в ширину или высоту.

#!/bin/bash

for img in *.png; do
    fname=${img%.*}
    fext=${img##*.}
    sips -Z 200 ${img} --out ${fname}_200.${fext}
done

Пример простейший, но он демонстрирует главное: в скриптах сокрыта великая сила.

Скрипты AppleScript


В Mac OS X имеется несколько встроенных механизмов по автоматизации действий. Один из очень распространённых — AppleScript, для которого есть и графический редактор-запускатор. Но использовать такие скрипты можно и из консоли, для этого есть особая утилита — osascript. Использовать её можно так:

osascript myscript

либо
osascript -e "команда скрипта"

Не буду углубляться в AppleScript, он заслуживает отдельной статьи, и даже не одной. Так что рекомендую почитать справку или гугл по нему.

Главное: Вы можете комбинировать shell-скрипты со скриптами AppleScript, чтобы добиться максимальной гибкости в работе! К примеру, я использую такие вот смешанные скрипты для автоматической стилизации образа диска: сам диск создаётся с помощью shell (см. ниже), а фон и расположение элементов в образе задаётся с помощью AppleScript.

Есть ещё Automator, но он совсем уж GUI-шный, так что в данной статье его рассматривать бессмысленно. Он, конечно, полезный, но до мощи консоли не дотягивает.

Кратко о других полезных командах Mac OS X


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

Для работы с образами дисков имеется консольная утилита hdiutil. Пара примеров работы с ней:

# создание образа диска из содержимого папки mydata (для чтения и записи)
hdiutil create -ov -srcfolder mydata -format UDRW -volname "My Data Image" myimage.dmg

# конвертирование образа в сжатый ридонли
hdiutil convert myimage.dmg -format UDZO -imagekey zlib-level=9 -o myimage_ro.dmg

Более подробно про возможности можно узнать из man hdiutil.

Если Вы — разработчик программ для макоси, то наверняка знаете о такой замечательной вещи, как Info.plist, да и вообще о plist'ах. Так вот, есть очень удобная утилита, позволяющая конвертировать .plist в .bplist, то есть, в более быстрый и лёгкий бинарный формат плиста.

# в бинарный
plutil -convert -format bin1 -o Info.bplist Info.plist

# в XML
plutil -convert -format xml1 -o Info.plist Info.bplist


Если хотите позаниматься ерундой, то можно из консоли проговорить любой текст. Для этого есть утилита say.

# произнести фразу
say Hello Habr!

# прочитать вслух книгу на ночь
say -f coolstory.txt

Так же можно задавать голос, которым мак будет с нами говорить:
say -v Bad habr habr habr habr habrahabr habr habrahabr


Одна беда — по-умолчанию говорит эта штука только по-английски.

Теперь снимем скриншот командой из консоли.

# скриншот окна без тени, результат - в буфер обмена
screencapture -Wco

# автоматический скриншот всего экрана - в файл с текущим временем
screencapture shot_`date "+%Y-%m-%d_%H:%M:%S"`.png

Так же из консоли можно конвертировать текст между различными форматами. Например, можно переконвертировать .doc файл в HTML:

# конвертировать в html и открыть результат в дефолтном браузере
textutil -convert html myfile.doc && open myfile.html

Так же textutil умеет преобразовывать кодировки.

Для изменения системных (и не только) настроек, можно использовать команду defaults. Используем её во благо! Включим наконец отображение скрытых файлов и папок в Finder!

defaults write com.apple.Finder AppleShowAllFiles 1 && killall Finder

Файндер автоматически перезапустится и теперь будет отображать скрытые файлы и папки! Но опять таки, это не всем нравится, так давайте это выключим, пока родителикто-нибудь не испугался или не удалил нужных файликов. Для сокрытия в уже указанной команде поставьте 0 вместо 1. Ну и для примера, ссылка на статью, где описано много твиков с помощью этой команды.

Что-то типа заключения


Ну что ж, мы разобрали некоторые интересные возможности консоли в Mac OS X. Статья, разумеется, не претендует на полноту и является, скорее, «заманухой» для вовлечения маководов в shell-скриптинг да и вообще в консоль.

И да пребудет с Вами сила Unix!
Поделиться публикацией

Похожие публикации

Комментарии 123
    +4
    Отличная консоль, после убунту родное приложение OsX показалось детской поделкой)
      +1
      Вот поэтому я и начал с неё =)
        +5
        Только сейчас заметил тег с яблоком) Интересный подход))
          +1
          Главное — он работает, и поиск его находит =)
            0
            А чего ж не находить? Юникод же :)
            +3
            А у меня не работает :-(

            Ubuntu 12.04, Firefox 12.0 — просто квадратик

            Fedora 16, тот же браузер — буква «p» О_о
              +8
              А зачем в Убунту надкусанное яблоко? :) Поставьте шрифт от Мака — будет.
                0
                Да не только в яблоке дело. Просто если бы работало везде, то неплохая идея отмечать в тегах какие-нибудь иконки.
                  +3
                  А кто мешает-то? В Юникоде полно символов — можно использовать любой.
              0
              Win 7 Ult x64, Opera 12 — квадратик
            +4
            Вроде в Lion консоль вполне нормальная. Чем iTerm2 лучше?
              0
              ну подержки мыши я так и не дождался даже в лайоне, иногда удобно и вообще.
                +1
                Поддержка мыши? Что с ней не так? Копировать/вставлять с помощью мыши можно, а что еще можно мышкой в консоли делать я плохо представляю.
                  +2
                  еще можно тыкать в том-же mc или чем-то другом. В стандартном терминале события мыши не приходят в терминал.
                  конечно меня бородатые админы сейчас зафукают, но мне иногда мышой удобней в паре-тройке приложений, которые я открываю раз в пол года, поэтому сочетания клавишь естественно запомнить не могу, а проще ткнуть мышью, чем читать мануалы и потом все равно забыть.

                    +1
                    Это все извращения. Самое большое неудобство было отсутствие табов, это исправили в 2.0. Потом по-сути ничего уже не надо: меняем системный bash на свежий zsh, grc, нормальный vim — все, больше ничего для счастья не надо. iTerm баловство, осадок после тормозной первой версии все еще остался.
                      0
                      не забывайте, у каждого свои задачи и методы их решения.

                      Да и наличие альтернативы — это намного лучше, чем ее отсутствие.
                      А популярность iTerm2 это подтверждает.
                        +1
                        Просто в Mac OS X юзера заставляют отойти от работы с файлами в сторону работы с контентом. (и делает это очень хорошо) Самое больше, что я раньше делал с файлами на маке это перенос ssh-pubkey на новый сервер и копирование .zshrc, теперь за меня это делает chef.

                        Я сначала тоже mc использовал, но ему далеко до удобства Far'a, поэтому перестал. Сейчас вот даже от MacVim в сторону Vim отказался.
                      0
                      Ясно, тогда да, есть смысл. Просто я не пользуюсь mc, вместо него использую zsh. Да и другие ncurses приложения у меня как-то не приживаются…
                        0
                        Немного не по теме вопрос, но может сталкивались с возможностью допилить макось до поддержки copy-paste колесом мыши не только в консоле?

                        После перехода на мак с линукса очень не хватает данной фичи.
                          0
                          откуда вы колесо мыши взяли под маком?
                          Колесо и мышь с двумя и тем более с тремя кнопками — противоестественно для мака.
                          Я лично пользуюсь MagicPad — очень удобная штука, даже стилусом рисовать как на планшетнике можно.
                        0
                        В виме растягивать сплиты например удобнее именно мышью. Или переходить к определению функции по клику на ее имя в тексте.
                      0
                      да и машина времени и автокомплит тоже очень удобные, вообще общий список фич можно тут посмотреть www.iterm2.com/#/section/features/instant_replay
                        +2
                        Хм, машину времени нужно пробовать в действии, пока слабо представляю зачем это может понадобится. А автокомплит зачем в терминал встраивать? Это забота bash/zsh или другого шелла.
                          –2
                          Как зачем — про бэкапы разве не слышали?
                            +2
                            Связь между «машиной времени» в терминале и бэкапами от меня ускользает.

                            Если что речь идет вовсе не про time machine, а про некий instant reply в iterm2
                        0
                        Я его поставил, когда не смог заставить родной терминал открывать новые вкладки с той же текущей директорией.
                          0
                          Я тоже не знаю, чем оно(iTerm) лучше, системный устраивает более чем полностью, mc не пользуюсь, мне быстрее напечатать cd в консоли, чем тыкать куда-то.
                      +2
                      Wuala? Пффф, ок :)
                        +3
                        Меня тоже покоробило, если честно.
                          0
                          Если не секрет, что именно покоробило?
                            +10
                            voila. Если совсем уж правильно — voilà.
                              +1
                              Юмор есть юмор, одни ребята переврали «voila» в «wuala», теперь так часто используют =)
                                +2
                                Ну тогда я снимаю свои пуристские претензии:)
                        +2
                        Я пробовал iTerm, но не перешел потому что он не понимает сочетания Cmd+Left|Right (передвигать по курсор по словам), Fn+Left|Right (вместо Home, End, которых нет на клаве макбуков). Есть ли возможность научить iTerm понимать эти сочетания клвиш?
                          +1
                          Cmd+Left|Right у меня работают без проблем, равно как и Fn+Left|Right. Может быть Вы говорите про первую версию iTerm? Ибо у меня iTerm2, и в статье я давал ссылки именно на него.
                            +1
                            Хмм, Fn+Left|Right действительно работают. А вот Alt+Left|Right (которым я достаточно часто пользуюсь) нет, тоесть оно печатает [D[C вместо того чтобы по словам бегать. Может знаете как настроить чтобы заработало?
                              +1
                              Увы, решения сей проблемы я тоже не нашёл. Надо будет ещё поискать.
                                +1
                                iTerm2->Profiles->Open Profiles->Edit Profiles->Keys->Load Preset->«Terminal.app Compatibility»? Ctrl-Left|Right переходит по словам.
                                  +1
                                  Спасибо, но это сбросит все настройки хоткеев. Кроме того, на Ctrl+Left|Right я вешаю переключение между рабочими столами.
                                    +1
                                    Я имел в виду, что вы берете из «Terminal.app Compatibility» необходимую escape-последовательность (e.g., «e[5D») и назначаете ее подходящей комбинации клавиш в своем профайле.
                                      +1
                                      Первым делом так попробовал, да видно руки в эту логическую пятницу окривели к вечеру :)
                                      В логический понедельник ещё попробую.
                                +1
                                bindkey -e
                                bindkey '^[^[[C' emacs-forward-word
                                bindkey '^[^[[D' emacs-backward-word
                                bindkey '9D' emacs-backward-word
                                bindkey '9C' emacs-forward-word
                                bindkey '^W' kill-region
                                bindkey '^I' complete-word
                                  0
                                  Ну и чисто для баша можно вот так еще сделать:

                                  Fullscreen
                                  Uploaded with Skitch!
                                0
                                Вместо home, end можно использовать Ctrl+a, Ctrl+e.
                                +9
                                Пользуюсь встроенным терминалом, все нравится. Расскажите чем iTerm лучше? Какой смысл менять?
                                  +1
                                  Очень мало настроек, нет поддержки группировки окон, не настраиваются нормально хоткеи. В принципе, чтобы остаться с iTerm2 навсегда, достаточно его попробовать на денёк =)
                                    +2
                                    Что-то я не уверен, что основная функция терминала это настраиваемость… Может быть напишете статью с подробными различиями? Я те что есть настройки в терминале не трогаю, немного с Visor игрался, но он сломался когда Lion вышел. А потом так и не ставил его.
                                      +3
                                      Попробуйте запустить mc в обоих терминалах — сразу станут видны различия. Стати, в Snow Leopard встроенный терминал вообще жутко криво отображал его.

                                      А подробные различия вряд ли заслуживают целой статьи, зайдите на сайт iTerm2 и почитайте о фичах.
                                        +4
                                        Я не пользуюсь mc. Не лежит душа к нему =/
                                          +1
                                          Мне он в большинстве случаев заменил Finder, который теперь используется только для просмотра картинок :)
                                          А если душа не лежит, то ничего не поделаешь, это да.
                                            +2
                                            Если хочется именно заменить Finder — очень и очень неплох PathFinder. mc, имхо, убожество и совершенно не кассу идеологии Mac OS X. Все-таки, консоль это консоль, не надо через нее пытаться имитировать GUI.

                                            Но iTerm2 действительно хорош, особенно автодополнение и история команд в виде списка — чего очень не хватает в обычном Терминале.
                                      +1
                                      А еще там есть замечательный, всплывающий по хоткею, отдельный терминал поверх других окон :)
                                        0
                                        А Сmd+D, Cmd+Shift+D? :)
                                          0
                                          Скорее речь о Visor
                                            0
                                            Я имел ввиду ещё одну интересную возможность.
                                              0
                                              Не поделитесь?
                                              Я так и не смог найти ей применение?
                                                0
                                                Я делю экран, чтобы пустить что-то в фоне или что-то, что консоль не отцепляет (top, например) и, наблюдая, что-то смотреть. Или использовать какой-то ман и писать скрипт, да много для чего.
                                        0
                                        Может быть я сейчас открою америку но хоткеи можно настроить в любом приложении.
                                        Делается это в глобальных настройках, разделе клавиатура.
                                        Жмете "+", далее пишете текстом пункт меню программы и назначаете хоткей:
                                        image

                                        Ну а насчет мало настроек, так ето не количество же решает.

                                        Я пробовал iTerm и так и не понял чем он отличается от терминала :(
                                        0
                                        На первой странице iTerm перечислены отличия, вы зайдите на сайт.
                                          +2
                                          В iTerm нормально vim работает (256-цветные схемы, мышь).
                                            0
                                            Начиная с лайона 256 цвета есть и в терминале
                                              0
                                              Вроде бы еще со Snow Leopard'a, там Terminal 2, после SL перестал пользоваться iTerm.
                                          +3
                                          Полезная команда mdfind — интерфейс к Spotlight. mdfind -name foo — найти все файлы с «foo» в имени, mdfind foo — все файлы, содержащие «foo» (без сканирования).
                                            +2
                                            Согласен, удобная штука. Но я обычно пользуюсь обычным find'ом =)
                                              0
                                              SSD тут актуальным становится :-)
                                            +1
                                            Мой любимый терминал для мака — Cathode Vintage Terminal
                                              +3
                                              Он, конечно, красивый и винтажный, но для повседневной работы не очень подходит.
                                                +3
                                                Абсолютно согласен, просто ребята с душой подошли к реализации. Включить, поностальгировать, выключить :)
                                              +2
                                              использую totalterminal очень нравится
                                                +1
                                                Надо будет посмотреть, спасибо за наводку.
                                                +1
                                                О ужас! Нам понадобятся функциональные клавиши, а они нажимаются только через Fn+F15, что же делать? Ну как что — лезть в системные настройки и выключать это.

                                                А можно использовать Esc + {1..0}
                                                  +1
                                                  Согласитесь, это не так удобно. Одной рукой нажать F10 будет сложновато. )
                                                    +1
                                                    Чего же сложного? Нажал сначала Esc, отпустил, потом 0.
                                                      +1
                                                      Два нажатия обеими руками вместо одного. Не очень сложно, но мне не нравится.
                                                        +2
                                                        Зато работает везде, не надо переучиваться.
                                                      +1
                                                      Соглашусь. Меня это как раз нервирует в Unity — там на половину функциональных клавиш понавешаны всякие их шорткаты.
                                                      С другой стороны, не всем же mc нужен чаще, чем «маковские» функциональные клавиши.
                                                        +3
                                                        а еще есть Palua…
                                                      +4
                                                      Здесь собран большой список полезных опций для команды defaults gist.github.com/2260182. Рекомендую.
                                                        +1
                                                        Спасибо, хорошая подборка!
                                                        +1
                                                        О ужас! Нам понадобятся функциональные клавиши, а они нажимаются только через Fn+F15, что же делать? Ну как что — лезть в системные настройки и выключать это.

                                                        Есть замечательная програмка Palua, которая позволяет настраивать функциональные кнопки отдельно для каждого приложения.
                                                          +1
                                                          Кстати, давно хочу её попробовать, спасибо за напоминание.
                                                            +1
                                                            Я смогу с ней повестить смену раскладки на CapsLock?
                                                              +1
                                                              Присоединяюсь к вопросу. Пока сидел на Ubuntu, сильно привык к такой смене раскладки.
                                                                +2
                                                                1 — Ремапите CapsLock на другую клавишу с помощью, например,PCKeyboardHack. Я вешал на F19 (код 80).
                                                                2 — В настройках меняете хоткей для переключения раскладки на ту клавишу, на которую заремапили CapsLock.
                                                                3 — profit

                                                                Для макбуков, емнип, можно еще сделать индикацию раскладки светодиодом Caps, гугл вам в помощь)
                                                                  +1
                                                                  Извините, еще забыл, что нужно в настройках убрать стандартное действие с CapsLock (System Preferences > Keyboard > Modifier Keys… CapsLock: No Action)
                                                                    +1
                                                                    Спасибо большое! День начался удачно :)
                                                                      0
                                                                      Всегда пожалуйста)
                                                                      +1
                                                                      Отлично, то что хотел. Не хотелось коненчо для этого отдельную софтину софтину ставить но и так сойдет.

                                                                      Кстати, я не совсем понял как но я какимто образом сделал смену раскладки (в стандарных настройках) на F19 (на макбуке, не имея эту клавишу физически). Это как я так? Не хочу пока лезть туда а то могу испортить и не смогу вернуть как было ).
                                                                        0
                                                                        Теоретически, можно то же самое сделать ручками, но я когда этим занимался, то не осилил с первой попытки и забил. Алсо софтина OpenSource — исходники на гитхабе есть, так что можно и посмотреть как она это делает.

                                                                        А F19 вы скорее всего поставили, нажав CapsLock — он же после ремапа стал F19)
                                                                          0
                                                                          Ну так тоже норм.

                                                                          >>А F19 вы скорее всего поставили, нажав CapsLock — он же после ремапа стал F19)
                                                                          Да, это я чет ступил… :)

                                                                          Спасибо!
                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                +11
                                                                Вместо MacPorts рекомендую использовать homebrew: и база больше, и геммора меньше, и вообще существенно более человечный менеджер пакетов. Когда перешёл, поначалу довольно сильно радовался :)
                                                                  +2
                                                                  На тот момент, когда я выбирал менеджер пакетов, у макпортов версии многих программ были посвежее. Собственно, потому их и выбрал. Но попробовать homebrew тоже надо будет.
                                                                    0
                                                                    homebrew еще значительно лучше, т.к. не засоряет системные директории, соответственно, можно удалить всё, что было установлено, удалив лишь папку с brew. А с портами придётся повозиться. Да и можно самостоятельно изменять скрипты установки на ruby, что упрощает работу для некоторых специальных задач.
                                                                      +3
                                                                      Порты ставятся в /opt/local и удаляются элементарно.
                                                                    +1
                                                                    а fink?
                                                                      +1
                                                                      У меня он не смог половину пакетов поставить.
                                                                        0
                                                                        Какие например?
                                                                          0
                                                                          например mediatomb. Что macports, что fink оба страдают не адекватным разрешением зависимостей. Лучше бы pkgsrc адаптировали.
                                                                    –5
                                                                    Всё это очень интересно. Однако поставив себя на место обычного пользователя, сразу возникает вопрос — а зачем мне всё это нужно? Я думаю что рассказ о командной строке нужно начинать с того что бы наглядно показать какие преимущества мне это даст?
                                                                      +2
                                                                      Ну вообще, если конкретно у Вас не возникает сразу идей на тему «как это использовать», то, вполне вероятно, Вам консоль и нк чему. Но я постарался привести максимум простейших примеров применения консоли. Основная область применения — автоматизация всевозможных действий, от автоматического переименованя кучи файлов до достаточно сложной обработки изображений и документов. Вот простой пример: нужно во всех файлах определённого типа заменить адреса электронной почты типа «foo@bar.com» на «foo [at] bar [dot] com» — вот тут-то и придут на помощь консольные find и sed, или даже awk.
                                                                        +2
                                                                        Кстати, есть такая замечательная вещь как Автоматор в Макоси.
                                                                          +1
                                                                          Его я тоже упоминал в статье. Но он всё ж немного более визуальный, чем надо =)

                                                                          Кроме того, он достаточно тормозной временами.
                                                                      +3
                                                                      Ждать завершения программы можно так:

                                                                      open -W /Applications/Safari.app
                                                                        +1
                                                                        А вот так, например, можно выключать сафари и некоторые другие проги :)

                                                                        % osascript -e 'Tell application «Safari» to quit'
                                                                          +3
                                                                          А открыть новую копию приложения можно так:
                                                                          open -n /Applications/Safari.app
                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                              +2
                                                                              Дурдом на колесиках. (с) Наши прадеды :)
                                                                              +5
                                                                              Я сильно против MacPorts. Я бы лучше порекомендовал Homebrew, он: гораздо человечнее; тянет за собой сильно меньше зависимостей; понятнее и быстрее; удобнее; и как последний довод: когда я последний раз захотел поставить ImageMagick из портов, эта тварь начала ставить мне так же apache, perl, python, mysql, postgresql, и какое-то дикое количество других зависимостей, одна зависимость на другой, третьей погоняет, при чем в каких-то нечеловеческих объемах.
                                                                              Когда я ставил в своё время MC из портов, он ставился более полу часа с десятком зависимостей. Brew же поставил его за 2-3 минуты с 1 маленькой зависимостью. Почувствуйте разницу, как говорится.

                                                                              Вердикт — MacPorts лесом, Homebrew — наше всё.
                                                                                +1
                                                                                Поддерживаю
                                                                                  +1
                                                                                  Сам пользуюсь homebrew, Платон мне друг, но истина… :)

                                                                                  bash-3.2$ brew deps --tree mc
                                                                                  midnight-commander
                                                                                  > pkg-config
                                                                                  > glib
                                                                                  > > xz
                                                                                  > > gettext
                                                                                  > > libffi
                                                                                  > s-lang
                                                                                  > > pcre
                                                                                  > > oniguruma
                                                                                  +1
                                                                                  Если хочется именно заменить Finder — очень и очень неплох PathFinder. mc, имхо, убожество и совершенно не кассу идеологии Mac OS X. Все-таки, консоль это консоль, не надо через нее пытаться имитировать GUI.

                                                                                  Но iTerm2 действительно хорош, особенно автодополнение и история команд в виде списка — чего очень не хватает в обычном Терминале.
                                                                                    +3
                                                                                    Вместо патфайндера лучше использовать totalfinder, это всё-таки просто плагин для файндера, а не полная его замена. А вместо iterm2 я использую totalterminal и ещё какую-то плюшку для поддержки мыши. Айтерм конечно лучше, но опять, стороннее приложение.

                                                                                    Ну а для консоли конечно mc, тут без вариантов.
                                                                                    +2
                                                                                    Отличная статья! Но вместо macports рекомендую homebrew. Он гораздо проще, удобнее и очень активно развивается. Его даже начали (или уже закончили?) портировать под linux, уж больно удобным вышел.
                                                                                      +1
                                                                                      OK, я настроил iTerm2 как на картинке с отдельным профилем имменно для этого
                                                                                      www.iterm2.com/images/screen-shots/hotkeywindow.png
                                                                                      Что довольно прикольно т.к. консоль нужна мне довольно часто, но когда я вызываю консоль то кроме нее появляется еще и основное окно которое было запущенно с кучей вкладок до этого. Можно ли сделать чтобы основное окно не показывалось когда я хочу показать только консоль как на картинке?
                                                                                        +3
                                                                                        Рекомендую zsh в качестве шелла и прекрасный фреймворк для него oh-my-zsh.
                                                                                        Тут скринкаст Райана Бэйтса.
                                                                                        Актуально не только для OS X, но и для Linux тоже.
                                                                                          0
                                                                                          Хорошо написано. Вы знаете, мне данная статья почему-то напомнила, как все сообщество (не)православных юзеров внезапно ломанулось в линуксы, осваивая нафиг не нужные им консоли, настройки всего и вся, лишь бы уйти от ненавистного линукса.
                                                                                          Сейчас все с линуксов ломятся в макось, боготворя ее. Страдает всегда лишь бедный Windows :)
                                                                                            +1
                                                                                            Спасибо большое за iTerm!
                                                                                            неперь не придется пролистывать файлы в папке в MC с Shift + PgUp :)
                                                                                              +2
                                                                                              Зачем MacPorts при наличии brew?
                                                                                                +1
                                                                                                А как у brew с binary distribution? Или только из исходников компилировать без вариантов?
                                                                                                  +1
                                                                                                  Я не знаю, к сожалению. В моей практике только из исходников собиралось.
                                                                                                    +1
                                                                                                    Выяснил. В общем есть ограниченный список готовых бинарников. Совместимости между бинарниками, скомпилированными под Snow Leopard и Lion никто не обещает. Готовые бинарники есть только под Lion.

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

                                                                                              Самое читаемое