- Использование текстовых редакторов командной строки в Терминале на Mac
- Могу ли я открыть файлы в TextEdit из терминала в Mac OS X?
- Другие соответствующие варианты
- Как редактировать защищённые файлы Mac OS X?
- 1) Редактирование через Терминал
- 2) Запуск текстового редактора с правами администратора
- 3) Сторонние специализированные программы
- Выполнение команд и запуск инструментов в приложении «Терминал» на Mac
- Выполнение команд в оболочке shell
- Прерывание команд
- Повтор ранее введенных команд
- Консоль для маководов: Beyond the GUI
- Лирическое отступление
- Начнём работу
- Продолжаем знакомство с консолью. Команда open
- Пара слов о бандлах
- Скрипт?
- Скрипты AppleScript
- Кратко о других полезных командах Mac OS X
- Что-то типа заключения
Использование текстовых редакторов командной строки в Терминале на Mac
Для редактирования файла с обычным текстом в Терминале можно использовать текстовый редактор командной строки.
Для выполнения стандартных действий удобнее всего использовать один из текстовых редакторов, входящих в состав macOS. Если Вы хотите использовать графический текстовый редактор, используйте TextEdit (в Launchpad). В противном случае используйте один из редакторов командной строки, входящих в состав macOS.
Nano. Редактор nano — это простой редактор командной строки. Он хорошо подойдет для знакомства с редакторами командной строки, так как содержит удобную и понятную экранную справку. См. man-страницу редактора nano.
Vim. Редактор vim — это текстовый редактор, совместимый с vi . Он содержит множество мощных функций для перемещения по документу, а также поиска и редактирования документов. Можно легко освоить базовое редактирование, а при желании углубиться в изучение дополнительных функций. Для доступа к большинству функций используются сочетания клавиш, которые вызывают определенные действия. Редактор vim или послуживший образцом для его создания редактор vi можно встретить в большинстве операционных систем на основе UNIX. См. man-страницу редактора vim.
Если Вы только знакомитесь с командной строкой и не планируете часто использовать ее для редактирования, скорее всего, Вам лучше выбрать nano . Если предполагается использовать командную строку часто, возможно, стоит изучить редактор vim . В их основе заложены разные философии проектирования, так что рекомендуется некоторое время поработать с каждым из этих редакторов, чтобы определить, какой из них лучше подходит лично Вам.
Чтобы в приложении «Терминал» на Mac вызвать редактор командной строки, необходимо ввести имя редактора, пробел, а затем имя файла, который Вы хотите открыть. Чтобы создать новый файл, необходимо ввести имя редактора, пробел, а затем имя пути файла.
Источник
Могу ли я открыть файлы в TextEdit из терминала в Mac OS X?
Я часто нахожу, что команда терминала, чтобы открыть файл в TextEdit была бы очень удобной. Существует ли такая команда в Mac OS X?
open -a TextEdit filename должен сделать свое дело.
-a Флаг указует любое приложение , которое вы хотите, так что это применимо к любому числу ситуаций, в том числе тех , в которых TextEdit не редактор по умолчанию.
Другие соответствующие варианты
- -t открывается в редакторе по умолчанию (например, если вы используете BBEdit, TextMate и т. д.)
- -e откроет файл специально в TextEdit
Прямой, простой ответ — добавьте псевдоним в ваш
Вызовите это как:
Разница между этим и другим ответом в том, что вы можете легко запомнить его, когда захотите. Ввод text и Tab автозаполнение сделает его мгновенно доступным
Для тех, у кого немного больше опыта в bash, и тех, кто хочет рассуждать без суеты, чтобы выяснить это:
Проблема заключается в том, что тривиальная символическая ссылка (или ее аналог, как перенаправление сценария оболочки) /Applications/TextEdit.app/Contents/MacOS/TextEdit заставляет новый экземпляр TextEdit открывать файл, который вы передаете ему. Это работает, но не дает ожидаемого поведения Mac OS X по умолчанию. (если вы попробуете, вы увидите)
Чтобы получить поведение пользовательского интерфейса по умолчанию, используя встроенную open команду Mac с этим флагом ‘-a TextEdit’ (что упоминалось другими), побуждает пользовательский интерфейс Mac иметь (любой) работающий в данный момент экземпляр TextEdit для обработки вызова (без inapropos ‘). sudo ‘необходимо для общего использования).
Источник
Как редактировать защищённые файлы Mac OS X?
Основа стабильности любой операционной системы — это ограничение доступа к важным файлам, от которых зависит работа компьютера, или попросту «защита от дурака». В Mac OS X, как во всех остальных *nix-системах, эта защита реализована через права доступа, группы и владельцев объектов. Прочитать обо всём этом вы можете в нашем цикле статей о Терминале Mac OS X, а сегодня речь пойдёт не столько о защите, сколько о способах её преодоления.
Зачем это нужно? Рано или поздно любой пользователь Мака сталкивается с необходимостью что-нибудь отредактировать в настройках системы или отдельных программ. Ну а владельцы хакинтошей сталкиваются с этой необходимостью чуть ли не каждый день. Как же обойти хитрую систему присвоения прав доступа, чтобы что-нибудь поменять в системе исключительно ради благой цели?
Стандартным форматом настроек Mac OS X и программ для неё является PLIST. Это обычный текстовый файл, который по умолчанию откроется в текстовом редакторе TextEdit. Теперь представьте, что вы открыли такой файл, внесли все нужные изменения и теперь хотите сохранить его. Но не тут-то было! Вы увидите вот такую ошибку:
Вариант у вас только один — сохранить файл ещё где-нибудь. Но это очень и очень плохой вариант. Во-первых, вы потом не сможете скопировать этот файл в его исходную папку. Система просто не даст вам перезаписать имеющийся файл (и будет права). Ну а если вы удалите старый файл и только затем скопируете в ту же папку отредактированную копию, то она скопируется, но будут нарушены права доступа. А это грозит вам самыми загадочными и непредсказуемыми глюками.
Именно поэтому мы рассмотрим несколько других вариантов.
1) Редактирование через Терминал
Терминал даёт пользователю возможность выполнять действия от имени корневого администратора. А это означает, что вам будет подвластен каждый файл компьютера. Надеемся, нет смысла предупреждать вас об опасности наличия такой власти 😉
В самом Терминале есть несколько встроенных средств редактирования, например, команды nano и vi. Воспользоваться ими проще простого. Сначала нужно приобрести права root-администратора. Введите команду:
Затем вслепую введите пароль и нажмите Enter.
А теперь достаточно ввести:
nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Или можно ввести nano и пробел, а потом перетащить редактируемый файл в окно Терминала. Останется нажать Enter. Работа с командой vi осуществляется точно так же.
Но редактировать файл в таком режиме — удовольствие не из приятных. Судите сами: никакого управления мышью тут не предвидится, и даже курсор придётся передвигать с клавиатуры.
Полезный совет: чтобы выйти из nano, закройте Терминал или нажмите на клавиатуре Ctrl+X.
2) Запуск текстового редактора с правами администратора
Второй способ более элегантен. Он позволит вам пользоваться обычными программами Mac OS X для правки текста, но запущенными от имени администратора. В этом случае никаких ошибок с правами доступа не возникнет.
Запустите Терминал, введите sudo -s и пароль. Затем нужно будет ввести громоздкую конструкцию типа:
/Applications/TextEdit.app/Contents/MacOS/TextEdit
Заметьте: через Терминал нужно запускать не саму программу (т.е. файл TextEdit.app), а её бинарник, упрятанный внутри программы, в подпапке Contents/MacOS.
После этого TextEdit отлично сможет работать с любыми файлами, но только до первого закрытия программы.
3) Сторонние специализированные программы
Не можем не порекомендовать текстовый редактор TextMate. Это продвинутая версия TextMate, которая делалась в расчёте на программистов, но будет полезна на каждом Маке (а на хакинтоше тем более). К вашим услугам — наглядное форматирование текста, работа с самыми разными кодировками и главное — поддержка работы с защищёнными файлами без дополнительных махинаций в Терминале.
При сохранении защищённого файла TextMate предложит вам ввести пароль, и без проблем сохранит все изменения.
Впрочем, цена — явно не достоинство TextMate. После окончания 30-дневного триала с вас попросят 39 евро. Разработчики оправдываются, указывая на огромное количество встроенных модулей по обработке разных скриптов и языков программирования:
Только вот зачем они рядовому пользователю? Если же цена вас не отпугивает, то можете скачать TextMate по ссылке ниже:
Источник
Выполнение команд и запуск инструментов в приложении «Терминал» на Mac
Среду командной строки можно использовать в интерактивном режиме, то есть вводить команду и ждать результат. Вы также можете составить shell-скрипт, который будет выполняться без Вашего непосредственного участия.
Выполнение команд в оболочке shell
В приложении «Терминал» на Mac введите полный путь к исполняемому файлу инструмента, затем введите все необходимые аргументы и нажмите клавишу Return.
Если команда находится в одной из известных папок shell, при вводе имени команды можно не указывать путь. Список известных папок хранится в переменной среды PATH оболочки shell и включает папки, содержащие большинство инструментов командной строки.
Например, чтобы выполнить команду ls в папке текущего пользователя, введите следующую команду в командной строке, затем нажмите Return:
Чтобы выполнить команду в папке текущего пользователя, введите перед командой спецификатор папки. Например, чтобы выполнить MyCommandLineProg , используйте следующую команду:
Чтобы открыть приложение, используйте команду open:
Если при вводе команды отображается сообщение command not found , проверьте правильность написания. Пример:
Прерывание команд
В приложении «Терминал» на Mac нажмите окно Терминала, где выполняется команда, которую Вы хотите завершить.
Нажмите сочетание клавиш Control-C.
Будет отправлен сигнал, который вызывает прерывание большинства команд.
Повтор ранее введенных команд
Введенные в текущем сеансе команды сохраняются, так что Вы можете повторить ранее использованную команду, не вводя ее снова.
В приложении «Терминал» на Mac нажмите клавишу со стрелкой вверх.
Последняя введенная команда отобразится в командной строке.
Продолжайте нажимать клавишу со стрелкой вверх, пока не появится нужная команда, затем нажмите клавишу Return.
Источник
Консоль для маководов: Beyond the GUI
Доброго дня, уважаемые хабравчане-маководы!
Сегодня я расскажу как увеличить эффективность работы в Mac OS X за счёт использования консоли.
Лирическое отступление
Думаю, ни для кого не секрет, что Mac OS является Unix-based системой, но переработанной почти до неузнаваемости. Даже консоль засунули куда подальше — не сразу и найдёшь. И вся система нацелена на использование GUI, при дефолтных настройках даже переключение между кнопками по Tab не работает — без мыши никуда. И тем не менее, Мак — это не только окошки, не только док и лаунчер. Мак это ещё и вся мощь shell скриптов и консоли!
Если Вы пришли из мира M$, то для начала неплохо бы поучить общие команды shell’а, например, по вот этому учебному пособию. Как минимум, нужно усвоить команды перехода по каталогам и способы запуска программ и скриптов.
Если Вы пришли в мир Mac OS из мира Linux’а и FreeBSD, то, скорее всего, знаете как минимум основы shell-скриптинга. Но и для вас в статье может оказаться кое-что интересное, ведь в маке есть уникальные консольные команды, которые так же полезно знать.
Вот о некоторых особенностях маковской консоли далее и пойдёт речь.
Начнём работу
Для начала избавимся от стандартного терминала. Ну, точнее, поставим другой — получше. Я лично предпочитаю iTerm2, который подходит для работы куда лучше системного. Хотя, и у него бывают интересные моменты (см. картинку вверху).
Далее нам могут понадобиться дополнительные инструменты, поэтому устанавливаем MacPorts (хотя, конечно, можно и другой менеджер пакетов). Теперь мы можем ставить нужные консольные утилиты с помощью простых команд. Например, ставим Midnight Commander (он в любом случае может пригодиться), набираем в iTerm2:
После ввода пароля и установки зависимостей и самого mc, можем его запустить, как вы уже догадались, командой mc .
О ужас! Нам понадобятся функциональные клавиши, а они нажимаются только через Fn+F15 , что же делать? Ну как что — лезть в системные настройки и выключать это. Иначе сложно будет с mc работать.
Ещё одно важное замечание: кури мануалы если что-то не понятно, набираем в консоли man команда — и получаем подробное описание команды. (Кстати, для выхода из просмотра мануала надо просто нажать Q).
Продолжаем знакомство с консолью. Команда open
Легко можно заметить, что mc показывает куда больше файлов и папок, чем Finder. Конечно, можно поставить хак для него, чтобы он отображал такие файлы, но не все это любят. Так что остаётся лишь пользоваться Cmd+Shift+G и вводить вручную имя папки. Но данный способ не особо удобен: нет автокомплита, нет возможности видеть скрытые файлы. Теперь вернёмся к терминалу. В Mac OS X есть замечательнейшая команда open , которая действует так, как будто пользователь сделал даблклик на файле или папке в Finder — открывает файл, бандл или ссылку в связанной программе, открывает папку в Finder’е. Вот простой пример работы с этой командой: заходим с помощью mc в скрытую папку (например, /etc/) и набираем:
Wuala! Файндер отобразил нам нашу системную папку! Но это ещё не всё, ведь скрытые файлы всё ещё не видны. Для примера, откроем наш .profile :
И — опа! — скрытый файл открылся в TextEdit! Всё предельно просто.
Пара слов о бандлах
Это всем известно, но на всякий случай повторю: обычные программы в Mac OS X на самом деле являются папками с расширением .app и особым образом устроенным содержимым. Убедиться в этом легко: открываем в Finder папку /Applications/ и делаем Ctrl+Click (либо Right-Click , если хотите) на любой программе и выбираем «Показать содержимое пакета».
Из консоли это так же очень хорошо видно: mc отображает эти программы именно как папки. И как же запустить из консоли GUI-программу, спросите вы? Очень просто, есть даже два способа.
Способ первый, простейший:
Программа будет запущена и консоль будет свободна для дальнейших действий.
Способ второй, интересный:
Программа будет запущена, но консоль не освобидится — она будет ждать завершения программы и выводить всё, что программа захочет вывести в неё. То есть, таким образом можно посмотреть рабочий лог некоторых программ.
Ещё одно очень важное различие между этими двумя методами: второй позволяет запустить два экземпляра программы, в то время как первый активирует уже запущенную, буде такая имеется. Так что через консоль можно решить и эту проблему (хотя, скорее фичу) макоси: через Finder, док и лаунчер запустить два экземпляра программы нельзя, а вот из консоли — пожалуйста, хоть двадцать два.
Скрипт?
Расскажу вкратце что из себя представляет shell-скрипт. По сути — это обычный текстовый файл, содержащий серию команд для выполнения. Самый простой скрипт просто запускает последовательно все команды. Скрипты посложнее могут иметь условия, циклы и функции, то есть, скрипт может быть весьма большой и сложной программой. Основной плюс таких скриптов — на их службе вся мощь консольных утилит из мира unix, что с лихвой компенсирует бедность языковых конструкций. Приведу простой пример скрипта, который преобразует все файлы .png в текущей директории, уменьшив их размер до 200 пикселей в ширину или высоту.
Пример простейший, но он демонстрирует главное: в скриптах сокрыта великая сила.
Скрипты AppleScript
В Mac OS X имеется несколько встроенных механизмов по автоматизации действий. Один из очень распространённых — AppleScript, для которого есть и графический редактор-запускатор. Но использовать такие скрипты можно и из консоли, для этого есть особая утилита — osascript . Использовать её можно так:
Не буду углубляться в AppleScript, он заслуживает отдельной статьи, и даже не одной. Так что рекомендую почитать справку или гугл по нему.
Главное: Вы можете комбинировать shell-скрипты со скриптами AppleScript, чтобы добиться максимальной гибкости в работе! К примеру, я использую такие вот смешанные скрипты для автоматической стилизации образа диска: сам диск создаётся с помощью shell (см. ниже), а фон и расположение элементов в образе задаётся с помощью AppleScript.
Есть ещё Automator, но он совсем уж GUI-шный, так что в данной статье его рассматривать бессмысленно. Он, конечно, полезный, но до мощи консоли не дотягивает.
Кратко о других полезных командах Mac OS X
Полный (ну, почти) список уникальных для макоси команд можно найти в одной хорошей статье (хотя сведения там немного устарели), я же вкратце расскажу о наиболее интересных.
Для работы с образами дисков имеется консольная утилита hdiutil . Пара примеров работы с ней:
Более подробно про возможности можно узнать из man hdiutil .
Если Вы — разработчик программ для макоси, то наверняка знаете о такой замечательной вещи, как Info.plist, да и вообще о plist’ах. Так вот, есть очень удобная утилита, позволяющая конвертировать .plist в .bplist, то есть, в более быстрый и лёгкий бинарный формат плиста.
Если хотите позаниматься ерундой, то можно из консоли проговорить любой текст. Для этого есть утилита say .
Так же можно задавать голос, которым мак будет с нами говорить:
Одна беда — по-умолчанию говорит эта штука только по-английски.
Теперь снимем скриншот командой из консоли.
Так же из консоли можно конвертировать текст между различными форматами. Например, можно переконвертировать .doc файл в HTML:
Так же textutil умеет преобразовывать кодировки.
Для изменения системных (и не только) настроек, можно использовать команду defaults . Используем её во благо! Включим наконец отображение скрытых файлов и папок в Finder!
Файндер автоматически перезапустится и теперь будет отображать скрытые файлы и папки! Но опять таки, это не всем нравится, так давайте это выключим, пока родителикто-нибудь не испугался или не удалил нужных файликов. Для сокрытия в уже указанной команде поставьте 0 вместо 1. Ну и для примера, ссылка на статью, где описано много твиков с помощью этой команды.
Что-то типа заключения
Ну что ж, мы разобрали некоторые интересные возможности консоли в Mac OS X. Статья, разумеется, не претендует на полноту и является, скорее, «заманухой» для вовлечения маководов в shell-скриптинг да и вообще в консоль.
Источник