- Ввод пароля по Touch ID
- Манипулирование снапшотами
- Изменить формат скриншота
- Изменить имя хоста
- Изменить размер сетки launchpad
- Управление разделами диска
- Вывод дат в определённом формате
- Homebrew
Несколько полезных фокусов, которые пригодятся любому маководу. Для создания магического эффекта настоящие волшебники используют консоль. В отличие от записи про unix здесь приводятся в основном специфичные для MacOS команды. Проверено на Catalina.
Ввод пароля по Touch ID
Если на вашем устройстве есть Touch ID и вы ленивы настолько, что не хотите вводить пароль в терминале руками — ваша мечта сбылась. Можно не печатать, а только дотронуться до заветной кнопки.
Откройте с правами root'а файл /etc/pam.d/sudo
и добавьте строку в самое начало:
# /etc/pam.d/sudo
# sudo: auth account password session
auth sufficient pam_tid.so # добавить эту строку
auth sufficient pam_smartcard.so
auth required pam_opendirectory.so
Манипулирование снапшотами
$ sudo tmutil disablelocal # отключить
$ sudo tmutil enablelocal # включить
$ sudo tmutil listlocalsnapshots / # просмотреть какие снапшоты есть
$ tmutil deletelocalsnapshots <snapshot-version> # удалить снапшот по номеру его версии
Сам снапшот выглядит так: com.apple.TimeMachine.2020-07-04-151555.local
. Номер версии в
этом примере 2020-07-04-151555
.
Изменить формат скриншота
По-умолчанию скриншоты в формате png
. Можно задать другой формат:
JPG, TIFF, GIF, PDF или снова тот же PNG.
Делается командой:
$ defaults write com.apple.screencapture type JPG
Изменить имя хоста
$ sudo scutil --set HostName jack
где jack
- выбранное имя.
Изменить размер сетки launchpad
Сетка по-умолчанию 5×7: 5 столбцов, 7 строк. Когда программ много и все их хочется видеть на одном экране, размер сетки можно уменьшить.
$ defaults write com.apple.dock springboard-rows -int 6
$ defaults write com.apple.dock springboard-columns -int 7
$ killall Dock
Теперь сетка содержит 7 столбцов и 6 строк.
Управление разделами диска
В MacOS для этого служит утилита diskutil
.
$ diskutil list # информация о всех разделах
$ diskutil list disk1 # информация о конкретном разделе
$ diskutil listFilesystems # какие есть поддерживаемые файловые системы
Часто используемые файловые системы:
- APFS, родная ФС операционной системы
- ExFAT, для внешних дисков
- FAT32, для флешек
Запись образа на диск.
$ diskutil unmountDisk /dev/disk2 # размонтировать диск
$ sudo dd if=image.iso of=/dev/disk2 bs=512 status=progress # записать образ
$ sudo dd if=/dev/disk1 of=backup-18-oct-2019.img.dd bs=1m # сделать бэкап
Форматирование дисков. Как правило, внешних.
Схемы:
Обозначение | Описание |
---|---|
GPT | GUID Partition Table |
APM | Apple Partition Map |
MBR | Master Boot Records |
Допустим, куплен новый внешний диск и надо разбить его на несколько разделов.
$ diskutil list /dev/disk2 # смотрим что есть
$ diskutil info /dev/disk2 # подробная информация
# разбивка: partitionDisk /dev/disk2 <схема> <ФС> <имя> <размер>
$ diskutil partitionDisk /dev/disk2 GPT ExFAT "SanDisk" 100%
# разбивка на два раздела: то же самое, но выбор ФС, имени и размера для обоих разделов
$ diskutil partitionDisk /dev/disk2 GPT ExFAT "Work" 250GB ExFAT "Backup" 250GB
Вывод дат в определённом формате
Кому как, а мне бывает нужно.
$ date '+%m-%d-%Y'
Таблица с примерами форматирования.
Символ | Описание |
---|---|
%a | Дата, короткая. Sun |
%A | Дата, полностью. Sunday |
%b | Месяц, короткий. Feb |
%B | Месяц, полностью. February |
%m | Номер месяца (01..12) |
%M | Минуты (00..59) |
%d | День месяца |
%D | Дата в формате %m/%d/%y |
%H | Час в 24-ча совом формате (00..23) |
%I | Час в 12-часовом формате (01..12) |
%S | Секунды |
%u | Номер дня недели |
%Y | Год |
%z или %Z | Номер временной зоны (например, -0400) |
Homebrew
Пакетный менеджер для MacOS. Увы, изначально в системе такой штуки нет.
Основные команды.
$ brew search vim # поиск пакета по имени
==> Formulae
avimetaedit macvim neovim vim
==> Casks
macvim
Если пакет указан в Casks
, значит у него есть графический интерфейс. Тогда установить
его надо через brew cask
.
# ставим и удаляем vim
$ brew install vim
$ brew uninstall vim
# список установленных пакетов
$ brew list
# rmtree - программа, которая удаляет пакеты вместе с их зависимостями
# ставить по желанию
$ brew info beeftornado/rmtree
$ brew tap beeftornado/rmtree
$ brew rmtree <package>
# почистить хвосты после удаления пакета
$ clean /usr/local/Cellar # для Cask
$ brew cleanup -s
# установка актуальных gnu-утилит
$ brew install coreutils findutils gnu-tar gnu-sed gawk gnutls gnu-indent gnu-getopt
# установка yarn, которая не тащит за собой собственную версию node
$ brew install yarn --ignore-dependencies
$ brew update # обновление формул и пакетов
$ brew upgrade # обновление версии brew
$ brew doctor # рекомендуется после update, удаляет/перемещает симлинки и делает прочие добрые вещи
Управление сервисами, такими как nginx или mongo.
$ brew services list # список имеющихся сервисов
$ brew service start nginx # запуск
$ brew service restart nginx # перезапуск
$ brew service stop nginx # остановка
Может быть, этот список будет пополняться. Но пока всё.