Writing Man Pages for the Command Line – Part 1


In late 1999, I was hired to work my first job in IT. I was lucky to get that job. My college diploma was in Music Production from a non-accredited college, and my last job was managing a movie theater in the northern suburbs of Minneapolis. I had little experience. But I loved Macs and I wanted to work on them. A temp agency called Aquent had recently acquired MacTemps and their CEO was in Minneapolis, helping to turn around the office here. As luck would have it, he liked my cover letter and placed me at just the right tech startup where the culture was a perfect fit – Power On Software.

In March of 2001, Apple released it’s first version of Mac OS X, version 10.0. They didn’t market their big cat names at the time, but it was known to the fan boys as OS X, code-named ‘Cheetah.’ (I still get chills writing that word. Cheetahs are almost as awesome as Karate.) Having come from the world of Mac OS 8 and Mac OS 9, Mac OS X seemed like a mess of folders. I really didn’t get it.

My first introduction to OS X as a whole was delivered by my coworker, Patrick Rhone (yes, THAT Patrick Rhone, author of Minimal Mac and close friend to this day) and it was so incredibly succinct that I, for the first time, was convinced that Apple had made the right choice buying NeXT and moving to this new platform.

Finally having gotten to the point where I understood the overall directory hierarchy, I set forth on a career-long journey to learn about how it worked. Nothing sparked my curiosity more than the application bundled with OS X called Terminal. It was a window into a world that seemed mysterious, massive and powerful, just like my muscular physique. I wanted so terribly bad to learn how to use it, but I had no idea where to begin.

Mac OS X is based on an operating system called UNIX. Now, Linux is a rewrite of UNIX (I’m not going to rehash the history – if you’re curious, go to Wikipedia). At my company, there was a guy who knew Linux, or so he said (I had no way of knowing whether or not he was full of shit). I don’t remember his name, as he wasn’t with us for long. Anyway, he installed it on one of our iMacs and zipped around all over the command line interface, typing cryptic commands and getting all kinds of text to appear on the screen. I asked him, “How do you learn this stuff? Is there a book you can buy?” He looked at me with a cocky, libertarian gaze and, through his goatee said, “No books. You just get in there and figure it out.”

I didn’t know then what I do now, which is that he was indeed full of shit (or perhaps ill suited to participate in the proud tradition of mentorship). You see, there are a lot of ways to learn how to use command line tools and the shell. He could have pointed me to O’Reilly books, or any number of other publications. And he could have taught me how to use Linux and UNIX’s built-in help for command line executables – the ‘man’ command.

Anyway, fast forward, do a montage, Matthew reads books, drinks raw eggs, works up a sweat, runs around the lake a few times, about five years passes and I begin writing my first shell scripts.

I started writing tools that would help my company administer and support our client’s Macs. They would make sure that permissions stayed correct, that filesystems were checked and that hard drives were not damaged. But the number of scripts started to multiply and the functionality became more and more comprehensive.

At some point I realized I would be working with other techs who needed a way to learn how to use these scripts and, to be honest, I worried I’d forget how to use my own tools! I decided it was time to button up my suite of scripts with some suite documentation. Pun. In. Tended.

To be continued…

Leave a Comment

Your email address will not be published. Required fields are marked *