Compendium of macOS Command-Line Tools

There are a variety of macOS commands I can never remember. Sometimes I forget that they exist and other times I forget how I constructed their command line. The docs aren’t always helpful.

Property Lists

Turn a plist into JSON. I often do this with .webloc files. The part I forget is to specify standard output (why isn’t that the default?):

$ plutil -convert json -o - foo.webloc

Along with the, I use jq to extract the URL:

$ plutil -convert json -o - foo.webloc | jq -r .URL

Software Update

Run Software Update from the command line:

$ softwareupdate -ia --include-config-data

Start Screen Sharing

$ open vnc://user:password@host

Share a remote volume

Don’t use the Unix path for the remote side. It’s the name under /Volumes:

$ open afp://host/VolumeName

Normal URL encoding doesn’t seem to work. Instead of + for a space, use a shell escape or quote that part

$ open afp://host/Volume\ Name
$ open afp://host/'Volume Name'

Supply credentials:

$ open afp://user:pass@host/VolumeName