### 目录:
0. [准备工作](# "知识准备和软件准备,准备好了就开始下面的.")
1. [简介](# "如果你还不太清楚它是什么,从这里开始吧.")
2. [偏好文件(plist文件)](# "偏好文件(plist文件)的内容,都能写什么.")
3. [编辑plist文件举例](# "编辑plist文件举例")
4. 应用实例
5. 深入理解偏好文件
6. 常用工具
7. 问题解决
### 准备工作:
- 知识的准备:
熟悉Mac OS X系统中目录层次的表达方式,也就是说你可以在Finder窗口中, 轻松找到/Library/Preferences目录.
- 软件的准备:
安装Property List Editor程序。如果还没有,你可以从以下几个方式找到。
1. 随机的光盘中,第一张光盘里面的/Optional Installs/Xcode Tools/就有, 运行XcodeTools.mpkg就可以了, 但是不能保证是最新的程序.
1. 到download.csdn.net的[PropertyListEditor](http://download.csdn.net/source/1382942 "Property List Editor")下载, 地址<http://download.csdn.net/source/1382942>. 这个程序是随10.5.6系统盘的XcodeTools的.
1. Apple的官方网站下载,参见http://developer.apple.com/mac/, 这里下载的肯定是最新的程序.
### 简介:
在Mac的OS X系统里,你点击左上角苹果菜单,里面就有一个叫做System Preferences的选项.在其它的程序中,比如Safari, iPhoto等,点击该程序名称菜单,也会看到一个类似的菜单选项:Preferences...。那么什么是Preferences(偏好)呢?
其实,普遍意义上来说就是一种配置(配置文件,ConfigurationFile)。对于不同的程序和不同的操作系统,它们所支持的配置是以不同方式存储在系统上的,比如说,PC机的BIOS也是一种计算机硬件的配置,它存储在计算机的CMOS里; 对于大家熟悉的Windows系统, 系统本身使用Registry的方式存储系统/用户/应用程序的配置信息,比如说登陆运行程序/桌面背景等等,都是存储在那里,Windows系统的Registry是存储在多个二进制加密的文本文件中的,用于存储不同的系统/用户配置信息;而在Mac OS X系统中,采用的是一种文本或二进制XML格式的文件格式,一般来说文件的后缀名是.plist,所以也叫plist文件,比如浏览器Safari的默认主页就是存储在com.apple.safari.plist文件中的HomePage项中.当然plist文件在Mac OS X中已经不仅仅作为一种配置文件了.
普通的应用程序也有自己的配置文件,用于存储程序默认的参数和数据以及用户自定义/变更的参数,应用程序可以使用操作系统提供的机制,比如Windows的Registry和Mac OSX的plist,当然应用程序开发商可以根据自己的需要或爱好使用别的任何文件格式存储,比如古老的.ini文本文件等。
在Mac OSX系统中对plist文件的支持,最开始是使用Text文本格式的,这样用户可以使用任意的文本编辑软件就可以打开编辑。后来为了效率考虑,从10.2开始引入了二进制Binary的格式,这样可以提高系统读取速度,而plutil命令行工具就是从这时开始引入的--后面有相关介绍. 而从10.4Tiger系统之后,系统默认的plist文件都是二进制格式的了.
### 偏好文件(plist文件):
我们知道了大多数的偏好配置都储存在plist文件中,那么我们就看看plist文件的样子.
下面的内容就是一个最简单的最基本的plist文本文件的内容:
<table id="lnkk" style="width: 100%;" border="1" cellspacing="0" cellpadding="3" bordercolor="#000000"><tbody><tr><td width="100%"><?xml version="1.0" encoding="UTF-8"?><br/><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><br/><plist version="1.0"><br/><dict/><br/></plist><br/></td></tr></tbody></table>
它在Property List Editor中是下图的样子:
[![](image/56a5a6111e864.jpg)](http://docs.google.com/File?id=dfm3jbw9_157c22w9pf3_b)
### 编辑plist文件举例:
可以通过上面提到的Property List Editor程序编辑一个plist文件。首先我们记住:plist文件内容是由一系列的属性名和对应的值通过一定的顺序组合组成的。
下面只是举一个简单的例子,通过例子大家可以熟悉plist文件的树状结构和支持的数据类型等特性。
运行Property List Editor程序后,看到的是下图的内容,在按钮下面是三列的空表,三列分别是:Peroperty List,Class, Value. 其中Peroperty List就是属性名称列表;Class是定义该属性的类型,plist文件支持好多种类型,这一点后面说;Value就是该属性的值。
[![](image/56a5a6271b00c.jpg)](http://docs.google.com/File?id=dfm3jbw9_164hbmv834f_b)
首先, 我们需要创建一个根,点击New Root按钮, 系统生成一个属性名叫Root, 类型是Dictionary(字典), Value是一个不可编辑的默认是"0 key/value pairs"的一行.
[![](image/56a5a63cef4f2.jpg)](http://docs.google.com/File?id=dfm3jbw9_165ddb5tjdv_b)
我们用鼠标点击这个Root. 上面的New Root按钮变成了New Sibling,但是是灰色禁止的,也就是说plist文件只能由一个Root,它没有兄弟。为了能在Root下面添加它的子属性,在Root左边有一个向右的小三角, 用鼠标点击它,它变成了向下的三角, 也就是告诉程序,这时上面的New Sibling按钮就变成的NewChild了,我要编辑/查看它的子属性。所以对于可以添加子属性的属性,一定要首先打开它才能对它编辑,这是以后要用到的。
[![](image/56a5a652b6d59.jpg)](http://docs.google.com/File?id=dfm3jbw9_166gsjkrct2_b)
先面先来建立一个简单的属性,点击New Child,在走边列给它一个名称,叫Background, 中间列选String, 也就是一个字符串类型,最右面写入该属性的值,比如~/Pictures/Background.jpg.
[![](image/56a5a66884d6c.jpg)](http://docs.google.com/File?id=dfm3jbw9_162hrr5zjc2_b)
现在Background是选中的,上面的按钮是“New Sibling”, 点击它, 并给它Childs的属性名,点击类型列,会出现上图的所支持的所有类型的列表,选择Array的类型,也就是数组类型,大家知道数组是一个相同属性的值组成的一列,每个值按照0,1, 2...的顺序排列,所以,点击它左面的三角打开它后,每添加一个它的子属性,系统会自动为每个子属性设定一个数字的属性名,我们分别建立两个子属性,每个都是字符串string类型, 值分别是Son, Daughter.
选定Root, 再建立一个子属性,叫做Country, 属性是Dictionary, 它的子属性有三个, 分别是CA, CN, UN, 数值类型都是数字Number, 值分别是0, 1, 2。
再在Root下面建立一个子属性,叫做MyData, 属性是Data, 内容可以自己填写.
再建立一个Root的子属性,叫做Today, 属性是Date, 程序自动填上当天的日期.
最后建立一个Root的子属性,叫做AmITony, 属性是布尔Boolean,也就是是否, 默认是Yes。
完成上面的工作后,我们得到的是如下图的一个plist文件.
[![](image/56a5a67e6b1b2.jpg)](http://docs.google.com/File?id=dfm3jbw9_169cr3d6fgg_b)
有兴趣的可以保存这个plist文件,并用文本编辑器打开,看看里面的结构.
- 前言
- Mac OS X:如何将个人文件夹从默认卷移到其他卷(适合OSX10.5 Leopard)
- Mac OS X:Finder菜单中的Connect to Server选项禁止和打开
- Mac OS X: 苹果机支持的分区表类型及问题解决
- Mac OS X: 偏好Preferences基础(1)
- Mac OS X: 如何变更Office for Mac的注册码
- Mac OS X: 禁止/防止网络用户复制app程序到桌面
- Mac OS X: 用户帐户的选择
- Mac OS X: 实用脚本程序(bash scripts)系列
- Mac OS X: 共享iPhoto图片
- Mac OS X: 实用脚本程序(bash scripts)系列-2
- Mac OS X: 实用脚本程序(bash scripts)系列-3
- Mac OS X: 实用脚本程序(bash scripts)系列-4
- Mac OS X: 实用脚本程序(bash scripts)系列-5
- Mac OS X: 实用脚本程序(bash scripts)系列-6
- Mac OS X:升级rsync和同步应用实例
- Mac OS X: XAMP在Mac上的实现
- Mac OS X瘦身多法
- Mac OS X 10.5快速系统部署实践-计划(2) v1
- Mac OS X 10.5快速系统部署实践-制作核心系统镜像(1) v1
- Mac OS X数据备份方案一例
- Mac OS X数据备份方案一例(2)
- Mac OS X 10.5快速系统部署实践-制作核心系统镜像(2) v1
- Mac OS X: 打印系统治疗
- Mac OS X:禁止崩溃报告
- Mac OS X:Snow Leopard的几个改动(管理员相关)
- Mac OS X排错:雪豹的最新更新Airport可能不支持无线802.11n网络
- Mac OS X:雪豹内置支持读写NTFS卷
- Mac OS X:定制生成新用户的程序包
- Mac OS X:在Windows里面使用命令行设置启动系统
- Mac OS X: 实用脚本程序(bash scripts)系列-7
- Mac OS X:一种从APP中获得PKG的方法
- Mac OS X: bash脚本实现添加无线SSID(Update2009-10-09)
- Mac OS X: 实用脚本程序(bash scripts)系列-8
- Mac OS X 10.5快速系统部署实践-制作核心系统镜像(4) v1
- Mac OS X: 彻底删除GeekTool(bash脚本)
- Mac OS X: 实用脚本程序(bash scripts)系列-9
- 把你的Leopard变成Mac OS X的系统发布服务器(1)
- 把你的Leopard变成Mac OS X的系统发布服务器(2)
- 把你的Leopard变成Mac OS X的系统发布服务器(3)
- Mac OS X: 访问控制远程CUPS服务
- Mac &amp; Win混合平台访问和工具
- Mac OS X: DeployStudio更新v1.0rc16
- Mac: 想当Apple菜鸟不容易(1)
- Mac: 想当 Apple菜鸟不容易(2)
- Mac: 想当 Apple菜鸟不容易(3)
- Mac: 想当 Apple菜鸟不容易(4完)
- Mac电脑上处理摄像机上的存储内容
- Mac OS X: Google自动更新程序的卸载
- 雪豹系统和SMB不兼容的问题的解决汇总
- Mac OS X: 实用脚本程序(bash scripts)系列-10
- Mac OS X:MagicPrefs介绍
- Mac OS X: 系统部署后程序安装的用户提示
- Mac OS X:开启单程序模式
- Mac OS X: 在脚本里关闭Airport
- Mac笔记本电池:十点建议和其它
- Mac OS X: Launchd执行程序的一个例子
- Mac OS X:修改SMART Utility期限限制
- Mac OS X:网络用户环境个性配置实例
- Mac OS X:强制退出CD/DVD盘
- Mac OS X: launchd plist在线编辑器
- Mac OS X: 实用脚本程序(bash scripts)系列-11
- Mac OS X: 实用脚本程序(bash scripts)系列-12
- Mac: 卸载Safari 5.0.2
- Mac OS X: 实用脚本程序(bash scripts)系列-13
- Mac OS X: 文件图标制作和变更(Resource Fork)
- Mac OS X 10.6.6更新之后NTFS只读的解决
- Mac: 网络用户遇到Adobe Reader 9.x/10.x异常退出的解决
- Mac OS X: airport命令的参数
- Mac OS X的Spotlight综述
- Mac OS X:AFP和SMB共享配置详细配置
- Mac OS X:详细解读Munki和应用
- Mac OS X:显示/设置分辨率的命令(源程序)
- Mac OS X: 是否升级到Lion?
- OSX: 禁止Flash Player 10.3自动更新
- OSX脚本:禁止系统自动添加AppStore图标到用户Dock上
- 狮子GM版本的安装
- OS X Lion狮子安装盘的初步研究
- OS X Lion狮子的恢复盘的删除二法
- OSX: Finder的侧边栏(Sidebar)不显示已装载的网络共享
- OSX:隐藏文件或文件夹
- OS X: 实用脚本程序(bash scripts)系列-13
- OS X: 实用脚本程序(bash scripts)系列-14
- OSX:Lion支持登录窗口的Policy Banner
- OSX: 让狮子说中文