Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

mac:defaults [2011/04/01 08:44]
127.0.0.1 external edit
mac:defaults [2011/04/17 00:17] (aktuell)
wikisysop
Zeile 28: Zeile 28:
 <fs 1.2em>​**Die Modis:​**</​fs>​ <fs 1.2em>​**Die Modis:​**</​fs>​
  
-  * <fc #​800000>​**read:​**</​fc>​ Werden Domain und Schlüssel weggelassen,​ erfolgt die Ausgabe sämtlicher Einstellungen des Benutzers -> <fc #​008000>​defaults read</​fc>​. Dabei kommt es aber zu einer Datenflut, die im ersten Blick nur bedingt brauchbar erscheint aber man kann sich das auch zu Nutze machen; weiter unten dazu mehr. Ohne Angabe eines Schlüssels werden alle vorhandenen Einstellungen einer angegebenen Domain angezeigt -> <fc #​008000>​defaults read org.mozilla.firefox</​fc>​. Kennen Sie den Namen des Schlüssels bereits, können Sie diesen gezielt abfragen:\\ \\ <​xterm>​pronto-macpro:​~ pronto$ <fc #9acd32>​defaults read org.mozilla.Firefox NSNavLastRootDirectory</​fc> ​(cr) +  * <fc #​800000>​**read:​**</​fc>​ Werden Domain und Schlüssel weggelassen,​ erfolgt die Ausgabe sämtlicher Einstellungen des Benutzers -> <fc #​008000>​defaults read</​fc>​. Dabei kommt es aber zu einer Datenflut, die im ersten Blick nur bedingt brauchbar erscheint aber man kann sich das auch zu Nutze machen; weiter unten dazu mehr. Ohne Angabe eines Schlüssels werden alle vorhandenen Einstellungen einer angegebenen Domain angezeigt -> <fc #​008000>​defaults read org.mozilla.firefox</​fc>​. Kennen Sie den Namen des Schlüssels bereits, können Sie diesen gezielt abfragen:\\ \\ <​xterm>​$ <fc #008000>​defaults read org.mozilla.Firefox NSNavLastRootDirectory</​fc>​  
-<fc #ffff00>​~/​Desktop</​fc></​xterm>​+<fc #0000FF>​~/​Desktop</​fc></​xterm>​
  
-  * <fc #​800000>​**read-type:​**</​fc>​ Schlüssel sind immer Strings, der dazugehörige Wert aber kann ausserdem ein Dictionary, Array oder Binärdaten sein. Mit <fc #​008000>​read-type</​fc>​ lässt sich der Typ eines Schlüssels in Erfahrung bringen. Dieser ist notwendig, wenn Sie den Wert eines Schlüssels mit dem  Modus write ändern oder setzen wollen:\\ \\ <​xterm>​pronto-macpro:​~ pronto$ <fc #9acd32>​defaults read-type org.mozilla.Firefox NSNavLastRootDirectory</​fc> ​(cr) +  * <fc #​800000>​**read-type:​**</​fc>​ Schlüssel sind immer Strings, der dazugehörige Wert aber kann ausserdem ein Dictionary, Array oder Binärdaten sein. Mit <fc #​008000>​read-type</​fc>​ lässt sich der Typ eines Schlüssels in Erfahrung bringen. Dieser ist notwendig, wenn Sie den Wert eines Schlüssels mit dem  Modus write ändern oder setzen wollen:\\ \\ <​xterm>​$ <fc #008000>​defaults read-type org.mozilla.Firefox NSNavLastRootDirectory</​fc>​  
-<fc #ffff00>Type is string</​fc>​ +<fc #0000FF>Type is string</​fc>​ 
-pronto-macpro:​~ pronto$ <fc #9acd32>​defaults read-type com.apple.finder _FXShowPosixPathInTitle</​fc> ​(cr) +$ <fc #008000>​defaults read-type com.apple.finder _FXShowPosixPathInTitle</​fc>​  
-<fc #ffff00>Type is boolean</​fc></​xterm>​+<fc #0000FF>Type is boolean</​fc></​xterm>​
  
   * <fc #​800000>​**rename:​**</​fc>​ Der Name eines vorhandenen Schlüssels wird in diesem Modus umdeklariert. zB <fc #​008000>​defaults rename com.apple.finder _FXShowPosixPathInTitle ShowPath</​fc>​ würde den Schlüssel <fc #​008000>​_FXShowPosixPathInTitle</​fc>​ in <fc #​008000>​ShowPath</​fc>​ umbenennen, den Wert des Schlüssels aber beibehalten.   * <fc #​800000>​**rename:​**</​fc>​ Der Name eines vorhandenen Schlüssels wird in diesem Modus umdeklariert. zB <fc #​008000>​defaults rename com.apple.finder _FXShowPosixPathInTitle ShowPath</​fc>​ würde den Schlüssel <fc #​008000>​_FXShowPosixPathInTitle</​fc>​ in <fc #​008000>​ShowPath</​fc>​ umbenennen, den Wert des Schlüssels aber beibehalten.
Zeile 40: Zeile 40:
   * <fc #​800000>​**delete:​**</​fc>​ Löscht sämtliche Informationen der gesamten Domain, wenn nur diese übergeben wird. <fc #​008000>​defaults delete org.mozilla.firefox</​fc>​ setzt den Internetbrowser Firefox auf seine Standardeinstellungen zurück. Das käme dem Workaround des Löschens der gesamten Preferences Datei gleich.   * <fc #​800000>​**delete:​**</​fc>​ Löscht sämtliche Informationen der gesamten Domain, wenn nur diese übergeben wird. <fc #​008000>​defaults delete org.mozilla.firefox</​fc>​ setzt den Internetbrowser Firefox auf seine Standardeinstellungen zurück. Das käme dem Workaround des Löschens der gesamten Preferences Datei gleich.
  
-  * <fc #​800000>​**domains:​**</​fc>​ Es werden alle vorhandenen Domains in einer Komma separierten Liste angezeigt. Da die Ausgabe recht unübersichtlich ist braucht es weitere Tricks, um sie leserlich und somit brauchbar zu gestalten. Das [[tux:tr| -> tr-Kommando]]((http://​wiki.unixboard.de/​index.php/​ManPage:​tr)) wird dabei verwendet um Zeichen zu ersetzen. Hier wird das Komma <fc #​008000>','</​fc>​ in der Ausgabe von <fc #​008000>​defaults domains</​fc>​ (ohne weiterer Kommandos) mit einem Zeilenvorschub <fc #​008000>'​\n'</​fc>​ ersetzt. Das <fc #​008000>​nl-Kommando</​fc>​((http://​unixhelp.ed.ac.uk/​CGI/​man-cgi?​nl)) nummeriert jede Zeile:\\ <​xterm>​pronto-macpro:​~ pronto$ <fc #9acd32>​defaults domains | tr ','​ '​\n'​ | nl</​fc> ​(cr)+  * <fc #​800000>​**domains:​**</​fc>​ Es werden alle vorhandenen Domains in einer Komma separierten Liste angezeigt. Da die Ausgabe recht unübersichtlich ist braucht es weitere Tricks, um sie leserlich und somit brauchbar zu gestalten. Das [[tux:tr| -> tr-Kommando]]((http://​wiki.unixboard.de/​index.php/​ManPage:​tr)) wird dabei verwendet um Zeichen zu ersetzen. Hier wird das Komma <fc #​008000>','</​fc>​ in der Ausgabe von <fc #​008000>​defaults domains</​fc>​ (ohne weiterer Kommandos) mit einem Zeilenvorschub <fc #​008000>'​\n'</​fc>​ ersetzt. Das <fc #​008000>​nl-Kommando</​fc>​((http://​unixhelp.ed.ac.uk/​CGI/​man-cgi?​nl)) nummeriert jede Zeile: 
 + 
 +<​xterm>​$ <fc #008000>​defaults domains | tr ','​ '​\n'​ | nl</​fc> ​
      1 DVD Ripper for Mac      1 DVD Ripper for Mac
      2 Icns2Rsrc      2 Icns2Rsrc
Zeile 71: Zeile 73:
   * <fc #​800000>​**write:​**</​fc>​ Dieser Modus erfordert alle Argumente, wenn ein Schlüssel geändert werden soll. Das Kommando <fc #​008000>​defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES</​fc>​ zB zeigt im Finder Fenster Titel den vollständigen UNIX Pfad an.\\ \\ Bei Strings ist die Angabe des Schlüsseltyps nicht erforderlich,​ bei anderen Typen gibt es die Flags <fc #​008000>​-bool</​fc>​ mit den Werten <fc #​008000>​YES/​NO</​fc>​ bzw. <fc #​008000>​TRUE/​FALSE</​fc>​. <fc #​008000>​-int</​fc>​ für Ganzzahlen, <fc #​008000>​-float</​fc>​ für Gleitkommazahlen,​ <fc #​008000>​-array</​fc>​ für Felder, <fc #​008000>​-dict</​fc>​ für Dictionarys und <fc #​008000>​-data</​fc>​ für Hexadezimalzahlen. Beispiele finden Sie im folgenden Artikel: [[:​mac:​defaults_tweaks|->​ Plist Tweaks]]   * <fc #​800000>​**write:​**</​fc>​ Dieser Modus erfordert alle Argumente, wenn ein Schlüssel geändert werden soll. Das Kommando <fc #​008000>​defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES</​fc>​ zB zeigt im Finder Fenster Titel den vollständigen UNIX Pfad an.\\ \\ Bei Strings ist die Angabe des Schlüsseltyps nicht erforderlich,​ bei anderen Typen gibt es die Flags <fc #​008000>​-bool</​fc>​ mit den Werten <fc #​008000>​YES/​NO</​fc>​ bzw. <fc #​008000>​TRUE/​FALSE</​fc>​. <fc #​008000>​-int</​fc>​ für Ganzzahlen, <fc #​008000>​-float</​fc>​ für Gleitkommazahlen,​ <fc #​008000>​-array</​fc>​ für Felder, <fc #​008000>​-dict</​fc>​ für Dictionarys und <fc #​008000>​-data</​fc>​ für Hexadezimalzahlen. Beispiele finden Sie im folgenden Artikel: [[:​mac:​defaults_tweaks|->​ Plist Tweaks]]
  
-  * <fc #​800000>​**find:​**</​fc>​ Mit <fc #​008000>​find</​fc>​ kommen wir zu einem äusserst nützlichen Modus. Da, wie ich oben bereits erwähnte, das Defaults System schlecht dokumentiert ist, wie ich finde und manchmal nicht klar ist, in welche Preferences Datei eine bestimmte Einstellung geschrieben wird, muss man sich selbst auf die Suche machen. find - wie der Name schon sagt - kann mit weiteren kleinen Tricks dafür verwendet werden. Der Modus find durchsucht das gesamte Defaults System nach einen Stichwort, dabei werden Domainnamen,​ Schlüsselnamen und Werte berücksichtigt.\\ \\ Eine Möglichkeit die Änderungen am System bei einer bestimmten Einstellung in den Preferences Files nachzuvollziehen besteht darin, das Defaults System vor und nach seiner Änderung miteinander zu vergleichen. Es macht Sinn alles für dieses Vorhaben vorzubereiten,​ da schon alleine das Öffnen bestimmter PrefPanes eine Vielzahl von Änderungen im Defaults System vornimmt, die unser Ergebnis verfälschen könnten oder die Suche nach den eigentlich interessanten Dingen erschweren.\\ \\ Ich demonstriere das hier mal am Beispiel der Änderung des Systems Warntons in den Systeimstellungen im <fc #​008000>​PrefPane Ton</​fc>​. Zuerst werden die kompletten Systemeinstellungen in eine Datei <fc #​008000>​»vor«</​fc>​ geschrieben (-> <fc #​008000>​defaults read > vor</​fc>​). Im Anschluss wird die Änderung in den Systemeinstellungen vorgenommen,​ dann werden erneut die kompletten Systemeinstellungen in eine Datei <fc #​008000>​»nach«</​fc>​ geschrieben (-> <fc #​008000>​defaults read > nach</​fc>​). Zuletzt werden diese beiden Dateien miteinander verglichen (-> <fc #​008000>​diff vor nach</​fc>​):​\\ <​xterm>​pronto-macpro:​tmp pronto$ <fc #9acd32>​defaults read > vor</​fc> ​(cr)+  * <fc #​800000>​**find:​**</​fc>​ Mit <fc #​008000>​find</​fc>​ kommen wir zu einem äusserst nützlichen Modus. Da, wie ich oben bereits erwähnte, das Defaults System schlecht dokumentiert ist, wie ich finde und manchmal nicht klar ist, in welche Preferences Datei eine bestimmte Einstellung geschrieben wird, muss man sich selbst auf die Suche machen. find - wie der Name schon sagt - kann mit weiteren kleinen Tricks dafür verwendet werden. Der Modus find durchsucht das gesamte Defaults System nach einen Stichwort, dabei werden Domainnamen,​ Schlüsselnamen und Werte berücksichtigt.\\ \\ Eine Möglichkeit die Änderungen am System bei einer bestimmten Einstellung in den Preferences Files nachzuvollziehen besteht darin, das Defaults System vor und nach seiner Änderung miteinander zu vergleichen. Es macht Sinn alles für dieses Vorhaben vorzubereiten,​ da schon alleine das Öffnen bestimmter PrefPanes eine Vielzahl von Änderungen im Defaults System vornimmt, die unser Ergebnis verfälschen könnten oder die Suche nach den eigentlich interessanten Dingen erschweren.\\ \\ Ich demonstriere das hier mal am Beispiel der Änderung des Systems Warntons in den Systeimstellungen im <fc #​008000>​PrefPane Ton</​fc>​. Zuerst werden die kompletten Systemeinstellungen in eine Datei <fc #​008000>​»vor«</​fc>​ geschrieben (-> <fc #​008000>​defaults read > vor</​fc>​). Im Anschluss wird die Änderung in den Systemeinstellungen vorgenommen,​ dann werden erneut die kompletten Systemeinstellungen in eine Datei <fc #​008000>​»nach«</​fc>​ geschrieben (-> <fc #​008000>​defaults read > nach</​fc>​). Zuletzt werden diese beiden Dateien miteinander verglichen (-> <fc #​008000>​diff vor nach</​fc>​):​\\ <​xterm>​$ <fc #008000>​defaults read > vor</​fc> ​
  
 <fc #​ffa500>​~~~ Änderung der Systemeinstellunge ~~~</​fc>​ <fc #​ffa500>​~~~ Änderung der Systemeinstellunge ~~~</​fc>​
  
-pronto-macpro:​tmp pronto$ <fc #9acd32>​defaults read > nach</​fc> ​(cr) +$ <fc #008000>​defaults read > nach</​fc>​  
-pronto-macpro:​tmp pronto$ <fc #9acd32>diff vor nach</​fc> ​(cr)+$ <fc #008000>diff vor nach</​fc> ​
 12124c12124 12124c12124
 <         "​com.apple.sound.beep.sound"​ = "/​System/​Library/​Sounds/​Funk.aiff";​ <         "​com.apple.sound.beep.sound"​ = "/​System/​Library/​Sounds/​Funk.aiff";​
 --- ---
->         "​com.apple.sound.beep.sound"​ = "/​System/​Library/​Sounds/​Frog.aiff";</​xterm>​ Wir sehen jetzt, das der Schlüssel <fc #​008000>​com.apple.sound.beep.sound</​fc>​ heißt und der Wert vor der Änderung <fc #​008000>/​System/​Library/​Sounds/​Funk.aiff</​fc>​ war und nach der Änderung <fc #​008000>/​System/​Library/​Sounds/​Frog.aiff</​fc>​ ist. Aber wir wissen noch nicht in welcher Domain sich dieser Schlüssel befindet. Dafür nutzen wir jetzt den find-Befehl:​\\ <​xterm>​pronto-macpro:​tmp pronto$ <fc #9acd32>​defaults find com.apple.sound.beep.sound</​fc> ​(cr) +>         "​com.apple.sound.beep.sound"​ = "/​System/​Library/​Sounds/​Frog.aiff";</​xterm>​ Wir sehen jetzt, das der Schlüssel <fc #​008000>​com.apple.sound.beep.sound</​fc>​ heißt und der Wert vor der Änderung <fc #​008000>/​System/​Library/​Sounds/​Funk.aiff</​fc>​ war und nach der Änderung <fc #​008000>/​System/​Library/​Sounds/​Frog.aiff</​fc>​ ist. Aber wir wissen noch nicht in welcher Domain sich dieser Schlüssel befindet. Dafür nutzen wir jetzt den find-Befehl:​\\ <​xterm>​$ <fc #008000>​defaults find com.apple.sound.beep.sound</​fc>​  
-Found 1 keys in domain '<​fc #ffff00>​com.apple.systemsound</​fc>':​ {+Found 1 keys in domain '<​fc #0000FF>​com.apple.systemsound</​fc>':​ {
     "​com.apple.sound.beep.sound"​ = "/​System/​Library/​Sounds/​Frog.aiff";​     "​com.apple.sound.beep.sound"​ = "/​System/​Library/​Sounds/​Frog.aiff";​
-}</​xterm>​ Wir sehen jetzt also, dass sich unser Schlüssel in der Domain <fc #​008000>​com.apple.systemsound</​fc>​ befindet. Jetzt können wir den write-Modus verwenden um unseren Test wieder auf die ursprüngliche Einstellung zurückzustellen:​\\ \\ <​xterm>​pronto-macpro:​tmp pronto$ <fc #9acd32>​defaults write com.apple.systemsound com.apple.sound.beep.sound /​System/​Library/​Sounds/​Funk.aiff</​fc> ​(cr)</​xterm>​ Und die Gegenprobe:​\\ <​xterm>​pronto-macpro:​tmp pronto$ <fc #9acd32>​defaults read com.apple.systemsound com.apple.sound.beep.sound</​fc> ​(cr) +}</​xterm>​ Wir sehen jetzt also, dass sich unser Schlüssel in der Domain <fc #​008000>​com.apple.systemsound</​fc>​ befindet. Jetzt können wir den write-Modus verwenden um unseren Test wieder auf die ursprüngliche Einstellung zurückzustellen:​\\ \\ <​xterm>​$ <fc #008000>​defaults write com.apple.systemsound com.apple.sound.beep.sound /​System/​Library/​Sounds/​Funk.aiff</​fc>​ </​xterm>​ Und die Gegenprobe:​\\ <​xterm>​$ <fc #008000>​defaults read com.apple.systemsound com.apple.sound.beep.sound</​fc>​  
-<fc #ffff00>/​System/​Library/​Sounds/​Funk.aiff</​fc></​xterm>​+<fc #0000FF>/​System/​Library/​Sounds/​Funk.aiff</​fc></​xterm>​
  
  --- //pronto 2010/05/25 20:​12// ​  --- //pronto 2010/05/25 20:​12// ​
mac/defaults.1301640280.txt.gz (23229 views) · Zuletzt geändert: 2011/04/17 00:15 (Externe Bearbeitung)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0