Практически всё, что необходимо для работы, можно настроить через стандартные настройки в GUI. Однако иногда возникает необходимость добраться до скрытых настроек, тогда на помощь приходит утилита . Она позволяет читать, записывать и удалять пользовательские установки из командной строки. Приложения Mac OS X и прикладные программы обычно хранят настройки, используя механизм defaults. Давайте попробуем поработать с этими настройками.
В терминах defaults настройки приложения храняться в своих доменах. Получить перечень доменов можно командой:
ole-mac:~ ctrld$ defaults domains .com.settings.local, AddressBookMe, AppFreshDaemon, Net Monitor, SnippetDB, at.EternalStorms.flickery, at.obdev.LittleSnitchConfiguration, at.obdev.LittleSnitchNetworkMonitor, au.id.tyson.AutoRate, ca.indev.MAOSparkleHelper, ca.indev.MailActOn, ca.indev.MailTags, ca.primatelabs.Geekbench2, ca.primatelabs.Geekbench2.LSSharedFileList, com.Growl.GrowlHelperApp, com.acqualia.Picturesque2, com.adiumX.adiumX, com.adobe.Reader, com.adobe.Reader_x86_9.0, com.adobe.acrobat.90.sh, ...
Как вы видите, идентифицировать конкретную программу достаточно просто. MailActOn – ca.indev.MailActOn, Adium – com.adiumX.adiumX, и т.д.
Просмотр содержимого домена:
ole-mac:~ ctrld$ defaults read de.metaquark.appfresh
{
IUAppFreshUpdatesMaturity = 1;
IUCategoriesVersion = 7;
IULastDaemonRun = "2009-10-14 17:31:37 +0300";
IUScheduleInterval = 0;
IUSelectedTableViewFilter = "x-coredata://EBA970E8-B0D6-4058-A9B5-9B334546D149/IUCategory/p8";
IUSetupWizardRun = 1;
"IUSplitView Layout MainSplitView" = {
Left = 201;
Right = 220;
};
...
Также можно просмотреть содержимое по имени программы:
defaults read -app AppFresh
Получить значение ключа:
ole-mac:~ ctrld$ defaults read de.metaquark.appfresh IUAppFreshUpdatesMaturity 1
Установить новое значение (не выполняйте эту команду, я не знаю, что обозначает “2″ в AppFresh, это демонстрация принципа):
ole-mac:~ ctrld$ defaults write de.metaquark.appfresh IUAppFreshUpdatesMaturity 2
Перед тем, как что-то менять, лучше запомнить, что было раньше. Если уж что-то пошло совсе не так, то можно удалить настройки, и при запуске программы создадутся новые (эта операция совсем уж на крайний случай):
ole-mac:~ ctrld$ defaults delete de.metaquark.appfresh
Можно найти слово или фразу. Например, я хочу узнать, в каких доменах записано моё имя, например, чтобы выяснить, какие программы я купил (учтите, что в разных программах может быть разный формат имени – или “Имя Фамилия”, или “Фамилия Имя”):
ole-mac:~ ctrld$ defaults find "Oleg Serdyukov"
Found 1 keys in domain 'com.appzapper.appzapper': {
"Registration Name" = "Oleg Serdyukov";
}
Found 1 keys in domain 'com.blacey.SuperDuper!': {
SDuserLicenseName = "Oleg Serdyukov";
}
Я описал основные возможности defaults, за детальным описанием обращайтесь к ““.
Посмотреть, как использовать defaults для изменения различных настроек, можно, например, на ““.
