From Unix to Mac OS X

* Introduction
This document targets users of Unix-like operating systems (e.g., Linux, Solaris, BSD, etc.; I'll just use "Unix" below) who are moving to Mac OS X, and who expect to do a lot of Unix command line computing, including scientific software development. It especially targets users with a cross-platform workflow, i.e., users who will be working on projects both on their OS X Mac and on Unix machines. It aims to help such users become productive in OS X as quickly as possible, while providing them with background information and pointers guiding them beyond first steps.
This document is not a Mac OS primer; it presumes you've already set up your Mac and gotten the hang of the basics of OS X. You should already know what the Finder and Dock are, for example. It is also not a Unix primer for Mac users; it presumes readers are comfortable with the command line and know about Unix software development.
This document is a dynamic HTML outline (it's an export of an OmniOutliner outline where I've compiled various Unix-OS X notes). The triangular "handles" on subsequent sections can be clicked to expand or collapse content. If you're in a rush to get started, the most important material is the "Setting up OS X" section (expanded by default). You'll probably also want to at least skim these sections before you get too far along:
Background: The OS X file system
Background: Software installation
Background: System maintenance — For disk repair and data backup resources
Shell usage: Terminal, X11/xterm, and Console
Shell usage: .bashrc, .profile, and xterm
Scripting in OS X: AppleScript and opening Terminal windows
These notes are a work-in-progress, and a few sections are schematic or just stubs. I hope they're useful despite the rough edges! For a much briefer document with similar aims, see John Vernaleo's OS X as a Unix workstation (aimed at astronomers). For an alternative, similarly lengthy take on this topic, see William Scott's Basics aspects of scientific computing on OS X (aimed at crystallographers).
—Tom Loredo
> Background
> Shell usage
> Scripting in OS X
V Setting up OS X
Your Mac comes ready to use—for most users! For Unix-savvy users who plan to spend lots of time in a terminal, and who plan to develop software, there's a bit of work to be done to get a usable Unix development environment. Here are my suggestions for how to set up your Mac to quickly get productive.
* Partition your hard drive
Your Mac comes with its hard drive formatted as a single partition. This is most likely fine for most users. But if you think you may want to use multiple partitions, now is the time to plan your hard drive organization. OS X's Disk Utility application (mentioned above, in Background: System maintenance) is the tool to use to partition your hard drive. But it does not support "live" altering of partitions; you'll have to reinstall everything on your hard drive if you use Disk Utility to repartition it. There are 3rd-party tools available that support live partition adjustments, but even those tools recommend backing up all your drive contents before altering a partition. To save yourself extra work, you might as well think hard about partitions now, before you start filling your hard drive with software and documents.
Just as examples, here are three ideas for additional partitions (besides your default OS X system partition) to consider. A Google search for "'OS X' partitions" will turn up other ideas for partitioning.
Bare bones OS - Disk Utility is the "first call" disk repair tool, but it cannot repair the partition it is running from (neither can 3rd-party disk repair tools), so if your main system partition develops a problem, you will need to boot from a different volume to repair it. With a desktop machine, you're likely to have your system installation media handy; you can boot from the OS X install disk and run Disk Utility from it to do any needed repairs. With laptops, you may not have your installation disc handy. If you have lots of spare disk space, consider setting aside a few gigabytes for a "bare bones" OS X installation that you can boot from in the off chance you'll need to repair you main drive. Such a partition might also be handy if you need to test installations of software you are developing into a "clean" environment. Even on my desktop Mac, I maintain such a partition (on a second hard drive).
Media - If you plan on using your Mac for audio or video authoring and editing, consider devoting a partition solely to the large media files you'll be working on, to avoid performance penalties from fragmentation. Ideally you would put such media in a separate drive from your system drive, so your authoring application isn't competing for disk access resources with the media itself. Even if you are not authoring media, but expect to compile a large media library (of music, photos, or video), consider devoting a partition to these files to simplify your backup routine. If you use Apple's software to access and organize your media (iTunes, iPhoto, etc.), you can use each application's Preferences menu item to specify where you'd like to maintain your media store.
Projects - Since OS X stores important directories in a user's home directory, I like to keep all my projects and documents in a separate volume. This insures that I won't mess with the OS X directories in the course of my day-to-day work, and it also simplifies my backup routine: I just have to maintain a clone of the whole Projects volume (I back up my home directory and the OS X system directory less frequently).
If you do repartition your Mac, you'll have to re-install OS X on it. Your Mac should have come with instructions for this. Briefly: boot from your install disc (put the disk in your optical drive, turn on your Mac, and hold down the "C" key); the installer will lead you through the straightforward installation process.
* Run Software Update
Apple may have released updates to OS X since the time it was installed on your Mac. Run Software Update (from the Apple menu) to check for any pending updates; install any you need (for example, you might ignore iPod-related updates if you don't use an iPod). See the System Maintenance section, above, for more info on Software Update.
V Install additional Apple software
* X11
Make sure Apple's X11 server is installed on your Mac. Look for it in Applications/Utilities. If an application named X11 is not there, use your system install media to install it (you will have to click the "Customize" button during the install process to get the menu allowing you to select X11). For very early versions of OS X, you may need to obtain the compatible Apple's X11 as a separate download if it was not included on your install media.
V Xcode/Developer tools from ADC
Apple provides a free suite of developer tools for OS X, known originally as "Developer Tools," but more recently as "Xcode" (also the name of one of the tools in the suite). It includes standard Unix development tools like gcc and gdb, many libraries, as well as numerous sophisticated OS X-specific development tools. It lacks a Fortran compiler, however. To get gcc and other such tools, you must install Xcode.
Your Mac may have come with an Xcode install disc. You should probably ignore it. It is likely that Apple has updated the tools since your disc was pressed, and you'll want to download the latest version of the tools. To do so you'll have to create a free account at Apple's developer web site, Apple Developer Connection (ADC; click on the "Sign Up" link). Once you've registered, log in and go to the Downloads section. Download the most recent Xcode disk image (.dmg file). It will be about a gigabyte in size, so you must do this with a fast connection. Once downloaded, just double-click the downloaded disk image to mount it, double-click on the included package to start Installer, and follow the usual install dialog to install the tools.
Among the libraries installed by Xcode are Apple's versions of LAPACK and BLAS, optimized for Mac architectures, so there is no need for you to install these (or Atlas). The libraries are callable from C, C++, Objective-C, Objective-C++, and Fortran. On Intel Macs, recent versions of Tiger included multithreading support in LAPACK and BLAS (in the Accelerate framework), so they take advantage of multiple cores when available. For information on using these libraries, see Taking advantage of the Accelerate framework. A good source of community support for library usage is the Forums section of MacResearch.org.
The Unix tools will be installed in the usual paths (e.g., /usr/bin/gcc) so you'll be able to access them from the command line in the usual way. The OS X-specific developer applications will be on your system disk in the Developer folder (it has a hammer icon and is accessible from the command line at /Developer). If you are not developing OS X applications, you may safely ignore these applications. However, three of them are worth knowing about even if you are sticking to Unix-style command-line development.
If you anticipate you will be making use of Apple's Xcode applications for your Unix development, or especially if you anticipate doing OS X application development yourself, you should also download the latest version of the ADC Reference Library, which will provide a gigabyte of HTML developer documentation on your hard drive. You can also separately download a collection of the documentation as PDF files.
* Xcode
Xcode is the heart of the Xcode tool suite. You'll find it in Developer/Applications. It is a GUI IDE. It has a syntax-aware editor that supports many languages, including C, C++, Objective-C, Java, Fortran, Perl, and Python. It has good project organization tools, and sophisticated language support for the main OS X development languages (C, C++, Objective-C, Java and Python; 3rd-party plug-ins are available for other languages). It is the default application for opening many source code files, including .c and .cpp files. You may want to use another text editor for your coding, especially if you will be moving between multiple platforms; but if you are coding predominantly on Macs, consider learning to use Xcode, if only as a source code editor.
* FileMerge and opendiff
Xcode includes a very nice graphical version of the Unix "diff" file difference tool, called FileMerge. You'll find it in Developer/Applications/Utilities. If you launch it, it will provide a window where you can drag-and-drop files; comparing them presents them side by side, with highlighting showing the differences. At the command line, the "opendiff" command takes files or directories as arguments, and launches FileMerge to compare them. It has a man page detailing its use.
* Property List Editor (in Utilities)
Also in Developer/Applications/Utilities is a handy basic XML editor called Property List Editor. Many parts of OS X store preferences and other data in XML property lists. You can edit such lists directly with Property List Editor, and you may find it handy for other XML documents that have a similar structure.
* Unix-related Apple docs
While you're at the Apple web site downloading Xcode, grab the following three documents which are useful references for some of the Unix capabilities of OS X. If you've installed the developer documentation from ADC, you'll find HTML and/or PDF versions of these under Developer/ADC Reference Library:
Porting UNIX/Linux Applications to Mac OS X
Command-line Backup Solutions on Mac OS X - This document discusses the nuances of backing up your data via command-line tools, in a manner that preserves OS X metadata. Some of these issues are summarized briefly in the Metadata section, above.
Mac OS X Technology Overview- This document provides more in-depth coverage of the material in the Background section, above, and lots more besides. Of special attention is "Appendix C: Mac OS X Developer Tools." It provides descriptions of both Xcode applications and command-line developer tools. For example, it includes a list of command-line version control tools that ship with OS X (which includes only RCS, CVS, and file comparison tools like diff; more on version control tools below).
V Bear Access
Cornell users should download the OS X Bear Access software from the Bear Access web site. Bear Access includes many tools, and you probably won't be interested in some of them. Some, however, are crucial for Cornell users. You can select which tools to install. Most of them install in a Bear Access folder in your Applications folder. The notable exception is Norton Antivirus, which installs in its own folder in Applications. These are the most important Bear Access applications:
* Kerberos
Kerberos handles authentication for access to various Cornell online resources, most importantly library resources and benefits services. You won't have to pay any special attention to it; it will be launched automatically as required. You will need to know your Cornell login info to use it.
* Norton Antivirus
Macs suffer fewer virus attacks than other computers, but Mac viruses do exist, so it is wise to install Norton Antivirus. Note that it installs with a number of default settings that you may wish to adjust. In particular, by default it will search removable media for viruses when the media is mounted. This can be time consuming and annoying. You can adjust this and other settings via Norton preference panes that get added to System Preferences; you can also access them from the Antivirus application itself.
* Eudora mail client
Bear Access includes a popular OS X mail client called Eudora. Once a commercial application, it has just become open source. OS X includes a very capable and popular mail client called, imaginatively enough, Mail. It's in your Applications folder, but is also put in the Dock by default (it has a postage stamp icon). You needn't install Eudora if you are happy with Mail (or if you handle your email on another computer or via the web). Comparisons are subjective, but a common point of comparison between Mail and Eudora is that Eudora has exceptionally fast search capabilities, so some users with particularly voluminous email favor it. The Mozilla Project's Thunderbird email client is another popular email client for OS X, providing an option that runs under both OS X and Unix; get it from Mozilla.com's Thunderbird site.
* Fetch & dataComet
Bear Access includes OS X applications providing GUI access to sftp and ssh, Fetch and dataComet, respectively. These were crucial back in pre-OS X days, and remain useful for users who prefer GUI interfaces. If you are happy using sftp and ssh from a shell prompt, you needn't bother with Fetch and dataComet.
* Firefox
Bear Access includes an installer for the Gecko-based Firefox web browser. It may not be the most recent version, so you are probably better off getting the latest installer from Mozilla.com's Firefox web site. See the 3rd-party software section, below, for more information about OS X web browsers.
V Essential 3rd-party software
* Fortran compilers and scientific computing tools
As noted above, Xcode does not include a Fortran compiler. At least two free Fortran compilers are available for OS X (g77 and gfortran); commercial Fortran compilers are also available. You can find out about them (and download binary builds of the free ones) at the High Performance Computing for Mac OS X web siteHigh Performance Computing for Mac OS X.
Note that, as of OS 10.4, Xcode installs multiple versions of gcc, with gcc4 active by default. As in a unix environment, you can change the version used by the gcc command via the gcc_select command. It is important to be aware of the version you are using if you are using a free gnu-compatible Fortran compiler. g77 should be used with gcc3, and gfortran with gcc4. Intel-based Macs can only run code built with gcc4, so if you need a free compiler for an Intel Mac, use gfortran, not g77. In general, gcc3 is used for OS 10.3 development (Xcode for 10.3 does not include gcc4), and gcc4 is used for OS 10.4 development.
Intel provides highly regarded commercial optimizing compilers for Intel Macs. They offer both a "Standard" version a "Professional" version that adds an optimized math kernel.Intel® Fortran Compiler 9.1, Standard and Professional, for Mac OS* - Intel® Software Network
V TeX/LaTeX/GhostScript on OS X
There are several web sites with comprehensive coverage of TeX, LaTeX, and related tools for TeX-based document preparation on OS X. Here I will just offer a quick set of pointers.
You will most likely want to install a command-line version of the teTeX package, the standard TeX package available in most Unix environments. If you are using MacPorts or Fink, you can install it via their package managers. Alternatively, you can use i-Installer to install TeX Live—a teTeX superset—in the usual locations you'd find it in a Unix environment. Here I'll briefly cover the i-Installer option; for thorough i-Installer instructions visit Gerben Wierda's TeX on OS X web site (scroll down to "The gwTeX (re)distribution" section; the earlier material is for TeX newbies). See Joseph Slater's Getting Started With TeX (on OS X) and the Mac OS X TeX/LaTeX Web Site for more comprehensive coverage of other options, and for discussion of various tools facilitating using TeX in OS X. MacDevCenter's LaTeX: It's not just for academia provides an additional useful but somewhat dated (2004) overview.
* Installing TeX Live and related software via i-Installer

It appears that CTAN is now hosting an all-in-one package for installing TeX Live, Ghostscript, TeXShop (see below), and other useful tools, based on the i-Installer packages. This may well be the quickest way to get what you need to be productive with TeX on OS X. See TeXShop's Obtaining TeXShop web page for instructions (scroll down to "Obtaining TeXShop and TeX Live"). You may still want to use i-Installer directly to get a few tools and libraries, e.g., Ghostview.
TeX is big; to install it you'll need a fast internet connection. Download i-Installer and install it; the application will be put in your Applications/Utilities folder. Launch it and select the "i-Package>Known Packages i-Directory" menu item. You'll be presented with a window whose main pane will list many packages you may download and install. Select "gwTeX based on TeX Live" (double-click on it). An install window will open; click on "Install and configure" and then choose "Simple install." The installation will take a little while.
While you are in i-Installer, you very likely should install other tools you rely on for TeX use under Unix. Top contenders are Ghostscript 8, and Ghostview for X11R6 (the gv command, which you'll have to run from an xterm); ImageMagik and XFig can also be handy for generating and manipulating graphics for your TeX documents. Don't go crazy—some of the listed libraries are in fact already in OS 10.4 (they were missing in earlier versions).
* TeXShop and Lyx
If you've relied on LyX in your Unix environment for (nearly) WYSIWYG LaTeX document processing, you'll find an official port for OS X at the LyX web site. Also very popular is TeXShop, an OS X application that uses pdftex and pdflatex to provide live previews of TeX and LaTeX documents. Other TeX-based authoring environments are described in the documents listed above.
* iTerm iTerm
A Terminal application window, or an X11 xterm window, is a perfectly capable terminal emulation tool for Unix command line work. But they have a worthy competitor in iTerm, an open source terminal emulator for OS X. It has several features missing from Apple's Terminal. The most useful is that iTerm windows support tabs. This allows you to open several shells that share the same window area; you switch from one to the other by clicking a tab along the top of the window (like "tabbed browsing" in modern web browsers). This helps reduce workspace clutter.
* Adobe Reader
OS X's Quartz rendering engine is based on PDF, so it will come as no surprise that OS X includes a built-in PDF viewer, Preview (in Applications). This is the default PDF application in OS X. It is fast to launch and offers some capabilities lacking in Adobe's AdobeReader, most notably the ability to notate PDF files. But it lacks many features of AdobeReader. You will probably want to download AdobeReader for OS X from Adobe's web site. If you want it to be your default PDF viewer, consult the instructions for changing default applications in the Metadata section, above.
The Adobe Reader installer that Adobe makes available on its web site is a small installer that uses your network connection to download the rest of the (large) installer. It isn't suitable for off-line installation. If you need to download a self-contained installer to move to a Mac for off-line installation, you'll have to hunt for one on Adobe's ftp site. A Google search will usually turn up the ftp URL for the latest installer, unearthed by an enterprising hacker and posted at VersionTracker or another similar web site. Here is the URL for a recent version, version 7.0.9: ftp.adobe.comenu.
V Text and source code editors
OS X comes with a text editing application called TextEdit (in Applications). It's a basic text editor and word processor, capable of editing plain text files, or rich text files (which it can store in RTF, HTML, or Word format). You can switch back and forth between plain text and rich text via its Format menu. It is only suitable for basic editing, and for viewing plain text, rich text, and Word files. Your Mac may also have come with the iLife software suite, which includes a full-featured word processor. But you'll still be lacking a programmer's text editor.
As noted above, when you install Xcode, you get the Xcode IDE, which is a full-featured programmer's text editor, but much more. However, you'll probably want something more light weight, if not for all your programming, than perhaps for smaller tasks or projects. There are many options; here are some of the most popular.
* emacs/xemacs and vim/gvim
OS X's Unix implementation includes the Unix command-line text editors emacs and vim, which you can access from a terminal window. If you are happy working exclusively within a terminal window, emacs or vim may suite you fine. But you may want something more integrated into OS X, e.g., something with more of a GUI interface, or something that can interact more completely with OS X (e.g., supporting drag-and-drop, standard Mac file dialogs, etc.).
The open source community has produced several alternative versions of emacs attempting to meet these needs. I am less familiar with vim options. A Google search for "emacs [vim] 'OS X'" should turn up what's available. The field is constantly changing and I haven't kept up-to-date with the latest developments, so I'll just highlight a few key resources here. For more comprehensive coverage of emacs, see EmacsForMacOS @ EmacsWiki.org. A MacVim Wiki is reportedly in development, but it was not online as of this writing.
XEmacs - This is the Unix emacs fork that has some GUI capability via X11; you'll need to run it via X11, launching it from an xterm. You can install a standard xemacs via MacPorts or Fink. If you don't mind building from source, the XEmacs site provides pointers to patches producing a Carbon port of XEmacs (which presumably doesn't need X11).
Carbon Emacs — Seiji Zenitani's Carbon port of the current Emacs
Aquamacs — An "Aqua-native" emacs
Emacs.app — GNU Emacs built with Cocoa
Vim.app — Vim as an OS X application
Be careful about key bindings with these "emaxen;" some of them alter GNU emacs so that standard Mac text edit key bindings replace the default Unix key bindings.
See these web sites to learn more about emacs options on OS X:
???
* TextWrangler, BBEdit, TextMate, Smultron, SubEthaEdit
The most popular OS X-native programmer's editors are probably Bare Bones Software's BBEdit (commercial) and TextWranger (free), TextMate, Smultron, and SubEthaEdit.
BBEdit is a long-lived and much-loved Mac product that continues to evolve as the OS evolves. It especially targets HTML editing and offers powerful and conventient HTML editing tools and features. But it is an excellent text editor for any plain text task, and includes syntax coloring for all major languages (though not more sophisticated language features such as code completion). It can be launched from the command line.
TextWranger is essentially a "lite" edition of BBEdit that Bare Bones gives away for free. Despite its reduced feature set, it is still syntax-aware for all major programming languages. Being free, it really is a must-have for developers working on OS X.
TextMate is a relative newcomer to the Mac world, but has rapidly gained a dedicated clientelle; its developer came to OS X from Unix. Smultron is another new OS X text editor also rapidly gaining popularity among programmers. SubEthaEdit (winner of an Apple Design Award in 2003) is a unique offering in that it supports realtime collaborative editing, where users on different machines can edit a document simultaneously; it is thus particularly popular among extreme programming (Extreme Programming @ Wikipedia) advocates who rely heavily on pair programming. It also offers a command line utility.
* Java-based editors: jEdit & Eclipse
OS X has very strong Java support, so the popular open source Java-based programmer's editors jEdit and Eclipse run just fine on OS X. If you are familiar with either, you know it isn't really fair to call either a programmer's editor. jEdit's plug-in architecture has led to the creation of dozens of plug-ins that enhance its basic editing capabilities, making it essentially an IDE for many languages (plug-ins provide various IDE capabilities, not just for Java, but also for C, Python, and other languages). Eclipse is not only more than an editor; it's more than an IDE. It was designed to be an extensible GUI application framework, and though its most popular use is as a Java IDE, its many plug-ins and "features" (sets of related extensions) make it a solid IDE for many other languages, as well as a GUI environment for many projects that aren't developer tools.
jEdit relies on standard Java GUI tools, and as a result its look-and-feel is not very Mac-like. The Eclipse project was unsatisfied with Java's GUI tools (for a variety of reasons), so Eclipse depends on platform-specific GUI libraries (included with the Eclipse installation). As a result, its look-and-feel is more Mac-like. But neither tool behaves like a true OS X application.
Both jEdit and Eclipse run fine under OS X, but Eclipse is very resource-hungry (both in terms of disk space and processor load), so you may find it frustratingly unresponsive if you have an older Mac (i.e., with a processor speed under 1 GHZ). Both will require some work to set up for your language of choice (you'll have to locate and install the necessary extensions; the same could be said of emacs). Eclipse also has a bit of a learning curve because of its high flexibility.
A particularly appealing feature of these options is their excellent support of multiple languages. Thus they are especially worth considering if your projects require you to work with multiple languages. I develop mainly in Python, but I write many Python extensions in C and Fortran. I find Eclipse with its Pydev, CDT, and Photran plugins to be a good environment for working on large multiple-language projects in OS X. But I find myself relying on more light-weight tools—BBEdit or xemacs being current favorites—for small projects, one-off scripts, or the occasional quick edit of part of a big project.
* Version control tools
OS comes with command-line versions of the cvs and rcs version control tools, as well as file comparison commands such as diff. If you use other tools, such as svn or emerging distributed version control tools such as darcs, Bazaar-NG, or Mercurial, these tools (and others) are supported for OS X, but you'll have to install them yourself.
You can install SVN via MacPorts or Fink. A few generous OS X users host binary builds that can be easily installed without a package manager; two I know of are CodingMokeys' subversion and Metissian.com's subversion. SVNx is an open-source project providing a GUI front-end to the SVN client. wikiHow hosts an SVN How-To for OS X.
The darcs web site distributes a binary version (you can build it from source, but this involves building the entire Haskell language environment which is reportedly time-consuming).
Bazaar-NG (which operates via the bzr command) and Mercurial ??? (which operates via the hg command) are Python packages that install easily via the standard Python command-line package install sequence: "sudo python setup.py install".
* Web browsers, wget
OS X includes Apple's own web browser, Safari (it is in the Dock by default, with a compass icon; you'll also find it in Applications). It uses Apple's open source browser engine, WebKit, and is a very good browser. It supports tabbed windows for browsing.
If you've used the Gecko-engine-based browsers Firefox or Mozilla under Unix, you'll be happy to know that there is a solid OS X version of Firefox available from Mozilla.com's Firefox web site. But if you prefer Gecko-based browsing to Safari, consider Camino as an alternative to Firefox. It is an open source companion to Firefox that relies on the same underlying Gecko technology, but uses Apple's Cocoa frameworks to provide a modern OS X interface. Both support tabbed window browsing.
You may find that some pages that fail to render correctly in a Gecko browser render fine in Safari, or vice versa. If you develop web sites, you should verify that they work both in Safari and in a Gecko-based browser. Microsoft stopped supporting their Internet Explorer browser for OS X a few years ago, so if you need to test your site on a recent version of IE, you'll need to use a PC.
As under Unix, there are many 3rd-party enhancements for OS X browsers. The most popular Safari enhancer is probably Saft(shareware). It provides countless new settings and capabilities. Most notably, it provides the ability to save the state of browser windows,
including all the tabs in a window. If you activate this feature, the state of all open windows is saved even if a troublesome web site causes your browser to crash; this is very handy. Another popular Safari enhancer is Sogudi. It provides various keyboard shortcuts to speed browsing. Most notably for developers, it lets you easily view Unix man pages in a browser window.
For Camino, CaminoSession provides the capability to save the browser state, including the same kind of crash protection that Saft provides to Safari.
OmniGroup, a highly respected OS X software development company, offers a commercial (but inexpensive) browser called OmniWeb that is quite popular. It uses WebKit, but offers several enhancements over the Safari implementation, most notably the ability to maintain web browsing workspaces. Rather than tabs, it lets you have many web pages share a window by providing tab-like buttons in a sidebar. If you open lots of tabs in your web surfing, you may find OmniWeb's sidebar and workspaces a nicer way to manage your browsing. It includes crash protection along the lines of what you get from Saft for Safari.
OS X's Unix implementation includes curl for fetching web page content from the command line, but it does not include the more capable wget command line web site grabber. If you miss it, you can install it from source easily via the usual "./configure - make - sudo make install" sequence. You'll also find a few binary versions available from generous OS X users, such as Merenbach.com's wget universal binary. If you have decided to use MacPorts or Fink for other purposes, you can easily install wget with either of these package managers as well.
* Virtual workspaces and Exposé
As of Tiger, OS X does not support the virtual workspaces that are commonly supported in X11-based Unix window managers. A few 3rd-party tools implement virtual workspaces for OS X; see the OS X section ofWikipedia's Virtual Desktop entry for a list of options. Some of these implementations have been notoriously buggy; shop carefully (search for reviews and recent usage reports).
The absence of virtual workspaces was definitely a source of frustration before Panther. Panther introduced Exposé, an OS X capability that ameliorated some of the frustration. Exposé lets you hit function keys that give you quick thumbnail access to your open applications and windows. Learn how to use it. Now.
Note also that most OS X applications have a "Hide" command in their application menu (usually accessible via Cmd-H) that hides all of the application's open windows. You can get them back by clicking on the application's Dock icon, or by activating the application via the Cmd-Tab application picker.
Mac OS 10.5 (Leopard) will finally add a virtual workspace capability, Spaces.
* Office applications
OpenOffice for Mac, NeoOffice, AbiWord (word processor only)
V Less essential libraries and utilities
* cocoaAspell
OS X includes its own spell-checker, and many applications rely on it. But it does not support command-line access. cocoaAspell provides Aspell for OS X, including a preference pane (accessed via System Preferences) for maintaining dictionaries and filters.
V Web sites to bookmark
* MacResearch.org
MacResearch.org hosts forums and other resources produced by the rapidly growing community of scientists and engineers relying on Macs running OS X for their scientific computing.
* High Performance Computing for OS X
* Rosetta Stone for Unix
This "Sysadmin's Universal Translator" offers a table of common sysadmin tasks, and the corresponding commands for accomplishing them under various Unix implementations, including OS X.
* VersionTracker—Mac OS and MacUpdate
These web sites keep track of the latest versions of OS X software (commercial, shareware, and free and open-source software). They include reviews and ratings, and categorized lists for browsing.
* Apple's OS X software index
* O'Reilly's MacDevCenter
* OS X as a Unix Workstation for Astronomy
* Unix and OS X: The Absolute Essentials