Sinopsis (Synopsis)
defaults [-currentHost | -host konak_adı] read [alan [anahtar]]
defaults [-currentHost | -host konak_adı] read-type alan anahtar
defaults [-currentHost | -host konak_adı] write alan { 'plist' | anahtar 'değer' }
defaults [-currentHost | -host konak_adı] rename alan eski_anahtar yeni_anahtar
defaults [-currentHost | -host konak_adı] delete [alan [anahtar]]
defaults [-currentHost | -host konak_adı] { domains | find kelime | help }
Açıklama (Description)
defaults, kullanıcıların bir komut satırı kabuğundan (command-line shell) macOS kullanıcı varsayılanlarını okumasına, yazmasına ve silmesine olanak tanır. macOS üzerindeki uygulamalar ve diğer programlar, kullanıcı tercihlerini ve uygulamalar çalışmadığında korunması gereken diğer bilgileri (yeni belgeler için varsayılan yazı tipi veya bir Bilgi panelinin konumu gibi) kaydetmek için varsayılanlar (defaults) sistemini kullanır. Bu bilgilerin büyük bir kısmına bir uygulamanın Tercihler (Preferences) panelinden erişilebilir, ancak Bilgi panelinin konumu gibi bazılarına erişilemez. Bu bilgilere defaults ile erişebilirsiniz.
Not: Uygulamalar çalışırken varsayılanlar sistemine eriştiklerinden, çalışan bir uygulamanın varsayılanlarını değiştirmemelisiniz. Çalışan bir uygulamaya ait bir alandaki (domain) bir varsayılanı değiştirirseniz, uygulama bu değişikliği görmez ve hatta varsayılanın üzerine yazabilir.
Kullanıcı varsayılanları, genellikle bireysel uygulamalara karşılık gelen alanlara (domains) aittir. Her alanın, varsayılanlarını temsil eden anahtarlar ve değerlerden oluşan bir sözlüğü vardır; örneğin, "Default Font" = "Helvetica". Anahtarlar her zaman dizelerdir (strings), ancak değerler diziler (arrays), sözlükler (dictionaries), dizeler ve ikili verilerden oluşan karmaşık veri yapıları olabilir. Bu veri yapıları XML Özellik Listeleri (Property Lists) olarak saklanır.
Tüm uygulamaların, sistem servislerinin ve diğer programların kendi alanları olmasına rağmen, NSGlobalDomain adında bir alanı da paylaşırlar. Bir varsayılan uygulamanın alanında belirtilmemişse ancak NSGlobalDomain içinde belirtilmişse, uygulama o alandaki değeri kullanır.
Komutlar aşağıdaki gibidir:
read Tüm alanlar için kullanıcının tüm varsayılanlarını standart çıktıya yazdırır.
read alan Belirtilen alan (domain) için kullanıcının tüm varsayılanlarını standart çıktıya yazdırır.
read alan anahtar anahtar (key) ile tanımlanan alana ait varsayılanın değerini yazdırır.
read-type alan anahtar anahtar ile tanımlanan verilen alan için plist türünü yazdırır.
write alan anahtar 'değer' değer ifadesini alan içindeki anahtar için değer olarak yazar. değer bir özellik listesi (property list) olmalı ve tek tırnak içine alınmalıdır. Örneğin:
defaults write com.companyname.appname "Default Color" '(255, 0, 0)'
Default Color değerini 255, 0, 0 dizelerini (kırmızı, yeşil ve mavi bileşenler) içeren bir diziye ayarlar. Anahtarın bir boşluk içerdiği için tırnak işaretleri içine alındığına dikkat edin.
write alan 'plist' alan içindeki varsayılanlar bilgisinin üzerine plist olarak verilen bilgiyi yazar. plist bir sözlüğün özellik listesi temsili olmalı ve tek tırnak içine alınmalıdır. Örneğin:
defaults write com.companyname.appname '{ "Default Color" = (255, 0, 0); "Default Font" = Helvetica; }';
com.companyname.appname için önceki tüm varsayılanları siler ve bu iki ismin değerlerini varsayılanlar sistemine yazar.
delete alan Belirtilen alan (domain) için tüm varsayılan bilgilerini kaldırır.
delete alan anahtar Belirtilen alan içinden anahtar adındaki varsayılanı kaldırır.
delete-all alan Bilinen tüm kapsayıcılarda belirtilen alan için tüm varsayılan bilgilerini kaldırır.
delete-all alan anahtar Bilinen tüm kapsayıcılarda belirtilen alan içinden anahtar adındaki varsayılanı kaldırır.
domains Kullanıcının varsayılanlar sistemindeki tüm alanların adlarını yazdırır.
find kelime Kullanıcının varsayılanlarının alan adlarında, anahtarlarında ve değerlerinde kelime ifadesini arar ve eşleşmelerin bir listesini yazdırır.
help Olası komut biçimlerinin bir listesini yazdırır.
Seçenekler (Options)
Alanları belirtme (Specifying domains):
alan Herhangi bir bayrak belirtilmemişse, alan com.companyname.appname biçiminde bir alan adıdır. Örnek:
defaults read com.apple.TextEdit
-app uygulama -app bayrağı kullanılarak bir alan adı yerine bir uygulamanın adı sağlanabilir. Örnek:
defaults read -app TextEdit
dosya_yolu Alanlar, '.plist' uzantısıyla veya uzantısı olmadan rastgele bir plist dosyasının yolu olarak da belirtilebilir. Örneğin:
defaults read ~/Library/Preferences/com.apple.TextEdit.plist
normalde önceki iki örnekle aynı sonucu verir. Aşağıdaki örnekte:
defaults write ~/Desktop/TestFile foo bar
kullanıcının masaüstünde bulunan 'TestFile.plist' dosyasının içine 'foo' anahtarını 'bar' değeriyle yazacaktır. Eğer dosya mevcut değilse, oluşturulacaktır. Mevcutsa, anahtar-değer çifti eklenecek ve zaten mevcutsa 'foo' değerinin üzerine yazılacaktır.
UYARI: defaults komutu, gelecek bir ana sürümde yalnızca tercihler (preferences) alanlarında çalışacak şekilde değiştirilecektir. Genel plist manipülasyon yardımcı programları farklı bir komut satırı programında toplanacaktır.
-g | -globalDomain | NSGlobalDomain Küresel alanı (global domain) belirtir. '-g' ve '-globalDomain', NSGlobalDomain için eş anlamlı olarak kullanılabilir.
Tercih anahtarları için değer türlerini belirtme (Specifying value types for preference keys):
Hiçbir tür bayrağı sağlanmazsa, defaults değerin bir dize olduğunu varsayacaktır. En iyi sonuçlar için aşağıda listelenen tür bayraklarından birini kullanın.
-string: Kullanıcının belirtilen tercih anahtarı için değer olarak bir dize (string) belirtmesine olanak tanır.-data: Kullanıcının belirtilen tercih anahtarı için değer olarak bir dizi ham veri baytı belirtmesine olanak tanır. Veriler onaltılık (hexadecimal) düzende sağlanmalıdır.-int[eger]: Kullanıcının belirtilen tercih anahtarı için değer olarak bir tam sayı (integer) belirtmesine olanak tanır.-float: Kullanıcının belirtilen tercih anahtarı için değer olarak bir kayan noktalı sayı (floating point number) belirtmesine olanak tanır.-bool[ean]: Kullanıcının belirtilen tercih anahtarı için değer olarak bir boolean belirtmesine olanak tanır. Değer TRUE, FALSE, YES veya NO olmalıdır.-date: Kullanıcının belirtilen tercih anahtarı için değer olarak bir tarih belirtmesine olanak tanır.-array: Kullanıcının belirtilen tercih anahtarı için değer olarak bir dizi (array) belirtmesine olanak tanır:
defaults write somedomain preferenceKey -array element1 element2 element3
Belirtilen dizi, yazma sırasında anahtar mevcutsa anahtarın değerinin üzerine yazılır. Anahtar mevcut değilse, yeni değerle oluşturulur.
-array-add: Değeri bir dizi olan bir anahtarın dizisinin sonuna kullanıcının yeni öğeler eklemesine olanak tanır. Kullanım yukarıdaki -array ile aynıdır. Anahtar mevcut değilse, değeri belirtilen dizi olacak şekilde oluşturulur.-dict: Kullanıcının bir alan için varsayılanlar veritabanına bir sözlük (dictionary) eklemesine olanak tanır. Anahtarlar ve değerler sırayla belirtilir:
defaults write somedomain preferenceKey -dict key1 value1 key2 value2
Belirtilen sözlük, yazma sırasında anahtar mevcutsa anahtarın değerinin üzerine yazılır. Anahtar mevcut değilse, yeni değerle oluşturulur.
-dict-add: Değeri bir sözlük olan bir anahtarın sözlüğüne kullanıcının yeni anahtar/değer çiftleri eklemesine olanak tanır. Kullanım yukarıdaki -dict ile aynıdır. Anahtar mevcut değilse, değeri belirtilen sözlük olacak şekilde oluşturulur.
Tercihler için bir konak belirtme (Specifying a host for preferences):
Varsayılanlar veritabanındaki işlemler normalde kullanıcının oturum açabileceği herhangi bir konak için geçerlidir, ancak yalnızca belirli bir konakla sınırlanabilir.
Hiçbir konak sağlanmazsa, tercihler işlemleri kullanıcının oturum açabileceği herhangi bir konak için geçerli olacaktır.
-currentHost Tercih işlemlerini kullanıcının şu anda oturum açmış olduğu konakla sınırlandırır.
-host konak_adı Tercih işlemlerini konak_adı ile sınırlandırır.
Hatalar (Bugs)
Varsayılanlar çok karmaşık şekillerde yapılandırılmış olabilir, bu da kullanıcının bu komutla bunları girmesini zorlaştırır.
Tarihçe (History)
İlk olarak NeXTStep içinde ortaya çıkmıştır.
macOS 3 Kasım, 2003 macOS