- Открытие и завершение приложения «Терминал» на Mac
- Открытие Терминала
- Завершение приложения «Терминал»
- Завершение сеанса shell
- Ввод команд администратора в Терминале на Mac
- Выполнение команд и запуск инструментов в приложении «Терминал» на Mac
- Выполнение команд в оболочке shell
- Прерывание команд
- Повтор ранее введенных команд
- Терминал на Mac (macOS): что это, команды, синтаксис – понятный гид для начинающих
- Что такое «Терминал»?
- Общие команды для Mac
- Основной синтаксис
- Пробелы
- Команды Терминала для улучшения продуктивности
- mkdir
- Консоль для маководов: Beyond the GUI
- Лирическое отступление
- Начнём работу
- Продолжаем знакомство с консолью. Команда open
- Пара слов о бандлах
- Скрипт?
- Скрипты AppleScript
- Кратко о других полезных командах Mac OS X
- Что-то типа заключения
Открытие и завершение приложения «Терминал» на Mac
Каждое окно в Терминале представляет свой экземпляр процесса shell. Окно содержит приглашение, которое означает, что можно вводить команду. Отображаемое приглашение зависит от настроек Терминала и shell, однако обычно оно включает имя хоста, к которому Вы подключены, Вашу текущую рабочую папку, Ваше имя пользователя и символ приглашения. Например, если пользователь с именем michael использует по умолчанию оболочку zsh, приглашение выглядит следующим образом:
В приглашении указано, что пользователь с именем michael вошел в систему на компьютере с именем MacBook-Pro и текущей папкой является его папка пользователя, обозначаемая тильдой (
Открытие Терминала
На компьютере Mac выполните одно из следующих действий.
Нажмите значок Launchpad в панели Dock, введите «Терминал» в поле поиска и нажмите значок Терминала.
В окне Finder откройте папку «Программы/Утилиты» и дважды нажмите приложение «Терминал».
Завершение приложения «Терминал»
В приложении «Терминал» на Mac выберите пункт меню «Терминал» > «Завершить Терминал».
Завершение сеанса shell
В окне приложения «Терминал» на Mac, где запущен процесс shell, который Вы хотите завершить, введите exit и нажмите клавишу Return.
Это обеспечит закрытие всех текущих команд, выполняемых в shell. Если что-то продолжает выполняться, появляется диалоговое окно.
Если Вы хотите изменить поведение при выходе из shell, см. Изменение настроек shell для профилей.
Источник
Ввод команд администратора в Терминале на Mac
Для выполнения многих команд управления сервером требуются права администратора или корневого пользователя, также называемого суперпользователем.
Например, если Вы не являетесь администратором или корневым пользователем, при вводе команды shutdown будет выдана следующая ошибка:
Причина заключается в том, что команду shutdown может выполнить только корневой пользователь или администратор с правами корневого пользователя.
Чтобы выполнить команды с правами суперпользователя, используйте команду sudo . sudo обозначает superuser do (выполняется суперпользователем).
Следующий пример работает на компьютерах с установленной macOS. Не выполняйте его, если не хотите перезагружать компьютер.
Потребуется ввести пароль текущего пользователя.
Команду sudo может использовать только администратор. Если Вы еще не вошли в систему как администратор, Вы можете сделать это с помощью следующей команды, где adminUsername — это имя администратора:
Потребуется ввести пароль adminUsername, после чего будет открыта новая shell для этого пользователя.
Если это необходимо для выполнения команды, Вы можете переключиться на корневого пользователя с помощью команды su . В обычных обстоятельствах не рекомендуется входить в систему в качестве корневого пользователя.
Важно! Если Вы использовали команду su для входа в систему в качестве корневого пользователя, соблюдайте особую осторожность, поскольку Ваших прав хватит для внесения серьезных изменений и остановки работы компьютера.
Источник
Выполнение команд и запуск инструментов в приложении «Терминал» на Mac
Среду командной строки можно использовать в интерактивном режиме, то есть вводить команду и ждать результат. Вы также можете составить shell-скрипт, который будет выполняться без Вашего непосредственного участия.
Выполнение команд в оболочке shell
В приложении «Терминал» на Mac введите полный путь к исполняемому файлу инструмента, затем введите все необходимые аргументы и нажмите клавишу Return.
Если команда находится в одной из известных папок shell, при вводе имени команды можно не указывать путь. Список известных папок хранится в переменной среды PATH оболочки shell и включает папки, содержащие большинство инструментов командной строки.
Например, чтобы выполнить команду ls в папке текущего пользователя, введите следующую команду в командной строке, затем нажмите Return:
Чтобы выполнить команду в папке текущего пользователя, введите перед командой спецификатор папки. Например, чтобы выполнить MyCommandLineProg , используйте следующую команду:
Чтобы открыть приложение, используйте команду open:
Если при вводе команды отображается сообщение command not found , проверьте правильность написания. Пример:
Прерывание команд
В приложении «Терминал» на Mac нажмите окно Терминала, где выполняется команда, которую Вы хотите завершить.
Нажмите сочетание клавиш Control-C.
Будет отправлен сигнал, который вызывает прерывание большинства команд.
Повтор ранее введенных команд
Введенные в текущем сеансе команды сохраняются, так что Вы можете повторить ранее использованную команду, не вводя ее снова.
В приложении «Терминал» на Mac нажмите клавишу со стрелкой вверх.
Последняя введенная команда отобразится в командной строке.
Продолжайте нажимать клавишу со стрелкой вверх, пока не появится нужная команда, затем нажмите клавишу Return.
Источник
Терминал на Mac (macOS): что это, команды, синтаксис – понятный гид для начинающих
Сегодня все мы в 99% случаев работаем с Mac через приятный, понятный и удобный графический интерфейс пользователя. Но при решении ряда специфических задач даже Finder не справится с тем, что сделает старая добрая командная строка…
Например, с её помощью гораздо проще – и быстрее! – искать затерявшийся где-то в недрах системы 5-гигабайтный файл или путь к приложению, которое, как вы думали, уже давно удалено.
Что такое «Терминал»?
Терминал – стандартная системная утилита для взаимодействия с Mac при помощи командной строки. В Linux есть похожий инструмент управления, т.к. обе ОС являются Unix-подобными.
Интерфейс командной строки (command line interface или сокращенно CLI) – он же язык общения с Терминалом – называется bash. Всё, о чем мы расскажем ниже – это bash-команды.
Общие команды для Mac
Основной синтаксис
Bash-команда обычно строится так:
[Команда] [Опции] [Ввод или путь к файлу или директории]
ls – это команда, -la – это соединение двух опций (-l и -a), а /Applications – это путь к списку.
Если вы поймете путь, то поймете и то, как macOS в действительности видит ваши файлы. Как? Да как в матрешке – одна за другой. Например, вот путь к файлу под названием «Мои секреты», лежащему на Рабочем столе: /Users/Yablykworld/Desktop/My Secrets.
Пробелы
С пробелами действует простое правило – ничего лишнего!
Почему? Дело в том, что bash считает пробел концом команды!
Если у вас есть папка с пробелами в названии – например, Yablyk Folder, и вы пытаетесь вывести её содержимое с помощью команды ls /Applications/Yablyk Folder, то соответствующий файл не будет найден, и на выходе появится ошибка:
Чтобы решить эту проблему, понадобятся кавычки или обратный слэш. Вот теперь всё будет правильно:
ls /Applications/»Yablyk Folder» , или
ls /Applications/Yablyk\ Folder
Многим командам требуется доступ с уровня администратора. Если вы сейчас пользуетесь Mac не под аккаунтом его «админа», но знаете пароль, введите в командную строку перед текстом самой команды sudo – (что означает «single user do», «делает один пользователь»). Так вы временно получите привилегии администратора и возможность произвести необходимые операции без смены аккаунта.
Команды Терминала для улучшения продуктивности
- Заменяет: Spotlight
- Почему лучше: работает быстрее, осуществляет поиск и по системным папкам (тогда как Spotlight в них не ищет или плохо индексирует их содержимое).
Синтаксис find состоит из четырех частей:
2. путь к директории, в которой вы хотите искать информацию (например, /Applications);
3. опции (например, -name дает find возможность искать файлы, которые подходят к заданному названию);
4. непосредственно сам поисковый запрос (например, Google Chrome).
Вот как выглядит вся команда в целом:
find /Applications -d 1 -name «*Google Chrome*»
Примечание: «звездочки» (*) указывают на то, что используется regex (регулярные выражения).
- Заменяет:⌘Cmd + I, т.е. команды для отображения информации;
- Почему лучше: может показать сразу несколько папок за один раз, и обычно выполняется быстрее.
du – это сокращение от «disk usage». Команда поможет быстро узнать размер конкретного файла или папки, или даже списка файлов внутри папки.
Лучшие опции для du:
-d («глубина», или depth): если за этой буквой стоит цифра, то find ограничит поиск по директории соответствующим количеством уровней. Например, если вы отдадите вашему Mac команду du:
Терминал выдаст вам информацию только об общем «весе» папок и файлов в папке Applications, без данных о размере подпапок, вложенных в эти папки.
-h (human readable, или «человеко-читаемые»). Выводит размеры файлов в привычных людям величинах – K (килобайтах), М (мегабайтах) или G (гигабайтах).
Команда du в действии:
- Заменяет: ручной перенос папок и файлов в нужное место.
- Почему лучше: быстрее и не требует много ручного труда.
Синтаксис mv очень прост – старый путь меняется на новый:
mv /Users/Yablykworld/Documents/file1 /Users/Yablykworld/Desktop/file1
Эта команда переносит file1 из папки Документы на Рабочий стол.
- Заменяет:⌘Cmd + I (показать информацию).
- Почему лучше: быстрее, умеет отображать информацию о нескольким файлах сразу и имеет богатую палитру настроек.
ls – невероятно мощная. команда для отображения того, что находится в ваших папках. Также она выдает информацию о том, кто имеет право видеть их, есть ли на вашем Mac скрытые файлы или папки, и многое другое.
Лучшие опции для ls:
-l – отображает права для каждого файла в папке, время последнего изменения, владельца файла и его (файла) название.
-a – показывает все файлы в папке, включая скрытые (отличный вариант для библиотеки пользователя, которая в macOS по умолчанию скрыта).
Вот как всё работает:
ls -la /System/Library
mkdir
- Заменяет действие:Finder → Файл → Новая папка.
- Почему лучше: работает быстрее, и задать имя новой папочке можно сразу в командной строке (нет необходимости кликать два раза, как это имеет место быть в графическом интерфейсе).
Создает новые папки в мгновение ока.
- Заменяет: процедуру отправки файлов в Корзину и её очистки;
- Почему лучше: быстрее, плюс удаляются даже те файлы, от которых обычно не получается избавиться с помощью Корзины.
Эта команда раз и навсегда удаляет абсолютно любой файл, который вы поместите в команду. Что, разумеется, требует повышенного внимания – в отличие от Корзины, rm не будет спрашивать «а Вы точно уверены?». Предполагается, что вы знаете, что делаете…
По умолчанию rm удаляет только файлы, папки остаются. Для того, чтобы сразу удалять и их, используйте опцию -R (рекурсивно).
rm -R /Users/Yablykworld/Desktop/Yablyk_Folder
Источник
Консоль для маководов: 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-скриптинг да и вообще в консоль.
Источник