
Untitled
By: a guest on
Aug 21st, 2012 | syntax:
None | size: 1.77 KB | hits: 20 | expires: Never
## Why?
When working on a remote machine, or a machine that doesn't have a GUI plist editor on it, the command line may be your only or best option.
There are two options present on OS X to help you.
# `default`
Using the `default` command on OS X can help you get around.
## Reading a plist
`-bash-3.2$ defaults read ~/.MacOSX/environment
{
PATH = "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin";
}`
## Updating a value in a plist
`-bash-3.2$ defaults write ~/.MacOSX/environment PATH "/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"
-bash-3.2$ defaults read ~/.MacOSX/environment
{
PATH = "/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin";
}`
# `PlistBuddy`
### Reading a plist
`[travelant:~] markhers% /usr/libexec/PlistBuddy /tmp/test.plist
Command: Print
Dict {
PATH = /usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin
}`
### Writing to a plist
`[travelant:~] markhers% /usr/libexec/PlistBuddy /tmp/test.plist
File Doesn't Exist, Will Create: /tmp/test.plist
Command: Add :PATH string "/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"
Command: Print
Dict {
PATH = /usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin
}
Command: Save
Saving...
Command: exit
[travelant:~] markhers% cat /tmp/test.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin</string>
</dict>
</plist>
`