Общие команды

Составленный список команд оболочки и инструментов, специфичных для macOS.

“Вам не нужно знать все. Вам просто нужно знать, где найти это, когда это необходимо.” (Джон Браннер)

Awesome

Личная заметка

Не вся информация, представленная в этом списке, всегда актуальна для последних версий операционных систем. Apple действительно поддерживает устройства в продолжительный период времени, но их покупка также обходится дорого. В настоящее время у меня нет возможности заменить свой ноутбук MacBook Pro Mid-2014 15", и он не поддерживает версию Monterey и выше. С одной стороны, факт того, что этот аппарат до сих пор работает в основном безупречно, свидетельствует о качестве его аппаратной и сборочной составляющей. С другой стороны, тот факт, что моя старая версия ОС скоро перестанет получать обновления безопасности и исправления ошибок, вызывает некоторую тревогу. И это непосредственно влияет на мою способность предоставлять своевременные обновления.

Так что, возможно, кто-то из Apple прочитает это и сможет что-то сделать с этой ситуацией.

Кроме того, глядя на почти 26 тысяч звездочек на GitHub для этого репозитория, если только около 14% людей, для которых эти ресурсы полезны, поддержат меня одноразовым взносом в размере одного евро, я смогу приобрести новое устройство, которое, возможно, прослужит еще восемь лет. Это не то, на что я ожидаю или думаю, что мне полагается. Это полностью моя проблема. Все равно, стоит об этом подумать.

Кроме того, в настоящее время у меня нет работы, у меня мало перспектив, мало денег, и я прохожу через тяжелое время. Чтобы помочь мне, самый легкий способ - спонсировать меня через GitHub, как регулярно, так и разово. Каждая маленькая помощь важна. Благодарю за ваше рассмотрение.

https://github.com/herrbischoff

Вклад

Вы всегда можете присылать мне патчи с изменениями и дополнениями по электронной почте. Если вы не знакомы с процессом работы git am, вы можете найти простое введение в него здесь: https://git-send-email.io

Предисловие

Здесь действительно есть только одна вещь, которую я хотел бы отметить: man pages. Man pages. Man pages. Хорошо, три вещи. Но одна из них кажется настолько важной, что я должен упомянуть её несколько раз. Если вы ещё этого не делаете, стоит привыкнуть консультироваться с страницами справки (man pages) перед тем, как искать информацию где-либо ещё. Страницы справки в стиле Unix - отличный источник документации. Даже для команды man есть своя страница справки:

man man

Это также объясняет, на что указывают числа в страницах руководства, например, как man(1).

Внешний вид

Стиль диалогового окна оповещения

Переключить на классическое горизонтальное расположение

# Разрешено
defaults write -g NSAlertMetricsGatheringEnabled -bool false

# Запрещено (По умолчанию)
defaults delete -g NSAlertMetricsGatheringEnabled

Темный режим

Исключить приложение из темного режиму

Это полезно для старых приложений, которые работают нормально, но не были обновлены для правильной работы в темном режиме. Замените имя приложения Notes на фактическое приложение, которое вы хотите настроить.

# Разрешено
defaults write $(osascript -e 'id of app "Notes"') NSRequiresAquaSystemAppearance -bool true

# Запрещено (По умолчанию)
defaults delete $(osascript -e 'id of app "Notes"') NSRequiresAquaSystemAppearance

Прокси-иконка

Всегда показывать иконки прокси-окон

В macOS 11 (Big Sur) прокси-иконка документа была скрыта по умолчанию. Это восстанавливает прежнее всегда видимое состояние.

# Разрешено
defaults write -g NSToolbarTitleViewRolloverDelay -float 0

# Запрещено (По умолчанию)
defaults delete -g NSToolbarTitleViewRolloverDelay

Также, вы можете установить флаг доступности.

# Разрешено
defaults write com.apple.universalaccess showWindowTitlebarIcons -bool true

# Запрещено (По умолчанию)
defaults write com.apple.universalaccess showWindowTitlebarIcons -bool true

Субпиксельное сглаживание (сглаживание шрифтов)

Настройка присутствует с версии macOS 10.14 (Mojave).

# Разрешено
defaults write -g CGFontRenderingFontSmoothingDisabled -bool false

# Запрещено (По умолчанию)
defaults write -g CGFontRenderingFontSmoothingDisabled -bool true

# Для конкретного приложения
defaults write com.apple.textedit CGFontRenderingFontSmoothingDisabled -bool false

# Запретить для конкретного приложения
defaults delete com.apple.textedit CGFontRenderingFontSmoothingDisabled

Прозрачность

Прозрачность в меню и окнах

# Уменьшить прозрачность
defaults write com.apple.universalaccess reduceTransparency -bool true

# Восстановить прозрачность по умолчанию
defaults write com.apple.universalaccess reduceTransparency -bool false

Обои

Установить обои

# До версии OS X 10.8 (Mountain Lion)
osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/path/to/picture.jpg"'

# Начиная с OS X 10.9 (Mavericks)
sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '/path/to/picture.jpg'" && killall Dock

Приложения

App Store

Список всех приложений, загруженных из App Store

# Через find
find /Applications -path '*Contents/_MASReceipt/receipt' -maxdepth 4 -print |\sed 's#.app/Contents/_MASReceipt/receipt#.app#g; s#/Applications/##'

# Через Spotlight
mdfind kMDItemAppStoreHasReceipt=1

Показать меню отладки

Работает до ОС X 10.10 (Yosemite).

# Разрешено
defaults write com.apple.appstore ShowDebugMenu -bool true

# Запрещено (По умолчанию)
defaults write com.apple.appstore ShowDebugMenu -bool false

Apple Remote Desktop

Страницы руководства Kickstart

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -help

Активация и деактивация агента ARD и помощника ARD

# Активация и перезапуск агента ARD и помощника ARD
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -restart -agent -console

# Отключение и остановка службы удаленного управления.
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -stop

Remote Desktop Sharing

# Разрешить доступ для всех пользователей и предоставить всем пользователям полный доступ
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -configure -allowAccessFor -allUsers -privs -all

# Запрещение ARD Agent и удаление прав доступа для всех пользователей. (По умолчанию)
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -deactivate -configure -access -off

Удаление настроек Apple Remote Desktop

sudo rm -rf /var/db/RemoteManagement ; \
sudo defaults delete /Library/Preferences/com.apple.RemoteDesktop.plist ; \
defaults delete ~/Library/Preferences/com.apple.RemoteDesktop.plist ; \
sudo rm -r /Library/Application\ Support/Apple/Remote\ Desktop/ ; \
rm -r ~/Library/Application\ Support/Remote\ Desktop/ ; \
rm -r ~/Library/Containers/com.apple.RemoteDesktop

Контакты

Режим отладки

# Разрешено
defaults write com.apple.addressbook ABShowDebugMenu -bool true

# Запрещено (По умолчанию)
defaults write com.apple.addressbook ABShowDebugMenu -bool false

Google

Uninstall Google Update

~/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Resources/ksinstall --nuke

iTunes

Мультимедийные клавиши клавиатуры

Работает до версии OS X 10.10 (Yosemite). Версия OS X 10.11 (El Capitan) ввела Защиту системной целостности (System Integrity Protection), которая предотвращает выгрузку системных агентов запуска.

# Прекратить реагирование на нажатия мультимедийных клавиш
launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist

# Реагировать на нажатия мультимедийных клавиш (по умолчанию)
launchctl load -w /System/Library/LaunchAgents/com.apple.rcd.plist

Начиная с OS X 10.11 (El Capitan), вы можете либо отключить SIP, либо воспользоваться своеобразным хаком, который сделает iTunes недоступным для любого пользователя, эффективно предотвращая его запуск или запуск его помощников. Обратите внимание, что на практике это повредит вашу установку iTunes и может конфликтовать с обновлениями операционной системы в будущем.

sudo chmod 0000 /Applications/iTunes.app

Mail

Show Attachments as Icons

defaults write com.apple.mail DisableInlineAttachmentViewing -bool true

Вакуумирование индекса почты

Приведенный ниже код AppleScript закроет приложение “Почта”, выполнит вакуумирование индекса SQLite, а затем снова откроет “Почту”. На большой базе данных электронной почты, которая давно не оптимизировалась, это может значительно улучшить отзывчивость и скорость работы.

(*
Ускорьте работу Mail.app, выполнив вакуумирование Envelope Index
Код взят с сайта: http://web.archive.org/web/20071008123746/http://www.hawkwings.net/2007/03/03/scripts-to-automate-the-mailapp-envelope-speed-trick/
Первоначально создан "pmbuko" с модификациями от Romulo
Обновлен Brett Terpstra 2012
Обновлен Mathias Törnblom 2015 для поддержки V3 в El Capitan и сохранения обратной совместимости
Обновлен Andrei Miclaus 2017 для поддержки V4 в Sierra
*)

tell application "Mail" to quit
set os_version to do shell script "sw_vers -productVersion"
set mail_version to "V2"
considering numeric strings
    if "10.10" <= os_version then set mail_version to "V3"
    if "10.12" <= os_version then set mail_version to "V4"
    if "10.13" <= os_version then set mail_version to "V5"
    if "10.14" <= os_version then set mail_version to "V6"
    if "10.15" <= os_version then set mail_version to "V7"
    if "11" <= os_version then set mail_version to "V8"
end considering

set sizeBefore to do shell script "ls -lnah ~/Library/Mail/" & mail_version & "/MailData | grep -E 'Envelope Index$' | awk {'print $5'}"
do shell script "/usr/bin/sqlite3 ~/Library/Mail/" & mail_version & "/MailData/Envelope\\ Index vacuum"

set sizeAfter to do shell script "ls -lnah ~/Library/Mail/" & mail_version & "/MailData | grep -E 'Envelope Index$' | awk {'print $5'}"

display dialog ("Mail index before: " & sizeBefore & return & "Mail index after: " & sizeAfter & return & return & "Enjoy the new speed!")

tell application "Mail" to activate

Так как вышеуказанный AppleScript в основном все равно использует команды оболочки, вот версия того же функционала в виде скрипта оболочки. Он может использоваться с Big Sur и более новыми версиями. Вы можете прислать патч для более новых систем. У меня в настоящее время нет денег на машину, способную работать под macOS 12+.

#!/bin/zsh

#
# Ускорьте работу Mail.app, выполнив вакуумирование индекса конвертов
# Написано Марселем Бисхоффом
# Оригинальный AppleScript от "pmbuko" с модификациями от Ромуло
#

OS_VERSION=$(sw_vers -productVersion | cut -d. -f 1,2)
MAIL_RUNNING=$(ps aux | grep -v grep | grep -c "Mail\$")
MAIL_VERSION="V2"

if [ $MAIL_RUNNING -gt 0 ]; then osascript -e 'tell application "Mail" to quit'; fi

if [ 1 -eq "$(echo "11 <= ${OS_VERSION}" | bc)" ]; then MAIL_VERSION="V8"; fi

SIZE_BEFORE=$(ls -lnah ~/Library/Mail/${MAIL_VERSION}/MailData | grep -E 'Envelope Index$' | awk {'print $5'})
/usr/bin/sqlite3 ~/Library/Mail/${MAIL_VERSION}/MailData/Envelope\ Index vacuum
SIZE_AFTER=$(ls -lnah ~/Library/Mail/${MAIL_VERSION}/MailData | grep -E 'Envelope Index$' | awk {'print $5'})

printf "Mail index before: %s\nMail index after: %s\n" $SIZE_BEFORE $SIZE_AFTER

Safari

Изменение шрифтов по умолчанию

defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2StandardFontFamily Georgia
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFontSize 16
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2FixedFontFamily Menlo
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultFixedFontSize 14

Develop Menu и Web Inspector

# Разрешено
defaults write com.apple.Safari IncludeInternalDebugMenu -bool true && \
defaults write com.apple.Safari IncludeDevelopMenu -bool true && \
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true && \
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true && \
defaults write -g WebKitDeveloperExtras -bool true

# Запрещено (По умолчанию)
defaults delete com.apple.Safari IncludeInternalDebugMenu && \
defaults delete com.apple.Safari IncludeDevelopMenu && \
defaults delete com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey && \
defaults delete com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled && \
defaults delete -g WebKitDeveloperExtras

Получить данные текущей страницы

Другие варианты: get source, get text.

osascript -e 'tell application "Safari" to get URL of current tab of front window'

Использование клавиши Backspace/Delete, чтобы вернуться на предыдущую страницу

# Разрешено
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool true

# Запрещено (По умолчанию)
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool false

Sketch

Экспорт компактных SVG файлов

defaults write com.bohemiancoding.sketch3 exportCompactSVG -bool true

Skim

Turn Off Auto Reload Dialog

Убирает диалоговое окно и устанавливает автоматическую перезагрузку по умолчанию.

defaults write -app Skim SKAutoReloadFileUpdate -boolean true

Терминал

Фокус следует за мышью

# Разрешено
defaults write com.apple.Terminal FocusFollowsMouse -string true

# Запрещено (По умолчанию)
defaults write com.apple.Terminal FocusFollowsMouse -string false

TextEdit

Создать безымянный документ при запуске

defaults write com.apple.TextEdit NSShowAppCentricOpenPanelInsteadOfUntitledFile -bool false

Использовать режим обычного текста по умолчанию

defaults write com.apple.TextEdit RichText -int 0

Visual Studio Code

VSCodeVim Key Repeat

# Разрешено
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

# Запрещено (По умолчанию)
defaults delete com.microsoft.VSCode ApplePressAndHoldEnabled

Субпиксельное сглаживание

Настройка, присутствующая с версии macOS 10.14 (Mojave). См. также системную настройку: Субпиксельное сглаживание

# Разрешено
defaults write com.microsoft.VSCode CGFontRenderingFontSmoothingDisabled -bool false && \
defaults write com.microsoft.VSCode.helper CGFontRenderingFontSmoothingDisabled -bool false && \
defaults write com.microsoft.VSCode.helper.EH CGFontRenderingFontSmoothingDisabled -bool false && \
defaults write com.microsoft.VSCode.helper.NP CGFontRenderingFontSmoothingDisabled -bool false

# Запрещено (По умолчанию)
defaults delete com.microsoft.VSCode CGFontRenderingFontSmoothingDisabled && \
defaults delete com.microsoft.VSCode.helper CGFontRenderingFontSmoothingDisabled && \
defaults delete com.microsoft.VSCode.helper.EH CGFontRenderingFontSmoothingDisabled && \
defaults delete com.microsoft.VSCode.helper.NP CGFontRenderingFontSmoothingDisabled

Резервное копирование

Time Machine

Активация

# Разрешено
sudo tmutil enable

# Запрещено
sudo tmutil disable

# Начать резервное копирование немедленно
tmutil startbackup

# Остановить резервное копирование немедленно
tmutil stopbackup

Изменение интервала резервного копирования

Это изменяет интервал на 30 минут. Целочисленное значение представляет время в секундах.

sudo defaults write /System/Library/LaunchDaemons/com.apple.backupd-auto StartInterval -int 1800

Исключение файлов

sudo tmutil addexclusion /path/to/file/or/folder

Локальное резервное копирование

Создает ли Time Machine локальные резервные копии, когда том резервных копий Time Machine недоступен.

# Статус
defaults read /Library/Preferences/com.apple.TimeMachine MobileBackups

# Разрешено (По умолчанию)
sudo tmutil enablelocal

# Запрещено
sudo tmutil disablelocal

Начиная с macOS 10.13 (High Sierra), вы не можете отключить локальные снимки. Теперь Time Machine всегда создает локальный снимок APFS и использует этот снимок в качестве источника данных для создания обычной резервной копии, вместо использования живого диска в качестве источника, как это происходит с дисками в формате HFS.

Управление резервными томами

# Информация
tmutil destinationinfo

# Удалить текущий пункт назначения
tmutil removedestination

# Установить физический диск в качестве пункта назначения
tmutil setdestination /path/to/volume/or/volume/name

# Установить сетевой пункт назначения
tmutil setdestination -p smb://10.20.30.40/share

Предотвращение запроса Time Machine о использовании новых жестких дисков в качестве тома резервного копирования

sudo defaults write /Library/Preferences/com.apple.TimeMachine DoNotOfferNewDisksForBackup -bool true

Показать журналы Time Machine

Этот небольшой скрипт выведет последние 12 часов активности Time Machine, за которыми последует текущая активность.

#!/bin/sh

filter='processImagePath contains "backupd" and subsystem beginswith "com.apple.TimeMachine"'

# show the last 12 hours
start="$(date -j -v-12H +'%Y-%m-%d %H:%M:%S')"

echo ""
echo "[History (from $start)]"
echo ""

log show --style syslog --info --start "$start" --predicate "$filter"

echo ""
echo "[Following]"
echo ""

log stream --style syslog --info --predicate "$filter"

Переключить резервное копирование при работе от аккумулятора

# Статус
sudo defaults read /Library/Preferences/com.apple.TimeMachine RequiresACPower

# Разрешено (По умолчанию)
sudo defaults write /Library/Preferences/com.apple.TimeMachine RequiresACPower -bool true

# Запрещено
sudo defaults write /Library/Preferences/com.apple.TimeMachine RequiresACPower -bool false

Статистика использования Time Machine

# Список всех резервных копий
tmutil listbackups

# Показать различия
tmutil calculatedrift /path/to/backup/folder/plus/machine/name/folder

Проверка резервной копии

С версии OS X 10.11 Time Machine записывает контрольные суммы файлов, скопированных в снимки. Контрольные суммы не вычисляются в обратном порядке для файлов, скопированных ранее версиями OS X.

sudo tmutil verifychecksums /path/to/backup

Разработка

Xcode

Установка инструментов командной строки без Xcode

xcode-select --install

Удаление всех недоступных симуляторов

xcrun simctl delete unavailable

Панель задач

Добавить стек с последними приложениями

Устарело с macOS 10.14 (Mojave). См. Показать последние приложения.

defaults write com.apple.dock persistent-others -array-add '{ "tile-data" = { "list-type" = 1; }; "tile-type" = "recents-tile"; }' && \
killall Dock

Добавить пустой стек без имени и небольшой отступ

defaults write com.apple.dock persistent-others -array-add '{ "tile-data" = {}; "tile-type"="small-spacer-tile"; }' && \
killall Dock

Добавить разделитель

defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="spacer-tile";}' && \
killall Dock

Добавить маленький разделитель

defaults write com.apple.dock persistent-apps -array-add '{"tile-type"="small-spacer-tile";}' && \
killall Dock

Автоматическое переупорядочивание пространств на основе последнего использования

# Разрешено (по умолчанию)
defaults write com.apple.dock mru-spaces -bool true && \
killall Dock

# Запрещено
defaults write com.apple.dock mru-spaces -bool false && \
killall Dock

Автоматическое скрытие

# Разрешено
defaults write com.apple.dock autohide -bool true && \
killall Dock

# Запрещено (по умолчанию)
defaults write com.apple.dock autohide -bool false && \
killall Dock

Дергание значков

Глобальная настройка, указывающая, должны ли значки на панели задач дергаться, когда соответствующее приложение требует вашего внимания.

# Разрешено (по умолчанию)
defaults write com.apple.dock no-bouncing -bool true && \
killall Dock

# Запрещено
defaults write com.apple.dock no-bouncing -bool false && \
killall Dock

Фиксация размера панели задач

# Разрешено
defaults write com.apple.Dock size-immutable -bool true && \
killall Dock

# Запрещено (по умолчанию)
defaults write com.apple.Dock size-immutable -bool false && \
killall Dock

Сброс панели задач

defaults delete com.apple.dock && \
killall Dock

Изменение размера

Полностью измените размер панели задач. Чтобы изменить размер, замените значение 0 на целое число.

defaults write com.apple.dock tilesize -int 0 && \
killall Dock

Жесты прокрутки

Используйте свой сенсорный пад или колесо мыши для взаимодействия с элементами на панели задач. Это позволяет использовать жест прокрутки вверх для открытия стеков. Тот же жест на работающие приложения вызывает Exposé/Mission Control.

# Разрешено
defaults write com.apple.dock scroll-to-open -bool true && \
killall Dock

# Запрещено (по умолчанию)
defaults write com.apple.dock scroll-to-open -bool false && \
killall Dock

Настройка задержки автоматического показа/скрытия

Десятичное число задает задержку показа/скрытия в мс.

# Настройка на показ реакции на малейший толчок
defaults write com.apple.dock autohide-time-modifier -float 0.4 && \
defaults write com.apple.dock autohide-delay -float 0 && \
killall Dock

# Восстановление по умолчанию
defaults delete com.apple.dock autohide-time-modifier && \
defaults delete com.apple.dock autohide-delay && \
killall Dock

Показать скрытые значки приложений

# Разрешено
defaults write com.apple.dock showhidden -bool true && \
killall Dock

# Запрещено (по умолчанию)
defaults write com.apple.dock showhidden -bool false && \
killall Dock

Показать только активные приложения

# Разрешено
defaults write com.apple.dock static-only -bool true && \
killall Dock

# Запрещено (по

 умолчанию)
defaults write com.apple.dock static-only -bool false && \
killall Dock

Показать последние приложения

Настройка присутствует с macOS 10.14 (Mojave).

# Запрещено
defaults write com.apple.dock show-recents -bool false  && \
killall Dock

# Разрешено (по умолчанию)
defaults write com.apple.dock show-recents -bool true && \
killall Dock

Режим одного приложения

При щелчке по значку приложения на панели задач соответствующие окна будут переведены на передний план, но все окна других приложений будут скрыты.

# Разрешено
defaults write com.apple.dock single-app -bool true && \
killall Dock

# Запрещено (по умолчанию)
defaults write com.apple.dock single-app -bool false && \
killall Dock

Документы

Преобразовать файл в HTML

Поддерживаются форматы: обычный текст, формат RTF (rich text) и Microsoft Word (doc/docx).

textutil -convert html file.ext

Файлы, диски и тома

Создать пустой файл

Создает пустой тестовый файл объемом 10 гигабайт.

mkfile 10g /path/to/file

Отключить датчик резкого движения

Оставлять это включенным бессмысленно, когда вы используете SSD-накопители.

sudo pmset -a sms 0

Извлечь все подключаемые тома

Единственный надежный способ сделать это - отправить команду AppleScript в Finder.

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'

Восстановление разрешений на файлы

Для этого не обязательно использовать графический интерфейс Дисковой Утилиты.

sudo diskutil repairPermissions /

Начиная с OS X 10.11 (El Capitan), разрешения на системные файлы автоматически защищены. Больше не требуется проверять или восстанавливать разрешения с помощью Дисковой Утилиты. (Источник)

Установка загрузочного тома

# До OS X 10.10 (Yosemite)
bless --mount "/path/to/mounted/volume" --setBoot

# Начиная с OS X 10.11 (El Capitan)
sudo systemsetup -setstartupdisk /System/Library/CoreServices

Показать все подключенные диски и разделы

diskutil list

Просмотр использования файловой системы

Непрерывный поток информации о доступе к файловой системе.

sudo fs_usage

APFS

Присутствует с macOS 10.13 (High Sierra). Нет центральной утилиты, и использование несогласовано, так как большая часть функциональности включена в tmutil.

Преобразование тома из HFS+ в APFS

/System/Library/Filesystems/apfs.fs/Contents/Resources/hfs_convert /путь/к/файловой/системе

Создание новой файловой системы APFS

/System/Library/Filesystems/apfs.fs/Contents/Resources/newfs_apfs /путь/к/устройству

Создание снимка

tmutil localsnapshot

Удаление снимка

tmutil deletelocalsnapshots com.apple.TimeMachine.2018-01-26-044042

Список снимков

tmutil listlocalsnapshots /

Монтирование снимка

Снимки доступны только для чтения.

mkdir ~/mnt
/System/Library/Filesystems/apfs.fs/Contents/Resources/mount_apfs -s com.apple.TimeMachine.2018-01-26-044042 / ~/mnt

Образы дисков

Создание образа диска из содержимого папки

hdiutil create -volname "Имя тома" -srcfolder /путь/к/папке -ov diskimage.dmg

Если вы хотите зашифровать образ диска:

hdiutil create -encryption -stdinpass -volname "Имя тома" -srcfolder /путь/к/папке -ov encrypted.dmg

По умолчанию вы будете приглашены ввести пароль. Вы можете автоматизировать это, передавая пароль в поток:

echo -n YourPassword | hdiutil create -encryption -stdinpass -volname "Имя тома" -srcfolder /путь/к/папке -ov encrypted.dmg

Запись образов дисков на DVD

Эта команда применяется к образам .iso, .img и .dmg.

hdiutil burn /путь/к/файлу_образа

Создание временного диска высокой производительности

Диск поддерживается физической оперативной памятью и будет работать в несколько раз быстрее, чем SSD. Содержимое диска не может быть восстановлено после его извлечения. Пример ниже для 500 MiB оперативного диска, настройте по необходимости.

# Для macOS 10.14 (Mojave)
let DISKSIZE=500*2048 && \
diskutil erasevolume HFS+ "RAM Disk" `hdiutil attach -nomount ram://$DISKSIZE`

# Для macOS 10.15 (Catalina) и выше
let "DISKSIZE = 500*2048" && \
diskutil erasevolume HFS+ "RAM Disk" `hdiutil attach -nomount ram://$DISKSIZE`

Отключение проверки образов дисков

defaults write com.apple.frameworks.diskimages skip-verify -bool true && \
defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true && \
defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true

Создание загрузочного раздела OS X

bless --folder "/путь/к/подключенному/тому/System/Library/CoreServices" --bootinfo --bootefi

Монтирование образа диска

hdiutil attach /путь/к/образу_диска.dmg

Отключение образа диска

hdiutil detach /dev/disk2s1

Запись образа диска на том

Аналог функции “Восстановить” в Утилите диска.

sudo asr -restore -noverify -

source /путь/к/образу_диска.dmg -target /Volumes/ТомДляВосстановления

Проводник (Finder)

Рабочий стол (Desktop)

Показывать внешние носители

Внешние жесткие диски, флеш-накопители и т. д.

# Разрешено
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true && \
killall Finder

# Запрещено (по умолчанию)
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false && \
killall Finder

Показывать внутренние носители

Встроенные жесткие диски или твердотельные накопители.

# Разрешено
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true && \
killall Finder

# Запрещено (по умолчанию)
defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false && \
killall Finder

Показывать съемные носители

CD, DVD, iPod и т. д.

# Разрешено
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true && \
killall Finder

# Запрещено (по умолчанию)
defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false && \
killall Finder

Показывать сетевые тома

AFP, SMB, NFS, WebDAV и т. д.

# Разрешено
defaults write com.apple.finder ShowMountedServersOnDesktop -bool true && \
killall Finder

# Запрещено (по умолчанию)
defaults write com.apple.finder ShowMountedServersOnDesktop -bool false && \
killall Finder

Файлы и Папки

Очистить все ACL

sudo chmod -RN /путь/к/папке

Увеличить количество недавних мест

defaults write -g NSNavRecentPlacesLimit -int 10 && \
killall Finder

Показывать все расширения файлов

defaults write -g AppleShowAllExtensions -bool true

Установить флаг защиты

Это эквивалентно статусу “Заблокировано” в Finder.

# Запрещено (по умолчанию)
sudo chflags -R nouchg /путь/к/файлу/или/папке

# Разрешено
sudo chflags -R uchg /путь/к/файлу/или/папке

Показывать скрытые файлы

# Показать все
defaults write com.apple.finder AppleShowAllFiles true

# Восстановить видимость файлов по умолчанию
defaults write com.apple.finder AppleShowAllFiles false

Показывать полный путь в заголовке Finder

defaults write com.apple.finder _FXShowPosixPathInTitle -bool true

Переключение видимости папки в Finder

По умолчанию папка ~/Library скрыта. Вы можете легко снова показать ее. Тот же метод работает с другими папками.

# Скрыто (по умолчанию)
chflags hidden ~/Library

# Видимо
chflags nohidden ~/Library

Оформление

Показать пункт меню “Завершить Finder”

Делает возможным отображение пункта меню “Завершить Finder” с использованием стандартной комбинации клавиш Cmd + Q

# Разрешено
defaults write com.apple.finder QuitMenuItem -bool true && \
killall Finder

# Запрещено (по умолчанию)
defaults write com.apple.finder QuitMenuItem -bool false && \
killall Finder

Плавная прокрутка

Полезно, если вы используете старый компьютер, который нарушает анимацию.

# Запрещено
defaults write -g NSScrollAnimationEnabled -bool false

# Разрешено (по умолчанию)
defaults write -g NSScrollAnimationEnabled -bool true

Пружинная прокрутка

# Запрещено
defaults write -g NSScrollViewRubberbanding -bool false

# Разрешено (по умолчанию)
defaults write -g NSScrollViewRubberbanding -bool true

Расширение панели сохранения по умолчанию

defaults write -g NSNavPanelExpandedStateForSaveMode -bool true && \
defaults write -g NSNavPanelExpandedStateForSaveMode2 -bool true

Видимость значков на рабочем столе

# Скрыть значки
defaults write com.apple.finder CreateDesktop -bool false && \
killall Finder

# Показать значки (по умолчанию)
defaults write com.apple.finder CreateDesktop -bool true && \
killall Finder

Панель пути

# Показать
defaults write com.apple.finder ShowPathbar -bool true

# Скрыть (по умолчанию)
defaults write com.apple.finder ShowPathbar -bool false

Видимость полосы прокрутки

Возможные значения: WhenScrolling, Automatic и Always.

defaults write -g AppleShowScrollBars -string "Always"

Панель состояния

# Показать
defaults write com.apple.finder ShowStatusBar -bool true

# Скрыть (по умолчанию)
defaults write com.apple.finder ShowStatusBar -bool false

Сохранение по умолчанию на диск

Устанавливает локальный диск в качестве целевой папки сохранения по умолчанию, а не iCloud.

defaults write -g NSDocumentSaveNewDocumentsToCloud -bool false

Установить текущую папку в качестве области поиска по умолчанию

defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"

Установить домашнюю папку в качестве места открытия нового окна Finder

defaults write com.apple.finder NewWindowTarget -string "PfLo" && \
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}"

Установить размер значков на боковой панели

Устанавливает размер ‘medium’.

defaults write -g NSTableViewDefaultSizeMode -int 2

Файлы метаданных

Запрещено создание файлов метаданных на сетевых томах

Избегает создания файлов .DS_Store и AppleDouble.

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Запрещено создание файлов метаданных на USB-накопителях

Избегает создания файлов .DS_Store и AppleDouble.

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

Открытие объектов

Изменение рабочего каталога на путь Finder

Если открыто несколько окон, выбирается верхнее.

cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"

Открыть URL

open https://herrbischoff.com

Открыть файл

open README.md

Открыть приложения

Вы можете открывать приложения с использованием -a.

open -a "Google Chrome" https://herrbischoff.com

Открыть папку

open /путь/к/папке/

Открыть текущую папку

open .

Шрифты

Очистить кеш шрифтов для текущего пользователя

Для очистки кеша шрифтов для всех пользователей, добавьте sudo перед этими командами.

atsutil databases -removeUser && \
atsutil server -shutdown && \
atsutil server -ping

Получить шрифты SF Mono

Начиная с macOS 10.15 (Catalina), приложения Utilities (включая Terminal.app) теперь находятся в папке /System.

cp -v /Applications/Xcode-beta.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/Fonts/SFMono-* ~/Library/Fonts

С macOS 10.12 (Sierra) они включены в Terminal.app.

cp -v /Applications/Utilities/Terminal.app/Contents/Resources/Fonts/SFMono-* ~/Library/Fonts

В более старых версиях ОС вам нужно скачать и установить Xcode 8 beta для этой операции. После этого они должны быть доступны во всех приложениях.

cp -v /System/Applications/Utilities/Terminal.app/Contents/Resources/Fonts/SFMono-* ~/Library/Fonts

Функции

Пожалуйста, см. этот файл.

Аппаратное обеспечение

Bluetooth

До macOS 10.12 (Sierra) демон Bluetooth называется blued, а не bluetoothd. Вам необходимо соответствующим образом настроить команду killall.

# Статус
defaults read /Library/Preferences/com.apple.Bluetooth ControllerPowerState

# Разрешено (по умолчанию)
sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 1

# Запрещено
sudo defaults write /Library/Preferences/com.apple.Bluetooth ControllerPowerState -int 0 && \
sudo killall -HUP bluetoothd

Жесткие диски

Принудительная очистка

Включить очистку для не-Apple SSD. Эта команда присутствует с версии macOS 10.10 (Yosemite).

trimforce

Информация о аппаратном обеспечении

Перечислить все аппаратные порты

networksetup -listallhardwareports

Остаток заряда аккумулятора в процентах

pmset -g batt | egrep "([0-9]+\%).*" -o --colour=auto | cut -f1 -d';'

Оставшееся время работы аккумулятора

pmset -g batt | egrep "([0-9]+\%).*" -o --colour=auto | cut -f3 -d';'

Показать UDID подключенного устройства

system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p'

Показать текущее разрешение экрана

system_profiler SPDisplaysDataType | grep Resolution

Показать бренд процессора

sysctl -n machdep.cpu.brand_string

ИК-приемник

# Статус
defaults read /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled

# Разрешено (по умолчанию)
defaults write /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled -int 1

# Запрещено
defaults write /Library/Preferences/com.apple.driver.AppleIRController DeviceEnabled -int 0

Управление электропитанием

Предотвращение перехода системы в спящий режим

Предотвращение перехода в спящий режим на 1 час:

caffeinate -u -t 3600

Показать все настройки управления электропитанием

sudo pmset -g

Закрыть дисплей после 15 минут бездействия

sudo pmset displaysleep 15

Усыпить компьютер после 30 минут бездействия

sudo pmset sleep 30

Проверить время бездействия системы перед спящим режимом

sudo systemsetup -getcomputersleep

Установить время бездействия системы перед спящим режимом на 60 минут

sudo systemsetup -setcomputersleep 60

Полное отключение спящего режима системы

sudo systemsetup -setcomputersleep Never

Автоматическая перезагрузка при заморозке системы

sudo systemsetup -setrestartfreeze on

Звуковой сигнал при зарядке

Воспроизводить звуковой сигнал зарядки iOS при подключении MagSafe.

## До macOS 10.12 (Sierra)

# Разрешено
defaults write com.apple.PowerChime ChimeOnAllHardware -bool true && \
open /System/Library/CoreServices/PowerChime.app

# Запрещено (по умолчанию)
defaults write com.apple.PowerChime ChimeOnAllHardware -bool false && \
killall PowerChime
## От macOS 10.13 (High Sierra) и далее

# Разрешено (по умолчанию)
defaults write com.apple.PowerChime ChimeOnNoHardware -bool false && \
open /System/Library/CoreServices/PowerChime.app

# Запрещено
defaults write com.apple.PowerChime ChimeOnNoHardware -bool true && \
killall PowerChime

Входные устройства

Клавиатура

Автокоррекция

# Запрещено
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool false

# Разрешено (по умолчанию)
defaults write -g NSAutomaticSpellingCorrectionEnabled -bool true

# Показать статус
defaults read -g NSAutomaticSpellingCorrectionEnabled

Полный доступ к клавиатуре

Включение клавиши Tab в модальных диалоговых окнах.

# Только текстовые поля и списки (по умолчанию)
defaults write NSGlobalDomain AppleKeyboardUIMode -int 0

# Все элементы управления
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

Повтор клавиш

Изменение поведения “нажмите и удерживайте”.

# Запрещено
defaults write -g ApplePressAndHoldEnabled -bool false

# Разрешено (по умолчанию)
defaults write -g ApplePressAndHoldEnabled -bool true

Скорость повтора клавиш

Установка очень быстрой скорости повтора, настраивайте по вкусу.

defaults write -g KeyRepeat -int 0.02

Launchpad

Сброс макета Launchpad

Вы должны перезапустить Dock, так как Launchpad связан с ним.

# Для OS X 10.10 (Yosemite) и ниже
rm ~/Library/Application\ Support/Dock/*.db && \
killall Dock

# Для OS X 10.11 (El Capitan) и выше
defaults write com.apple.dock ResetLaunchPad -bool true && \
killall Dock

Мультимедиа

Аудио

Конвертация аудиофайла в мелодию iPhone

afconvert input.mp3 ringtone.m4r -f m4af

Создание аудиокниги из текста

Использует голос “Alex”, обычный файл с UTF-8 кодировкой в качестве ввода и AAC в качестве вывода.

say -v Alex -f file.txt -o "output.m4a"

Отключение звуковых эффектов при загрузке

sudo nvram SystemAudioVolume=" "

Отключение звука вывода аудио

osascript -e 'set volume output muted true'

Установка громкости аудио

osascript -e 'set volume 4'

Проигрывание аудиофайла

Вы можете проигрывать все аудиоформаты, поддерживаемые нативно QuickTime.

afplay -q 1 filename.mp3

Озвучивание текста голосом системы по умолчанию

say 'All your base are belong to us!'

Звуковой сигнал при загрузке

Для старых Mac:

# Разрешено (по умолчанию)
sudo nvram BootAudio=%01

# Запрещено
sudo nvram BootAudio=%00

Для моделей 2016 года и новее:

# Разрешено
sudo nvram StartupMute=%00

# Запрещено (по умолчанию)
sudo nvram StartupMute=%01

Видео

Автоматическое воспроизведение видео в QuickTime Player

defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen 1

Сеть

Bonjour

Служба Bonjour

# Запрещено
sudo defaults write /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist ProgramArguments -array-add "-NoMulticastAdvertisements"

# Разрешено (по умолчанию)
sudo defaults write /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist ProgramArguments -array "/usr/sbin/mDNSResponder" "-launchd"

DHCP

Обновление аренды DHCP

sudo ipconfig set en0 DHCP

Просмотр информации DHCP

ipconfig getpacket en0

DNS

Очистка кэша DNS

sudo dscacheutil -flushcache && \
sudo killall -HUP mDNSResponder

Имя хоста

Установка имени компьютера/хоста

sudo scutil --set ComputerName "newhostname" && \
sudo scutil --set HostName "newhostname" && \
sudo scutil --set LocalHostName "newhostname" && \
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "newhostname"

Настройки сети

Местоположения сети

Переключение между созданными в панели настроек сети местоположениями сети.

# Статус
scselect

# Переключить местоположение сети
scselect LocationNameFromStatus

Установка статического IP-адреса

networksetup -setmanual "Ethernet" 192.168.2.100 255.255.255.0 192.168.2.1

Инструменты сети

Пинг хоста для определения доступности

ping -o herrbischoff.com

Устранение проблем маршрутизации

traceroute herrbischoff.com

SSH

Постоянное добавление парольной фразы закрытого ключа в SSH-агент

До macOS 10.12 (Sierra) команда ssh выводила диалоговое окно с запросом парольной фразы и предлагала вариант сохранения ее в цепочке ключей. Этот пользовательский интерфейс был устаревшим и давно убран.

Вместо этого в macOS 10.12 (Sierra) был добавлен новый параметр UseKeychain,

который позволяет пользователям указать, хотели бы они, чтобы парольная фраза сохранялась в цепочке ключей. Этот параметр был включен по умолчанию в macOS 10.12 (Sierra), что вызвало сохранение всех парольных фраз в цепочке ключей.

Это не было намеренным поведением по умолчанию, и это было изменено в macOS 10.12.2. (Источник)

ssh-add -K /path/to/private_key

Затем добавьте в ~/.ssh/config:

Host server.example.com
    IdentityFile /path/to/private_key
    UseKeychain yes

Удаленный вход

# Разрешено
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

# Запрещено (по умолчанию)
sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist

TCP/IP

Показать приложение, использующее определенный порт

Это выводит все приложения, в настоящее время использующие порт 80.

sudo lsof -i :80

Показать внешний IP-адрес

Работает, если ваш провайдер интернет-услуг не заменяет DNS-запросы (что и не должен делать).

dig +short myip.opendns.com @resolver1.opendns.com

Альтернативный способ, работающий во всех сетях.

curl -s https://api.ipify.org && echo

Показать информацию о сетевом интерфейсе

Не документированный флаг команды scutil.

scutil --nwi

TFTP

Запустить встроенный TFTP-демон

Файлы будут предоставляться из /private/tftpboot.

sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist && \
sudo launchctl start com.apple.tftpd

Wi-Fi

Подключение к Wi-Fi сети

networksetup -setairportnetwork en0 WIFI_SSID WIFI_PASSWORD

Сканирование доступных точек доступа

Создайте символическую ссылку на команду airport для удобства доступа:

sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

Выполните беспроводное сканирование:

airport -s

Показать текущее имя SSID

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}'

Показать локальный IP-адрес

ipconfig getifaddr en0

Показать историю подключений Wi-Fi

defaults read /Library/Preferences/SystemConfiguration/com.apple.airport.preferences | grep LastConnected -A 7

Показать пароли Wi-Fi сетей

Замените SSID на имя точки доступа, пароль которой вы хотите узнать.

security find-generic-password -D "AirPort network password" -a "SSID" -gw

Включить адаптер Wi-Fi

networksetup -setairportpower en0 on

Менеджеры пакетов

  • Fink - Полный мир Unix Open Source программного обеспечения для Darwin. Немного устарел.
  • Homebrew - Отсутствующий менеджер пакетов для OS X. Самый популярный выбор.
  • MacPorts - Компилируйте, устанавливайте и обновляйте программное обеспечение с открытым исходным кодом на основе командной строки, X11 или Aqua.

Homebrew

Полное удаление

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Печать

Очистить очередь печати

cancel -a -

Расширить панель печати по умолчанию

defaults write -g PMPrintingExpandedStateForPrint -bool true && \
defaults write -g PMPrintingExpandedStateForPrint2 -bool true

Закрыть приложение принтера после завершения печати

defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true

Безопасность

Брандмауэр приложений

Служба брандмауэра

# Показать статус
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate

# Разрешено
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on

# Запрещено (по умолчанию)
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

Добавить приложение в брандмауэр

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /path/to/file

Gatekeeper

Добавить исключение Gatekeeper

spctl --add /path/to/Application.app

Удалить исключение Gatekeeper

spctl --remove /path/to/Application.app

Управление Gatekeeper

Особенно полезно с раздражающим всплывающим окном системы macOS 10.15 (Catalina), блокирующим выполнение неподписанных приложений.

# Статус
spctl --status

# Разрешено (по умолчанию)
sudo spctl --master-enable

# Запрещено
sudo spctl --master-disable

Пароли

Генерировать надежный пароль и копировать его в буфер обмена

LC_ALL=C tr -dc "[:alnum:]" < /dev/urandom | head -c 20 | pbcopy

Физический доступ

Запустить заставку экрана

# Для macOS 10.12 (Sierra)
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app

# Начиная с macOS 10.13 (High Sierra)
/System/Library/CoreServices/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine

Заблокировать экран

/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

Немедленная блокировка заставки экрана

# Статус
defaults read com.apple.screensaver askForPasswordDelay

# Разрешено (по умолчанию)
defaults write com.apple.screensaver askForPasswordDelay -int 0

# Запрещено (Целое число = задержка блокировки в секундах)
defaults write com.apple.screensaver askForPasswordDelay -int 10

Пароль заставки экрана

# Статус
defaults read com.apple.screensaver askForPassword

# Разрешено
defaults write com.apple.screensaver askForPassword -int 1

# Запрещено (по умолчанию)
defaults write com.apple.screensaver askForPassword -int 0

База данных конфиденциальности

Команда tccutil управляет базой данных конфиденциальности, которая хранит решения пользователя о том, могут ли приложения иметь доступ к личным данным. Перед выполнением этих команд необходимо закрыть все приложения, кроме Терминала.

# Полный сброс для всех приложений
sudo tccutil reset All

# Сброс доступа к адресной книге
sudo tccutil reset AddressBook

# Сброс всех разрешений для Terminal.app
sudo tccutil reset All com.apple.Terminal

Стирание данных

Примечание: Кажется, что команда srm была удалена из MacOS после версии 10.9. Есть заметка на странице поддержки Apple, которая намекает на причину:

С диском SSD, Secure Erase и Erasing Free Space не доступны в Дисковой утилите. Эти опции не требуются для диска SSD, потому что стандартное стирание затрудняет восстановление данных с SSD.

Безопасное удаление файла

srm /path/to/file

Безопасное удаление папки

srm -r /path/to/folder/

Безопасное удаление пути (принудительно)

srm -rf /path/to/complete/destruction

Поиск

Поиск

Рекурсивное удаление файлов .DS_Store

find . -type f -name '.DS_Store' -ls -delete

Поиск через locate

Построение базы данных locate

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Поиск через locate

Модификатор -i делает поиск регистронезависимым.

locate -i *.jpg

Система

AirDrop

AirDrop через Ethernet на неподдерживаемых Mac

# Разрешено
defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true && \
defaults remove com.apple.NetworkBrowser DisableAirDrop

# Запрещено (По умолчанию)
defaults delete com.apple.NetworkBrowser BrowseAllInterfaces && \
defaults write com.apple.NetworkBrowser DisableAirDrop -bool true

AppleScript

Выполнение AppleScript

osascript /путь/к/скрипту.scpt

Основы

Сравнение двух папок

diff -qr /путь/к/папке1 /путь/к/папке2

Копирование больших файлов с отображением прогресса

Убедитесь, что у вас установлен pv, и замените /dev/rdisk2 на соответствующее устройство записи или файл.

FILE=/путь/к/файлу.iso pv -s $(du -h $FILE | awk '/.*/ {print $1}') $FILE | sudo dd of=/dev/rdisk2 bs=1m

Восстановление нормальной оболочки

В случае, если ваша сеанс оболочки стал ненормальным (какой-либо сценарий или приложение сделали его неразборчивым).

stty sane

Перезагрузка

sudo reboot

Выключение

sudo poweroff

Показать номер сборки ОС

sw_vers

Время работы

Сколько времени прошло с момента последней перезагрузки.

uptime

Буфер обмена

Копирование данных в буфер обмена

cat whatever.txt | pbcopy

Преобразование буфера обмена в обычный текст

pbpaste | textutil -convert txt -stdin -stdout -encoding 30 | pbcopy

Замена символов табуляции на пробелы в содержимом буфера обмена

pbpaste | expand | pbcopy

Копирование данных из буфера обмена

pbpaste > whatever.txt

Сортировка и удаление повторяющихся строк из содержимого буфера обмена

pbpaste | sort | uniq | pbcopy

FileVault

Автоматическая разблокировка FileVault при перезагрузке

Если FileVault включен на текущем томе, он перезагружает систему, обходя начальную разблокировку. Эта команда может не работать на всех системах.

sudo fdesetup authrestart

Служба FileVault

# Состояние
sudo fdesetup status

# Разрешено
sudo fdesetup enable

# Запрещено (По умолчанию)
sudo fdesetup disable

iCloud

Принудительный выход

defaults delete MobileMeAccounts

Информация/Отчеты

Создание расширенного системного и производительностного отчета

sudo sysdiagnose -f ~/Desktop/

Установка

Создание загрузочного установщика

# macOS 13 (Ventura)
sudo /Applications/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes

/MyVolume

Создание загрузочного установщика (с использованием образа)

# macOS 13 (Ventura)
sudo /путь/к/образу/Install\ macOS\ Ventura.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

Локальное время

Установка локального времени через терминал

sudo systemsetup -settimezone Europe/Moscow

Показать текущее локальное время

date

Сеть

Перезапуск службы сети

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Очистка кэша DNS

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Звук

Отключение системного звука

sudo nvram SystemAudioVolume=%80

Включение системного звука

sudo nvram -d SystemAudioVolume

Spotlight

Очистка кэша Spotlight

sudo mdutil -E /

Отключение Spotlight для конкретного тома

sudo mdutil -i off /Volumes/VolumeName

Включение Spotlight для конкретного тома

sudo mdutil -i on /Volumes/VolumeName

SSH

Генерация новой пары ключей SSH

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Системные журналы

Показать журнал системных сообщений

sudo log show --predicate 'processImagePath CONTAINS "appname"'

Показать журнал только запущенного приложения

sudo log show --predicate 'senderImagePath == "/Applications/YourApp.app/Contents/MacOS/YourApp"' --info

Показать журнал с конкретным идентификатором процесса

sudo log show --pid 123

Показать журнал с конкретным процессом и уровнем журналирования

sudo log show --predicate 'processImagePath CONTAINS "appname"' --level=debug

Автоматическое обновление

Отключение автоматических обновлений

sudo softwareupdate --schedule off

Включение автоматических обновлений

sudo softwareupdate --schedule on

Очистка

Очистка кэша пользователя

rm -rf ~/Library/Caches/*

Очистка кэша системы

sudo rm -rf /Library/Caches/*

Очистка кэша DNS

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Очистка кэша шрифтов

sudo atsutil databases -remove

Очистка кэша Launch Services

sudo lsregister -kill -seed -r -domain local -domain system -domain user

Очистка и перезагрузка UI

sudo killall -KILL Dock Finder SystemUIServer

Очистка swap-файла

sudo rm /private/var/vm/swapfile*

Запись экрана

Запись экрана в формате GIF

ffmpeg -f avfoundation -i "1" -vf "fps=10,scale=320:-1:flags=lanczos" output.gif

Запись экрана и аудио с микрофона в одном файле

ffmpeg -f avfoundation -i ":0.0" -f avfoundation -i ":1" output.mp4

Установка/Обновление пакетов

Установка пакета через Homebrew

brew install packageName

Обновление всех установленных пакетов через Homebrew

brew update
brew upgrade

Терминал

Очистка окна терминала

clear

Очистка окна терминала с прокруткой назад

printf '\33[H\33[2J'

Принудительное завершение команды

Ctrl + C

Повторение последней выполненной команды с изменением sudo

sudo !!

Зависимости приложений

Показать зависимости исполняемого файла

otool -L /путь/к/исполняемому/файлу

Терминал

Переключение между окнами терминала

Ctrl + `

Очистка кэша DNS

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Управление пользователями и группами

Создание новой группы

sudo dscl . -create /Groups/mygroup

Удаление группы

sudo dscl . -delete /Groups/mygroup

Создание пользователя с указанием группы

sudo dscl . -create /Users/myuser
sudo dscl . -create /Users/myuser UserShell /bin/bash
sudo dscl . -create /Users/myuser RealName "My User"
sudo dscl . -create /Users/myuser UniqueID "501"
sudo dscl . -create /Users/myuser PrimaryGroupID 20
sudo dscl . -create /Users/myuser NFSHomeDirectory /Users/myuser

Удаление пользователя

sudo dscl . -delete /Users/myuser

Xcode

Обновление путей к библиотекам в Xcode

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Установка

Установка пакета с компилированным приложением

sudo installer -pkg /путь/к/пакету.pkg -target /

Удаление установленного пакета

sudo installer -pkg /путь/к/пакету.pkg -target / -delete

Конфигурационные профили

Установка конфигурационного профиля

sudo profiles -I -F /путь/к/profile.mobileconfig

Удаление конфисгурационного профиля

sudo profiles -R -p com.example.profileidentifier

Это лишь небольшой набор полезных команд для работы в терминале macOS. На практике, использование команд может потребовать дополнительных знаний о системе и осторожности, чтобы избежать нежелательных последствий. Всегда имейте в виду, что неправильное использование команд может повредить вашу операционную систему.

Глоссарий

Информация о версиях Mac OS X, OS X и macOS

Версия Кодовое имя Дата выпуска Наиболее поздняя версия
Rhapsody Developer Release Grail1Z4 / Titan1U August 31, 1997 DR2 (May 14, 1998)
Mac OS X Server 1.0 Hera March 16, 1999 1.2v3 (October 27, 2000)
Mac OS X Developer Preview n/a March 16, 1999 DP4 (April 5, 2000)
Mac OS X Public Beta Kodiak September 13, 2000 n/a
Mac OS X 10.0 Cheetah March 24, 2001 10.0.4 (June 22, 2001)
Mac OS X 10.1 Puma September 25, 2001 10.1.5 (June 6, 2002)
Mac OS X 10.2 Jaguar August 24, 2002 10.2.8 (October 3, 2003)
Mac OS X 10.3 Panther October 24, 2003 10.3.9 (April 15, 2005)
Mac OS X 10.4 Tiger April 29, 2005 10.4.11 (November 14, 2007)
Mac OS X 10.5 Leopard October 26, 2007 10.5.8 (August 5, 2009)
Mac OS X 10.6 Snow Leopard August 28, 2009 10.6.8 v1.1 (July 25, 2011)
Mac OS X 10.7 Lion July 20, 2011 10.7.5 (September 19, 2012)
OS X 10.8 Mountain Lion July 25, 2012 10.8.5 (12F2560) (August 13, 2015)
OS X 10.9 Mavericks October 22, 2013 10.9.5 (13F1911) (July 18, 2016)
OS X 10.10 Yosemite October 16, 2014 10.10.5 (14F2511) (July 19, 2017)
OS X 10.11 El Capitan September 30, 2015 10.11.6 (15G22010) (July 9, 2018)
macOS 10.12 Sierra September 20, 2016 10.12.6 (16G2136) (September 26, 2019)
macOS 10.13 High Sierra September 25, 2017 10.13.6 (17G14042) (November 12, 2020)
macOS 10.14 Mojave September 24, 2018 10.14.6 (18G9323) (July 21, 2021)
macOS 10.15 Catalina October 7, 2019 10.15.7 (19H2026) (July 20, 2022)
macOS 11 Big Sur November 12, 2020 11.7.1 (20G918) (October 24, 2022)
macOS 12 Monterey October 25, 2021 12.6.1 (21G217) (October 24, 2022)
macOS 13 Ventura October 24, 2022 13.0.1 (22A400) (November 9, 2022)

Лицензия

Этот материал лицензирован в соответствии с Лицензией Creative Commons Attribution-ShareAlike 4.0 International.