0,1
рейтинг
5 мая 2012 в 18:11

Разработка → Консоль для маководов: 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!
Валентин @silvansky
карма
110,7
рейтинг 0,1
Developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (123)

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

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

          Fedora 16, тот же браузер — буква «p» О_о
          • +8
            А зачем в Убунту надкусанное яблоко? :) Поставьте шрифт от Мака — будет.
            • 0
              Да не только в яблоке дело. Просто если бы работало везде, то неплохая идея отмечать в тегах какие-нибудь иконки.
              • +3
                А кто мешает-то? В Юникоде полно символов — можно использовать любой.
                • +2
          • 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)
                  Да, это я чет ступил… :)

                  Спасибо!
  • +4
    Первое что нужно сделать — поставить iTerm2 :)
  • +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.

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