名前
defaults -- Mac OS Xのユーザデフォルト設定システム(※訳注)にアクセスする
※訳注:原文では"users defaults system"となっているが、文脈上「設定」という語を挟んだほうが理解しやすいと訳者は感じたため、このように訳した。以降、同様の訳を採用している。
書式
defaults [-currentHost | -host hostname] read [domain [key]]
defaults [-currentHost | -host hostname] read-type domain key
defaults [-currentHost | -host hostname] write domain { 'plist' | key 'value' }
defaults [-currentHost | -host hostname] rename domain old_key new_key
defaults [-currentHost | -host hostname] delete [domain [key]]
defaults [-currentHost | -host hostname] { domains | find word | help }
defaults [-currentHost | -host hostname] read-type domain key
defaults [-currentHost | -host hostname] write domain { 'plist' | key 'value' }
defaults [-currentHost | -host hostname] rename domain old_key new_key
defaults [-currentHost | -host hostname] delete [domain [key]]
defaults [-currentHost | -host hostname] { domains | find word | help }
説明
DefaultsはOS Xのユーザ設定の読み込み、書き込み、削除を、ユーザがコマンドラインのシェルから操作することを可能にする。Mac OS Xのアプリケーションやその他のプログラムは、アプリケーションの非実行中にも保持されるユーザ設定やその他の情報(例えば新規書類のデフォルトフォントや情報パネルの位置)を記録するために、デフォルト設定システムを使用する。これら情報のうち多くはアプリケーションの環境設定パネルからアクセス可能であるが、情報パネルの位置のようないくつかの情報についてはアクセスできない。Defaultsを使うとこのような情報へのアクセスが可能になる。
注意:アプリケーションはそれらの実行中にデフォルト設定システムへアクセスするため、アプリケーション実行中にそのデフォルト設定を修正するべきではない。もし実行中アプリケーションのドメインに属するデフォルト設定を変更した場合、アプリケーションはその変更を気がつかずに上書きする可能性がある。
ユーザデフォルト設定は、通常おのおののアプリケーションに対応するドメインに属する。それぞれのドメインはデフォルト設定を記述するための、キーと値の辞書を有する(例えば、"Default Font" = "Helvetica")。キーは常に文字列である。しかし値は配列、辞書、文字列、バイナリデータを含む複雑なものである場合がある。これらのデータ構造は、XMLのプロパティリストとして保存される。
全てのアプリケーション、システムサービスおよび他のプログラムは各々のドメインを持つが、NSGlobalDomainと呼ばれるドメインも共有している。もしデフォルト設定がアプリケーションのドメインで指定されておらず、しかしNSGlobalDomainで指定されている場合、アプリケーションはこちらの値を使用する。
コマンドは以下のものがある。
read
それぞれのドメインについて、全てのユーザのデフォルト設定を標準出力に表示する。
それぞれのドメインについて、全てのユーザのデフォルト設定を標準出力に表示する。
read domain
domainに関する、ユーザの全てのデフォルト設定を標準出力に表示する。
domainに関する、ユーザの全てのデフォルト設定を標準出力に表示する。
read domain key
keyにより指定されるdomain のデフォルト設定値を表示する。
keyにより指定されるdomain のデフォルト設定値を表示する。
read-type domain key
keyにより指定される与えられたdomainのplist型を表示する。
keyにより指定される与えられたdomainのplist型を表示する。
write domain key 'value'
domain内のkeyの値にvalueを書き込む。valueはプロパティリストで、かつシングルクオートで囲まれなければならない。例えば
domain内のkeyの値にvalueを書き込む。valueはプロパティリストで、かつシングルクオートで囲まれなければならない。例えば
defaults write com.companyname.appname "Default Color" '(255, 0, 0)'
はデフォルトの色の値を、文字列255、0、0(赤、緑、青の成分)を保持する配列に設定する。キーが空白を含んでいるため、クオーテーションマークで囲まれていることに注意せよ。
write domain 'plist'
domain内のデフォルト設定をplistとして与えられたものに上書きする。plistは辞書のプロパティリスト形式でなくてはならない。またシングルクオートで囲む必要がある。例えば
domain内のデフォルト設定をplistとして与えられたものに上書きする。plistは辞書のプロパティリスト形式でなくてはならない。またシングルクオートで囲む必要がある。例えば
defaults write com.companyname.appname '{ "Default Color" = (255, 0, 0); "Default Font" = Helvetica; }';
com.companyname.appnameの以前のデフォルト設定を消去し、2つの名前の値をデフォルト設定システムに書き込む。
delete domain
全てのdomainに関するデフォルト設定情報を削除する。
全てのdomainに関するデフォルト設定情報を削除する。
delete domain key
domainからkeyのデフォルト値を削除する。
domainからkeyのデフォルト値を削除する。
domains
ユーザのデフォルト設定システムにある全てのドメイン名を表示する。
ユーザのデフォルト設定システムにある全てのドメイン名を表示する。
find word
ユーザのデフォルト設定のドメイン名、キー、値からwordを検索し、一致したものを表示する。
ユーザのデフォルト設定のドメイン名、キー、値からwordを検索し、一致したものを表示する。
help
可能なコマンドの形式のリストを表示する。
可能なコマンドの形式のリストを表示する。
オプション
ドメインの指定
domain
もしフラグが何も指定されなかった場合、domainはcom.companyname.appnameという形式のドメイン名である。例えば
もしフラグが何も指定されなかった場合、domainはcom.companyname.appnameという形式のドメイン名である。例えば
defaults read com.apple.TextEdit
-app application
ドメイン名の代わりに-appフラグを用いることによって、アプリケーションの名前を与えることができる。例えば
ドメイン名の代わりに-appフラグを用いることによって、アプリケーションの名前を与えることができる。例えば
defaults read -app TextEdit
filepath
拡張子'.plist'を取り除いた任意のplistファイルへのパスを、ドメインとして指定することができる。例えば
拡張子'.plist'を取り除いた任意のplistファイルへのパスを、ドメインとして指定することができる。例えば
defaults read ~/Library/Preferences/com.apple.TextEdit
は、通常上記二つの前の例と同じ結果を与える。次の例では
defaults write ~/Desktop/TestFile foo bar
ユーザのデスクトップにある'TestFile.plist'というplistファイルに、値'bar'のキー'foo'を書き込む。もしファイルが存在しない場合、ファイルが作成される。もしファイルが存在する場合は、キーと値の組が追加され、既に'foo'が存在する場合には値が上書きされる。
注意:将来のリリースでは、defaultsコマンドは環境設定ドメインのみを操作するように変更される予定である。一般的なplist操作用ユーティリティは、他の異なるコマンドラインプログラムに組み込まれる予定である。
-g | -globalDomain | NSGlobalDomain
グローバルドメインを指定する。'-g'と'-globalDomain'はNSGlobalDomainの別名として用いることができる。
グローバルドメインを指定する。'-g'と'-globalDomain'はNSGlobalDomainの別名として用いることができる。
設定キーの型の指定
もし型のフラグが与えられなかった場合、defaultsはその値をstring型であると仮定する。最良の結果を得るためには、次に列挙する型フラグのうちの1つを使用すること。
-string
与えられた設定キーにstring型の値を指定することができる。
与えられた設定キーにstring型の値を指定することができる。
-data
与えられた設定キーに生のデータバイトの集合を指定することができる。データは16進数表示で与えられなくてはならない。
与えられた設定キーに生のデータバイトの集合を指定することができる。データは16進数表示で与えられなくてはならない。
-int[eger]
与えられた設定キーに整数型の値を指定することができる。
与えられた設定キーに整数型の値を指定することができる。
-float
与えられた設定キーに浮動小数点型の値を指定することができる。
与えられた設定キーに浮動小数点型の値を指定することができる。
-bool[ean]
与えられた設定キーにブール代数型の値を指定することができる。値はTRUE、FALSE、YES、NOのどれかである。
与えられた設定キーにブール代数型の値を指定することができる。値はTRUE、FALSE、YES、NOのどれかである。
-date
与えられた設定キーの値に日付を指定することができる。
与えられた設定キーの値に日付を指定することができる。
-array
与えられた設定キーの値に配列を指定することができる。
与えられた設定キーの値に配列を指定することができる。
defaults write somedomain preferenceKey -array element1 element2 element3
書き込み時にキーが存在した場合、指定された配列はキーの値を上書きする。もしキーが存在しなければ、新しい値でキーが作成される。
-array-add
配列を値として持つキーの、配列の末尾に新しい要素を追加することができる。使い方は上記の-arrayと同じである。もしキーが存在しなければ、指定された配列を値としてキーが作成される。
配列を値として持つキーの、配列の末尾に新しい要素を追加することができる。使い方は上記の-arrayと同じである。もしキーが存在しなければ、指定された配列を値としてキーが作成される。
-dict
ドメインのdefaultsデータベースに辞書を追加する事ができる。キーと値は順番に指定される。
ドメインのdefaultsデータベースに辞書を追加する事ができる。キーと値は順番に指定される。
defaults write somedomain preferenceKey -dict key1 value1 key2 value2
書き込み時にキーが存在した場合、指定された辞書は現在のキーの値を上書きする。もしキーが存在しなければ、新しい値でキーが作成される。
-dict-add
辞書を値として持つキーに、新しいキーと値の対を追加することができる。使い方は上記の-dictと同じである。もしキーが存在しなければ、指定された辞書を値としてキーが作成される。
(※訳注 辞書のキーとdefaultsのキーが混在しているので注意して読むこと。)
辞書を値として持つキーに、新しいキーと値の対を追加することができる。使い方は上記の-dictと同じである。もしキーが存在しなければ、指定された辞書を値としてキーが作成される。
(※訳注 辞書のキーとdefaultsのキーが混在しているので注意して読むこと。)
ホストの指定
defaultsデータベースへの操作は、ユーザがログイン可能なホストに対して通常適用される。しかし特定のホストのみへ適用するように、操作を限定することが可能である。
もしいずれのホストも指定されない場合、設定の操作はユーザのログイン可能なホストに適用される。
-currentHost
設定操作をユーザが現在ログインしているホストのみに制限する。
設定操作をユーザが現在ログインしているホストのみに制限する。
-host hostname
設定操作をhostnameのみへ制限する。
設定操作をhostnameのみへ制限する。
バグ
デフォルト設定は非常に複雑な方法で構造化されるため、それらをこのコマンドを使って入力することはユーザにとって困難になる。
履歴
NeXTStepに最初に登場した。