Mac OS X

This page provides tips of Mac OS X such as useful commands for your work. We believe these tips might be useful for users and engineers.

Note: We are migrating the information on this page to another this page and pages linked from there.

Search from the Internet:
Custom Search

Mac OS X Tips

Useful commands on Mac OS X

Locate database

In some unix-like operating systems, a periodic batch script maintains a locate database by default. However, Mac OS X does not. To create the locate database and maintain it periodically, you can execute the following command:

$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

Note that the file /System/Library/LaunchDaemons/com.apple.locate.plist defines the update period of the locate database, so you can change some parameters if you need. By default, the locate database would be updated every week (3:15 AM, Sat.).

Enabling IPv6 temporary address on Mac OS X

On Mac OS X (of version <=10.6.4, as far as we know), IPv6 temporary address is disabled by default. From the point view of privacy, it may be recommended to use temporary address instead of EUI-64 IPv6 address because EUI-64 IPv6 address, which is automatically generated from MAC address, reveals the hardware identity (i.e., MAC address).

Background image on login screen

As far as we know as of August 2010, we cannot change the background image on login screen (just after startup) via "System Preferences.app". We can change it by replacing the file /System/Library/CoreServices/DefaultDesktop.jpg by your preferred JPEG file.

Optimizing Mail.app on Mac OS X

The Mail.app on Mac OS X started to use sqlite for its mail indexing from one version; I'm not sure about the date/version, but it was maybe from Leopard or Snow Leopard of Mac OS X. We confirmed this with Version 4.3 (1081) of Mail.app.

Sqlite makes cache etc., and consequently, we should periodically run vacuum command not to make it slow, as follows:

  1. Quit Mail.app
  2. Open database with sqlite:
    $ sqlite3 ~/Library/Mail/Envelope\ Index
  3. Run vacuum command:
    sqlite> vacuum subjects;
  4. Exit from sqlite CLI:
    .quit

Scanning IEEE802.11 wireless networks

IEEE802.11 wireless networks can be scanned by the following command:

$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s

If you want to know detailed information on what you are connecting to, type the command with option -I:

$ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I

When you want to sniff IEEE802.11 traffic, type the following command:

$ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport <interface> sniff <channel>

Turning on/off SOCKS proxy via Terminal.app (or your shell)

To turn on the socks proxy for Ethernet or AirPort, execute the following command:

$ networksetup -setsocksfirewallproxystate <Ethernet|AirPort> on

To turn off it, do as follows:

$ networksetup -setsocksfirewallproxystate <Ethernet|AirPort> off

You can check the current status of your proxy setting by the following command:

$ networksetup -getsocksfirewallproxy <Ethernet|AirPort>

Configuring nameservers via Terminal.app (or your shell)

In *BSD/Linux operating systems, nameservers are generally configured in the file /etc/resolv.conf However, in Mac OS X, this setting conflicts that of Network Preferences, and consequently, we need to use an alternative. The following command is to obtain current nameserver configuration:

$ networksetup -getdnsservers <Ethernet|AirPort>

To set new nameserver(s), type as follows:

$ networksetup -setdnsservers <Ethernet|AirPort> <nameserver's IP address>

To delete the manual configuration (i.e., to reset DNS configuration) you can use the keyword empty:

$ networksetup -setdnsservers <Ethernet|AirPort> empty

Launching TFTP server

Mac OS X has a TFTP server software, but it is disabled by default. You can launch the TFTP server as follows.

$ sudo launchctl
launchd% load -F /System/Library/LaunchDaemons/tftp.plist

You can stop the TFTP server by the following command.

$ sudo launchctl
launchd% unload /System/Library/LaunchDaemons/tftp.plist

The default root directory is /private/tftpboot, and you can change this root directory by editing an entry with key "ProgramArguments" in /System/Library/LaunchDaemons/tftp.plist. Other options can be used by adding arguments there. You can find details of the options at a man page of tftpd(8).

Note that you must give write permission for others to files onto which you overwant to write contents from tftp clients.