For Unix and Linux users, OS X is more of a lateral move, thanks to OS X’s BSD underpinnings. Unfortunately with all the market-speak it may drive some smart engineer-types away from trying it out, since all of the every day things you live with is either buried deep in the developer documentation or behaves strangely out of the box.

I haven’t found a document that covers this all together, so here it is, the basics to get comfortable if you’re a command-line type of guy:

technorati tags:


GCC and Friends, provided to you by Apple

First, make sure you install the Developer Tools. They are on your installation DVDs. The reason you want to install this even if you’re a command line guy is because GCC, the make system and cvs are part of these tools. And you also get all the libraries to link to Aqua and the rest of OSX, as well as the POSIX stuff. Sign up to the Apple Developer Connection to download newer sets of development tools, or just wait for software update to kick in after installing the one on the DVD.

X11 (because Aqua is not X)

Also install X11. The OS X UI is not an X server, but your developer disks have one. This allows you to run things like the Gimp and other Unix Apps that require X11. The feel is disconnected in a way that is similar to the Xorg in cygwin under Windows, though it works out quite a bit better than that.

The Good Stuff via Ports

Next, install the Ports System. Since OS X is a BSD based system, the ports system is available but not installed.

Now just use the ports system to download, compile and install what you need:


~ yourname$ port list
... there's all your software options
~ yourname$ port install dos2unix

If your hard disk is very big, you can always use “all” to install everything, then go get a cup of coffee.

You can also try Fink which has more software but it seems to have more problems.

Make the Terminal Behave

If you’re a Linux bash user, by now you’ve played enough with Terminal to find out that it ships with a lot of the bash navigation keys broken. I don’t know why that is, but it’s just a matter of telling Terminal to use the correct escape sequences. First, set your terminal type on the .bashrc to dtterm. Next follow this advice to set the control sequences of the control-arrow keys to something sensible.

There. Now your bash won’t drive you crazy (although when logging in to other machines you may get problems if dtterm is not in the termcap – just switch it back to xterm for those machines with a simple export).

Other Stuff

There you go, have fun! These are other apps that as a Unix user I’ve found useful:

  • Growl – This is a bit of a de-facto standard for “tray-like” notifications. It has a growlnotify command line option so you can notify the UI if you are running stuff on the command line.
  • QuickSilver – You’d rather type, right? Then quicksilver is for you. Bind it to a key and you’ll have an excellent “type and quickly get there” interface for your desktop. Be warned though – some of those plugins can make it use up a lot of RAM. Add plugins slowly and gradually, keeping your eye on top (yes, there’s top) or the Activity Monitor.