我想探索可以通过 OS X(ML) 中的“默认写入”命令完成的一些新调整。
我该怎么做才能自己找到它们,而不是在线搜索已知的调整?
答案1
免责声明:我是~/.osx
defaults write
,设置集合。这些是我用来查找设置的技术。如果有我未在此处提及的更好/更简单的方法,请告诉我!
对于大多数非隐藏设置,您可以按照以下方法在 Terminal.app 中找到正确的首选项键:
defaults read > a
# Change the setting
defaults read > b
diff a b
对于隐藏设置,情况就比较棘手了。您可以在任何二进制可执行文件上使用命令行实用strings
程序,看看结果文本中是否有任何文本看起来像首选项键。例如:
strings /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
这是另一个示例,它将查看所有.framework
文件/System/Library/Frameworks/
并在一定程度上过滤输出:
strings /System/Library/Frameworks/*.framework/Versions/Current/* /System/Library/Frameworks/*/Frameworks/*/Versions/Current/* 2> /dev/null | grep -E '^[a-zA-Z0-9_.-]{10,80}$' | sort | uniq
还有一个名为地理数据库可用于查找隐藏的偏好设置。
答案2
另一个字符串命令:
for f in $(mdfind kMDItemContentType==public.unix-executable -onlyin /System/Library/); do strings $f 2> /dev/null | grep -E '^[[:alnum:]_.-]{10,80}$' | grep ^Apple | sort -u | sed "s/^/${f##*/} /g"; done
sudo opensnoop -n cfprefsd
显示修改了哪些属性列表。您可以使用七人实时显示其他文件系统的变化。
defaults 有一个 find 子命令:
$ defaults find nsquitalw
Found 1 keys in domain 'Apple Global Domain': {
NSQuitAlwaysKeepsWindows = 1;
}
头文件通常包含首选项键的定义:
grep PreferenceKey -r ~/Code/Source/WebKit/ | grep '\.h:'
答案3
我从你的问题中推断出你想要探索应用程序的调整/设置。你可以用这个简单的命令读取应用程序的偏好设置
defaults read NSGlobalDomain
或者
defaults read com.google.Chrome
从您要求的默认写入命令中读取 chrome 可写首选项。