Терминал на Mac (macOS): что это, команды, синтаксис – понятный гид для начинающих
Сегодня все мы в 99% случаев работаем с Mac через приятный, понятный и удобный графический интерфейс пользователя. Но при решении ряда специфических задач даже Finder не справится с тем, что сделает старая добрая командная строка…
Например, с её помощью гораздо проще – и быстрее! – искать затерявшийся где-то в недрах системы 5-гигабайтный файл или путь к приложению, которое, как вы думали, уже давно удалено.
Что такое «Терминал»?
Терминал – стандартная системная утилита для взаимодействия с Mac при помощи командной строки. В Linux есть похожий инструмент управления, т.к. обе ОС являются Unix-подобными.
Интерфейс командной строки (command line interface или сокращенно CLI) – он же язык общения с Терминалом – называется bash. Всё, о чем мы расскажем ниже – это bash-команды.
Общие команды для Mac
Основной синтаксис
Bash-команда обычно строится так:
[Команда] [Опции] [Ввод или путь к файлу или директории]
Если вы поймете путь, то поймете и то, как macOS в действительности видит ваши файлы. Как? Да как в матрешке – одна за другой. Например, вот путь к файлу под названием «Мои секреты», лежащему на Рабочем столе: /Users/Yablykworld/Desktop/My Secrets.
Пробелы
С пробелами действует простое правило – ничего лишнего!
Почему? Дело в том, что bash считает пробел концом команды!
Если у вас есть папка с пробелами в названии – например, Yablyk Folder, и вы пытаетесь вывести её содержимое с помощью команды ls /Applications/Yablyk Folder, то соответствующий файл не будет найден, и на выходе появится ошибка:
Чтобы решить эту проблему, понадобятся кавычки или обратный слэш. Вот теперь всё будет правильно:
Многим командам требуется доступ с уровня администратора. Если вы сейчас пользуетесь Mac не под аккаунтом его «админа», но знаете пароль, введите в командную строку перед текстом самой команды sudo – (что означает «single user do», «делает один пользователь»). Так вы временно получите привилегии администратора и возможность произвести необходимые операции без смены аккаунта.
Команды Терминала для улучшения продуктивности
Синтаксис find состоит из четырех частей:
2. путь к директории, в которой вы хотите искать информацию (например, /Applications);
3. опции (например, -name дает find возможность искать файлы, которые подходят к заданному названию);
4. непосредственно сам поисковый запрос (например, Google Chrome).
Вот как выглядит вся команда в целом:
Примечание: «звездочки» (*) указывают на то, что используется regex (регулярные выражения).
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 из папки Документы на Рабочий стол.
ls – невероятно мощная. команда для отображения того, что находится в ваших папках. Также она выдает информацию о том, кто имеет право видеть их, есть ли на вашем Mac скрытые файлы или папки, и многое другое.
Лучшие опции для ls:
-l – отображает права для каждого файла в папке, время последнего изменения, владельца файла и его (файла) название.
-a – показывает все файлы в папке, включая скрытые (отличный вариант для библиотеки пользователя, которая в macOS по умолчанию скрыта).
Вот как всё работает:
mkdir
Создает новые папки в мгновение ока.
Эта команда раз и навсегда удаляет абсолютно любой файл, который вы поместите в команду. Что, разумеется, требует повышенного внимания – в отличие от Корзины, rm не будет спрашивать «а Вы точно уверены?». Предполагается, что вы знаете, что делаете…
По умолчанию rm удаляет только файлы, папки остаются. Для того, чтобы сразу удалять и их, используйте опцию -R (рекурсивно).
Секреты Терминала. Часть 3: Права доступа

Сегодня мы кратко расскажем вам о системе прав доступа и о связанных с ней командах Терминала: chown, chmod, chgrp и sudo.
Итак, главная заповедь: каждый объект в Mac OS X обязательно имеет своего пользователя-владельца. Например, владельцем почти всего содержимого вашей папки пользователя будете вы. Владельцем системных файлов будет пользователь root, т.е. главный администратор компьютера. Даже если объект номинально никому не принадлежит, он всё равно числится за виртуальным пользователем nobody.
Сразу возникает вопрос — а почему это кроме вас, законного владельца компьютера, есть ещё какой-то главный администратор root? Всё это нужно как раз по соображениям безопасности, именно такое разграничение и есть главный залог безопасности Mac OS X.
Если бы обычный пользователь имел права администратора root, то любая вредоносная программа сразу могла бы получить полный доступ ко всей системе, могла бы самостоятельно запуститься и удалить всё, что угодно. Поэтому права root-админа даются рядовому пользователю лишь на короткие промежутки времени, и всегда это сопровождается появлением окошка ввода пароля. Это окошко, вылезающее на экран при установке программ или изменении важнейших настроек системы, означает, что у текущего пользователя не хватает полномочий, и ему нужно подтвердить факт обладания компьютером путём ввода пароля.

Чтобы узнать все группы, в которые вы входите, наберите в терминале команду:
groups
Запомните важнейшую команду, которой вам придётся часто пользоваться:
Она позволяет выполнить какое-либо действие от имени пользователя root. Её можно ввести перед какой-то другой командой, например:
Тогда права root будут переданы вам только для одной этой команды. Есть и другой вариант — приобрести права root-пользователя до закрытия окна Терминала. Для этого введите:
Никогда не выполняйте от имени root никакие команды, назначение которых вам неизвестно. Всегда тщательно проверяйте правильность введённых команд, потому что в таком режиме работы испортить можно всё, что угодно, а вернуть обратно — нет.
В любом случае, команда sudo потребует от вас ввода пароля:
Пароль всегда вводится вслепую, т.е. вы не увидите на экране никаких символов. По завершении ввода пароля нажмите Enter, и вы увидите, что левая часть строки изменится на:
Это означает, что вы вошли в Терминал как root-пользователь.
Обычно команда sudo будет нужна для изменения каких-то системных настроек или просто для доступа к тем файлам, которые вам не принадлежат.
Теперь мы переходим к главному: собственно правам доступа. Эти права бывают трёх видов:
Можно обладать одним, двумя или всеми тремя правами сразу.
Каждое право для одного и того же объекта задаётся в трёх форматах:
Права доступа обозначаются двумя способами: цифровым и буквенным.
Цифровой способ подразумевает написание трёхзначного числа: например, 775, 644, 444, 521, 700.
Первая цифра — это права для владельца.
Эти цифры суммируются, если несколько прав принадлежат пользователю одновременно:
Вторая цифра трёхзначного обозначения — права для группы владельца. Третья — права для всех остальных.
Теперь расшифруем приведённые выше примеры:
владелец и его группа имеют полный доступ (4+2+1=7)
все остальные пользователи могут читать и запускать файл (4+1=5)
владелец имеет право на чтение и запись (4+2=6)
все, кроме него, могут лишь прочитать файл (4)
абсолютно все пользователи могут только читать файл, но сделать с ним ещё что-то невозможно
владелец может читать и запускать файл (4+1=5)
группа владельца может редактировать файл (2)
все остальные имеют право лишь на запуск (1)
эксклюзивные полные права доступа есть только у владельца (4+2+1)
А теперь приведём конкретный пример. Допустим, у вас есть папка.
Буквенный способ всегда состоит из 10 символов и имеет следующий вид:
drwxrw-r-x
Первый символ показывает, с чем вы имеете дело:
Оставшиеся девять символов делятся на три группы по три знака. Первые три показывают права доступа владельца, вторые три — группы, третьи — всех остальных:
Если права нет, то на соответствующем месте ставится прочерк.
Есть ещё два специальных обозначения, обычно встречающиеся у папок:
Таким образом, приведённый выше пример означает то же самое, что и 765.
Вообще говоря, настоятельно рекомендуем выводить в терминал или в файл действия всех опасных команд, это здорово поможет при диагностике и исправлении ошибок, которые могли возникнуть, благо несколько табов в приложении помогут нам расположить вывод команд так, чтобы никто никому не мешал, а если выводить в файл — так вообще хорошо, ибо мы его посмотреть можем потом, когда закончим все нужные нам действия. Такая политика позволяет экономить время в будущем.
Теперь о том, как менять права доступа и владельцев файлов. Правом изменения прав доступа обладают владелец файла и пользователь root. Отсюда вывод — если у вас не получается поменять права, используйте команду sudo.
Для смены прав доступа используется команда
chmod
Она имеет следующий синтаксис:
chmod 755 /System/Library/Extensions
Через пробел указываются сами права и путь к файлу или папке.
У команды есть полезный параметр -R (именно заглавная R), который присваивает указанные права всем содержащимся внутри объекта файлам. То есть, чтобы выставить права 755 для всей папки Extensions из примера выше, нужно ввести:
Для смены группы владельца используется команда
chgrp
сделает вашу папку с музыкой принадлежащей группе администраторов.
Чтобы поменять самого владельца, нужна команда
chown
Её синтаксис такой:
chown (-R) владелец:группа путь
Владелец и его группа тоже могут указываться в текстовом формате, через двоеточие без пробела:
chown root:wheel /mach_kernel
или в цифровом формате. Обозначения групп см. выше, а вот обозначения пользователей:
Та же самая команда может выглядеть так:
Присваивает ядро системы пользователю root и группе wheel.
Права доступа у файлов в системе имеют свойство иногда неожиданно портиться. Обычно это вина криво сделанных установщиком программ. Какие последствия будет иметь невозможность доступа системы к важным файлам настроек, компонентов и расширений — объяснять не стоит. Поэтому запомните ещё две важные вещи:
Эти два факта помогут вам решить многие проблемы со странной или некорректной работой системы. Если это не поможет, запустите Дисковую утилиту из папки Программы/Служебные программы, выберите там раздел и нажмите кнопку Восстановить права доступа.

Запустить Дисковую утилиту можно и с установочного DVD Mac OS — через верхнее меню.
На сегодня информации достаточно. Следующая статья будет посвящена копированию, переименованию и удалению объектов.
Основы навигации
команда cd. Одна из основных команд, позволяющих осуществлять навигацию по различным директориям. Если, открыв терминал, вы сразу хотите оказаться в определенной директории, скажем, в Documents, достаточно набрать в терминале cd Documents.
команда, при помощи которой вы переходите в свою директорию. Для примера, если вы решаете перейти в каталог, где расположены ваши документы, то следующая команда будет выглядеть так: cd
ls выдает список имен файлов в указанной директории
mkdir создает новую директорию. Для примера: набрав команду : mkdir new, вы создадите новую директорию с названием new.
rmdir удалить директорию.
rm new.txt : команда удалит файл new.txt
Script done on Sat Feb 10 18:21:32 2007
файл будет сохранен с именем typescript в вашей домашней директории.
Копирование
Копирование файлов и папок, осуществляется при помощи команды cp. Допустим, вы хотите скопировать файл note.txt с рабочего стола в каталог Documents. В этом случае потребуется набрать в терминале cp note.txt
Необходимо учитывать, что если файл с таким же именем существует на новом месте, он будет удален и заменен скопированным файлом без предупреждений и возможности восстановления.
/Documents/new.txt. И в вашей папке появится файл new.txt, являющийся копией файла note.txt с рабочего стола.
Для того, чтобы скопировать нужный файл в исходный каталог, но уже с новым именем, достаточно будет набрать cp note.txt new.txt
ditto позволяет скопировать директорию, но с сохранением атрибутов скрытых файлов.
ditto Documents «Documents backup» копирует всю директорию под именем «Documents» и называет копию директории «Documents backup».
Поиск
Процессы
top выдает список основных задействованных процессов и постоянно обновляемую информацию о них. Нагрузка на процессор, размер задействованной памяти, время и пр.
Работа с текстом
Жесткий диск
diskutil выдает список всех возможных команд для операций с вашим жестким диском. От просто просмотра командой diskutil list до таких операций, как монтирование разделов, починка всем знакомых «пермишонов» или формата. Говоря проще, перед вами все опции (на самом деле их даже больше) уже знакомой вам Disk Utility с той разницей, что все действия вы выполняете через интерфейс командной строки. Вот пример лишь нескольких команд, предлагаемых вам diskutil
diskutil resizeVolume позволяет изменять размер выбранного раздела
diskutil partitionDisk позволяет совершать операции над диском и его отдельными разделами. Форматирование, выбор файловой системы и пр.
diskutil eraseDisk стирает информацию с вашего жесткого диска.
diskutil info / выводит информацию о загрузочном разделе вашего диска. Его имя, тип файловой системы, общий размер, количество общего и свободного пространства и пр.
diskutil info /Volumes/здесь имя раздела то же самое, но для любого другого, смонтированного, но незагрузочного раздела вашего жесткого диска.
sudo diskutil repairPermissions / еще одна команда для «починки пермишнов» на загрузочном диске с вашей MacOS X. При ее выполнении от вас потребуют ввести пароль администратора.
(Две последние команды выполняются исключительно из-под аккаунта администратора.)
Конечно, немногие пользователи используют возможности терминала в повседневной жизни. Кому-то это кажется древним и отжившим анахронизмом, кого-то отталкивает необходимость запоминать довольно большой список необходимых команд, в то время, когда большинство требуемых задач можно выполнить при помощи обычной мыши. Но, раз начав работать с терминалом, вы сами довольно быстро оцените возможности, которые он вам предоставляет.
Команда sudo mac os
Для начала откроем терминал: Cmd+Space набираем в поиске Spotlight «terminal» или «терминал» видим в найденном и запускаем его.
* Помним программа «Терминал» не отображает пароль во время ввода. В случае ввода неправильного или пустого пароля команда не выполняется, и программа «Терминал» предлагает повторить попытку.
Разрешить использование программ, загруженных из: любого источника
Включаем поддержку TRIM для SSD накопителей сторонних производителей
Как включить HiDPI режим в MacOS 10.x.x
* для использования расширенных возможностей установите утилиту SwitchResX.
Отключаем задвоение программ в контекстном меню «Открыть с помощью»(при правом клике мышью)
* актуально скорее для старых Mac OS.
Создаём пользователя и удаляем старого
Это полезно, если продаёте свой Mac, все программы останутся и будут работать.
Чистая система с установленным софтом! Просто настраиваем всё заново.
Включаем AirDrop для старых компьютеров Mac
Ускоряем Dock
Многие пользователи используют опцию «Автоматически показывать или скрывать Dock», наводя мышь на ту часть экрана в которой Dock размещён. По умолчанию Dock появляется с задержкой в 0,7 секунды. Это медленно? Тогда давайте изменим это.
* 0.5 это и есть время задержки в пол-секунды, если поставить 0 то и задержки не будет вовсе.
Скриншот окна без тени
Скриншоты окон в macOS по умолчанию делаются с красивой тенью вокруг них. Размещение таких скриншотов в статьях с белым фоном выглядит привлекательно. Но иногда они могут быть лишними, например для обычной пересылки.
Лечение сертификата (цифровой подписи) приложений исключённых Apple
В ночь с 10 на 11 июля 2019 года компания Apple выпустила внеочередной патч безопасности для macOS, который был автоматически установлен на устройства всех пользователей вне зависимости от их желания.
В патче безопасности был удален сертификат TNT (и других таких как The Shark), из-за чего пользователи столкнулись с сообщением об ошибке при запуске некоторых приложений.
* Приложение должно находиться на компьютере Mac (в папке «Программы» или на Рабочем столе). Не перетаскивайте приложение из образа. Это бесполезно.
Отключаем SWAP в Mac OS X
А надо ли отключать SWAP. Это спорный вопрос, и я не знаю надо ли это Вам, но у меня 96 Гб оперативной памяти и я бы не хотел думать даже секунду, что вдруг мой SSD, при таком объёме физической памяти, ещё и будет пилиться каким-то SWAP файлом.
Не уверены? Тогда сделайте Бекап операционной системы, перед тем как подавать команды, которые Вы видите ниже.
* Обратите внимание, что в дирктории /private/var/vm/ находиться и файл сна sleepimage и как правило его размер равен размеру оперативной памяти, в моём случае это 96 Гб, не удивительно что те кто пользуются Сном на Mac изнашивают быстрее SSD диск.
10 терминальных команд, которые должен знать каждый пользователь Мака
Терминал в OS X часто, во всяком случае на мой взгляд, остается упускаемой из виду частью операционной системы. Большинство новичков в Маке смотрят на него со страхом, так как одного вида всего, связанного с кодом или продвинутого, для них достаточно, чтобы отложить это подальше на всю жизнь. К счастью, вам не нужно бояться Терминала и думать о нем, как об инструменте только для технарей. Знание некоторых основных команд Терминала может по настоящему расширить ваш опыт работы в OS X. Итак, вниманию всех новичков, вот моя подборка 10 лучших команд Терминала, которые должен знать каждый пользователь Мака.
Прежде, чем мы начнем.

Также, прежде чем мы начнем погружаться в дебри, вероятно стоит потратить несколько минут, чтобы рассказать вам, что же такое этот Терминал (все в не техническом смысле, конечно!)


Мы не будем детально погружаться в то, как работает Терминал, но неплохо будет выучить следующие три команды, прежде чем мы начнем этот урок:
Подсказка: Будьте сверх осторожны при использовании команды sudo. Вам обычно потребуется ввести ваш системный пароль от OS X и любые ошибки могут навсегда испортить вашу систему. Если сомневаетесь в себе, лучше оставьте ее в покое!
1. Отключаем всплывающее окно акцента Льва / Горного Льва
Для людей вроде меня, которые употребляют в письме множество иностранных акцентов, очень полезна функция, когда при длительном удержании нажатой клавиши выскакивает окно акцента. Но для тех из вас, кому нужно печатать множество повторяющихся букв, это может быть довольно раздражающим. Используйте этот простой прием, чтобы отключить эту функцию:
Нажмите Return, затем выйдите из системы и войдите снова, чтобы увидеть изменения. Если вы захотите вернуть все как было, просто замените false на true в вышеуказанной команде.
2. Измените периоды резервного копирования по умолчанию в Машине Времени
По умолчанию Машина Времени делает бэкап каждый час, когда подключена, но это можно изменить через Терминал. Чтобы сделать это, просто введите следующую команду:
Эта команда заставит Машину времени делать бэкапы каждые 30 минут. Чтобы изменить это значение на то, которое вам нужно, просто замените 1800 своим интервалом времени в секундах (15 минут это 900 секунд, тогда введите 900). И не забывайте, что вы используете команду sudo, поэтому убедитесь, что вы напечатали команду без единой ошибки, прежде чем нажмете Enter (и вас также попросят ввести системный пароль).
3. Перетащите виджеты приборной панели Dashboard на рабочий стол
Я всегда забываю, что на моем Маке существует приборная панель Dashboard. На самом деле я практически никогда не вижу в ней необходимости. Но я думаю, что все в основном сводится к тому, что виджеты скрыты внутри операционной системы. Чтобы получить возможность перетаскивать ваши виджеты приборной панели Dashboard на ваш рабочий стол, введите следующую команду:
Вы должны выйти из системы и заново войти обратно, и чтобы перетащить виджет на ваш рабочий стол, кликните на нем и удерживайте кнопку нажатой, затем нажмите F12, это отцепит его от приборной панели и позволит вам уронить его на рабочий стол. Ваши виджеты теперь плавают над открытыми приложениями, аналогично Гаджетам в Windows 7.
Чтобы отключить эту возможность, просто замените YES на NO в команде, указанной выше. И снова, к сожалению, вам снова придется выйти из системы и войти обратно.
4. Отключите функцию автовосстановления Льва / Горного Льва
Убедитесь, что вы закрыли и перезапустили приложения, чтобы увидеть изменения и если вы хотите все вернуть обратно, просто замените false на true (Я уверен, что вы уже поднаторели в этом!)
5. Покажите скрытые файлы в Finder
По умолчанию Finder в OS X скрывает некоторые файлы от вашего взора (во основном самые несущественные), но если вы хотите видеть все на вашем компьютере, введите следующую команду:
И снова, замените false на true, чтобы спрятать их снова.
6. Смените формат файлов для скриншотов
Скриншоты с использованием встроенного сочетания клавиш в OS X очень удобны, но по умолчанию они сохраняются, как PNG файлы. Если вы хотите изменить это, введите следующую команду:
Замените file-extension аббревиатурой из трех букв вашего любимого формата файла, так, для формата JPEG просто введите JPG, а для формата Acrobat PDF, введите PDF. Терминал не обязан быть сложным, не так ли?
Затем перезапустите Dock, используя следующую команду:
Вуаля! Больше никакого Dashboard. Если вы впоследствии начнете горевать по старым добрым временам, замените YES на NO в верхней команде и повторите процесс.
8. Надежно стирайте свободное место
Когда вы удаляете файлы на вашем Маке, OS X оставляет фрагменты файла на свободном месте вашего жесткого диска, пока они не будут перезаписаны поверх новыми файлами. Если вы хотите надежно удалить все оставшиеся на жестком диске фрагменты (например, если вы собираетесь продать свой Мак), выполните следующую команду:
Замените /name-of-drive диском, который вы хотите стереть. Эта команда использует специальный алгоритм, чтобы стереть каждую свободную область 35 раз, это намного больше стандарта Министерства Обороны США, который требует всего 7 проходов. Однако имейте в виду, что этот процесс может занять дни на больших дисках.
Вдобавок замечу, что команда diskutil очень полезная и позволяет вам управлять томами и локальными дисками прямо из Терминала (приведен список примеров команд). При этом следует помнить, что большинство команд требуют доступа с правами root.
9. Управляйте вашим Маком удаленно
Возможность управлять вашим Маком удаленно через SSH или протокол Secure shell, намного более выгодна, чем функция общего экрана, так как использует меньше системных ресурсов и сетевого трафика. Первое, что вы должны сделать это включить удаленный вход в систему на вашем Маке, вы можете это сделать, отправившись в System Preferences, затем Sharing, затем кликните на Remote Login.


Должен загореться маленький зеленый сигнал рядом с IP адресом, который вы можете использовать, чтобы войти в систему через Терминал. Соединение между локальным Маком, за которым вы сидите и удаленным (т.е. вашим собственным), надежное и зашифрованное, это означает, что любые данные, передаваемые между ними, не могут быть перехвачены.
Замените username именем пользователя, которое вы хотите использовать, чтобы войти в OS X, а remote-address замените IP адресом, выданным вам в панели Sharing. Теперь вы можете управлять своим Маком и выполнять команды Терминала удаленно, это реальный плюс.
слова будут произнесены голосом вашего Мака, установленным по умолчанию, но если вы хотите изменить его, просто отправляйтесь в System Preferences, далее в Dictation and Speech (в Горном Льве) или просто Speech (во Льве). Здесь вы можете выбрать разные голоса и скачать новые с серверов Apple, если вы модный. Другая «полезная» функция это возможность это конвертировать целый текстовый файл в речь, если вы настолько фантазер. Просто введите:
Замените FILENAME.txt своим файлом. Это создаст прочтение вслух вашего файла в виде AIFF файла audio.aiff в папке Терминала по умолчанию.
Заключение
Я надеюсь, вы получили море удовольствия с командами, упомянутыми выше, пожалуйста, не стесняйтесь делиться своими собственными фаворитами в секции комментариев ниже для блага все читателей Mactuts+!
И не забудьте проверить приложения для Мака на Envato Market.





