- Консоль для маководов: Beyond the GUI
- Лирическое отступление
- Начнём работу
- Продолжаем знакомство с консолью. Команда open
- Пара слов о бандлах
- Скрипт?
- Скрипты AppleScript
- Кратко о других полезных командах Mac OS X
- Что-то типа заключения
- Основы работы с командной строкой (Терминалом) на Mac OS X
- Где найти командную строку
- Основные команды:
- Команда ls
- Команда cd
- Команда pwd
- Команда mkdir
- Команда open
- Команда touch
- Команда mv
Консоль для маководов: 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-скриптинг да и вообще в консоль.
Источник
Основы работы с командной строкой (Терминалом) на Mac OS X
- написана командой Vertex Academy. Надеемся, что она Вам будет полезна. Приятного прочтения!
- это одна из статей из нашего «Самоучителя по Java»
Привет! Это статья для тех, кто только начинает знакомство с командной строкой.
Сегодня мы рассмотрим основные команды в среде MacOS.
Где найти командную строку
Есть несколько способов:
- Вызовите окно поиска (Cmd + Пробел, на Вашем устройстве может быть установлена другая комбинация), и напишите «Терминал» или «Terminal»:
- Другой вариант — найти Терминал в Launchpad:
Там, в папке «Другие», можно найти значок Терминала:
Теперь, если мы нажмем на значок, откроется такое окно:
Обратите внимание: это стандартная программа для работы в командной строке. При желании, Вы можете установить и какую-нибудь другую программу — например, iTerm, Terminator и т.д.
Основные команды:
Давайте рассмотрим каждую из них по отдельности.
Команда ls
ls — расшифровывает как «List files in the directory», что переводится как «перечислить все файлы в папке» или «вывести на экран список файлов в папке». Синтаксис команды такой:
ls
Итак, если Вы только открыли терминал, Вы автоматически попадете в так называемый «home directory» — «исходный каталог», или «хомяк» — сленг от слова»home» 🙂 Обычно это папка, которая называется так же как и имя пользователя. Давайте откроем терминал и напишем команду ls:
Если нажать Enter, то мы увидим:
У Вас исходный каталог может выглядеть по-другому — например, у Вас не будет папок 42FileChecker, если у Вас не будет установлен Adobe Creative Cloud, — не будет папки Creative Cloud Files, и т.д.
Команда cd
cd — расшифровывается как «Change directory», что переводится как «сменить папку» или «перейти в другую папку». Синтаксис такой:
cd
Например, как Вы помните, мы только открыли терминал и сейчас находимся в home directory:
Мы можем зайти в одну из этих папок. Давайте, например зайдем в папку Desktop (Рабочий стол). Для этого, напишем:
cd Desktop
Если мы нажмем Enter, мы перейдем на Рабочий стол. Сейчас, у нас на Рабочем столе находится только папка «Files»:
И если мы теперь вызовем команду ls, увидим только папку Files — то же самое, что видим на своем Рабочем столе:
Чтобы выйти обратно, напишем:
cd ..
То-есть мы пишем «cd«, а потом две точки:
Нажмем Enter. Теперь, давайте еще раз вызовем ls:
Как видите, мы опять находимся в home directory.
Команда pwd
- pwd — «present working directory»
pwd — расшифровывает как «Present working directory», что переводится как «текущая рабочая директория». То есть команда pwd показывает, в какой сейчас папке мы находимся. Синтаксис такой:
pwd
Например, у нас имя пользователя «Maria». Поэтому, наша домашняя папка так и называется:
Опять же, если мы зайдем в папку Desktop:
Если мы сейчас напишем pwd, то увидим, что мы находимся папке «Desktop«:
Команда mkdir
mkdir — расшифровывается как «Make directory», что переводится как «создать папку». Синтаксис такой:
mkdir
Например, сейчас мы находимся на Рабочем столе. Как Вы помните, в этой папке у нас только одна папка — Files:
Теперь, давайте создадим новую папку — например, с названием «NewDirectory»:
Теперь, если мы вызовем команду «ls», то увидим, что у нас уже две папки:
Для большей наглядности, мы можем открыть папку в Finder:
Команда open
«Open» переводится как «открыть». С помощью этой команды мы можем открыть что угодно — папку или файл. Синтаксис такой:
open
Например, сейчас мы находимся в папке Desktop. Давайте откроем папку NewDirectory. Для этого мы пишем:
open NewDirectory
Нажмем Enter. Тогда мы увидим, что откроется папка «NewDirectory» в Finder:
Чтобы открыть текущую папку, мы пишем:
open .
Здесь точка означает папку, в которой мы находимся. Например, давайте вернемся в папку home directory:
Теперь, мы находимся в папку, которая называется именем пользователя:
Напишем «open .«:
Отлично! Точно так же мы можем открывать и файлы. Например, создадим новый текстовый файл на Рабочем столе:
Теперь, зайдем на Рабочий стол:
open text.txt
Тогда, файл будет открыть в программе по умолчанию:
Мы можем открыть этот же файл и находясь в другой папке. Например, вернемся в «домашнюю» папку. Это, кстати, можно сделать, если просто написать «cd«, без аргументов:
Теперь, мы будем находиться в папке с именем пользователя:
Давайте откроем файл text.txt отсюда. Напишем путь к файлу:
open Desktop/text.txt
Получим такой же результат, как и в первый раз:
Точно так же, мы можем открыть файл и если он находится в папке «выше». Например, зайдем в папку NewDirectory:
Мы можем открыть файл, если напишем следующее:
open ../text.txt
Увидим, что файл, как и раньше, открылся в программе TextEdit:
Но мы и сами можем выбрать приложение, в котором следует открыть файл. Синтаксис такой:
open -a
Например, давайте откроем файл с помощью приложения Safari. Пишем:
open -a Safari ../text.txt
Если нажать Enter , увидим что файл открылся в браузере:
Команда touch
С английского «touch» переводится как «прикоснуться», «потрогать» 🙂 Эта команда позволяемое нам создать пустой файл. Синтаксис такой:
touch
Например, сейчас мы находимся в NewDirectory на Рабочем столе. Мы можем проверить это с помощью команды pwd, которую мы выучили раньше:
Теперь, давайте создадим файл. Мы можем сделать что угодно — изображение (img.jpg), текстовый файл (file.txt) или звуковой файл (sound.waw). Естественно, все эти файлы будут пустыми.
touch image.jpg
Теперь, в папке NewDirectory появится файл image.jpg. Давайте откроем папку с помощью команды open и посмотрим:
Отлично! Еще, мы можем создать несколько файлов одной командой. Их имена можно указать через пробел:
touch file1 file2 file3 .
Например, давайте сделаем несколько файлов с расширением .txt. Напишем в командной строке:
touch 1.txt 2.txt 3.txt
Теперь, если мы откроем папку NewDirectory, мы увидим наши новые файлы:
Команда mv
mv — расфшифровывается как»Move», что переводится как «переместить», «передвинуть». С помощью этой команды мы можем:
- переместить файл из одной папки в другую
- переименовать файл
Итак, чтобы переместить файлы из одной папки в другую, мы пишем следующее:
mv
Например, давайте переместим файл image.jpg из папки NewDirectory на Рабочий стол (т.е. на уровень выше). Для этого, пишем:
mv image.jpg /Users/Maria/Desktop
Как видите, мы указали абсолютный путь. То-есть это путь не относительно нашей текущей папки («относительный» путь), а путь по которому папка находится в системе. Это можно сравнить с адресом. Можно сказать, что дом находится «на соседней улице» (это будет относительный путь), а можно что он находится по адресу. например, Ул. Уличная 123 (это будет абсолютный путь).
Таким образом, наш файл переместиться на Рабочий стол:
Как видите, теперь в папке нет изображения. Вместо этого, оно находится на Рабочем столе:
Давайте теперь вернем файл обратно. Напишем:
mv ../image.jpg .
Как видите, мы берем файл image.jpg, который находится на уровень выше (../image.jpg), и переедаем его в папку, в которой мы находимся сейчас (.).
Теперь, файл image.jpg опять в папке NewDirectory:
Кроме того, мы можем перемещать несколько файлов одновременно. Синтаксис такой:
mv file1 file2 file3.
Итак, давайте переместим все файлы из папки NewDirectory на Рабочий стол. И в этот раз, мы используем не абсолютный путь, а относительный. Пишем следующее:
mv image.jpg 1.txt 2.txt 3.txt ./..
Точно так же, мы могли бы написать:
mv * ./..
где * означает все файлы в папке.
Вот теперь мы можем увидеть, что все указанные нами файлы переместились на Рабочий стол:
Теперь, давайте посмотрим как можно переименовать файл. Синтаксис такой:
mv
Например, давайте поменяем название файла с image.jpg на picture.jpg. Для этого нам нужно перейти в папку Рабочий стол с помощью команды cd, а потом написать:
mv image.jpg picture.jpg
Если мы теперь откроем папку Рабочий стол, то увидим следующее:
Отлично! Теперь файл называется по-другому — picture.jpg.
Вот и все — теперь Вы знаете основные команды для работы с командной строкой на Mac OS.
Спасибо, что были с нами! 🙂
Надеемся, что наша статья была Вам полезна. Можно записаться к нам на курсы по Java на сайте.
Источник