Archive for September, 2006

Two week hiatus

If you're new here, you may want to subscribe to my RSS feed.

I’m very excited for FreeMacUnix.com. I’m looking forward to having an outlet for discussing how Unix can make every Mac user more productive. I sincerely enjoy this.

Unfortunately for my baby, I’m taking a two week trip to Brazil. I’ll have only occasional access to email (I’m not taking my Powerbook) so I won’t be able to post on FMU until I return.

The first posts I’ve written have given some necessary background. Please join me at the beginning of October for more details on how Unix can make you a better Mac user. See you then.

What is a Unix command?

A Unix command is like an application, but it usually performs a much simpler task. There are Unix commands to show the contents of a file, to sort, to filter, and even to browse the Internet. Every Apple computer comes with hundreds of Unix commands that each do something unique. Contrast that with the dozens of applications that come with every Mac, some of which perform very complicated workflows.

Mac applications have Preferences for selecting how you’d like them to run. Unix commands, on the other hand, don’t (usually*) have any preferences or persistent settings. To specify how a Unix command runs, you use what are called flags or arguments. These flags or arguments are specified each time you run the command.

Arguments are specified with one dash and a letter (e.g. -a -b -c), or two dashes and a word (--help.) Sometimes certain settings or parameters can follow an argument (-u "stevejobs" or --user "stevejobs".) Whenever you use multiple single-letter parameters, you can combine them (-abc is the same as -a -b -c.)

Here’s an example. The ls command lists the files in a folder. Open Terminal, type ls, and hit Enter. You’ll see a list of the files and folders in your Home folder. Each name is listed one after another.

If, instead, you’d like to see all the files listed in columns, type ls -l and his Enter. You’ll see all the files listed in one column. It will also show the dates the files were created, and other information. This is the “long” format, as specified by the l flag.

You’ll notice that the list of files is in alphabetical order. If you want to reverse it, you can use the r flag. Type ls -l -r. The files will be listed in reverse alphabetical order. Since you can combine single letter flags, ls -lr will produce the same result. Most of the time the order of the flags doesn’t matter either, so ls -rl also produces the same result.

the ls command

What is a shell?

Hershey Shell photoThe term shell can refer to any interface to a computer (in the sense that the shell is the outermost part, the part people interact with.) But more commonly, shell is another way of saying “command line interface” or Terminal.

On Unix systems, there are actually multiple shells — bash, sh, csh, tcsh, and many others. The shell you use determines how you interact with the command line interface, but they’re all similar. The default shell on Mac OS X is bash, or “Bourne Again Shell”. Bash is the one we’ll be using.

To find out what shell you’re using, you can type echo $0 into Terminal and push Enter. It should return “bash”.

There isn’t much practical knowledge to be gained by knowing about the different shells, but I just didn’t want you to be surprised if you heard the terms shell or bash.

Further reading:
Wikipedia: Shell
Wikipedia: bash

Is anything unclear? I’ll explain!

What is the Terminal?

You’ll find Terminal in your Applications/Utilities folder. It’s through the Terminal that you access the command line interface of your Mac. In the same way that the graphical user interface (GUI) lets you operate your computer with a mouse, the command line interface (CLI) lets you operate your computer through typed commands. The graphical user interface is certainly easier to learn, but the command line interface can be very powerful! For instance, you can easily move a file to a new folder by dragging it with the mouse. But if you want to copy all the MP3 files anywhere in your Home folder, it’s must faster to use the command line, or Terminal. (You’ll learn how to do this.)

Terminal preferencesAs long as you’re going to start using Terminal regularly, you might as well make it at home. You can drag the Terminal to your Dock for easy access. Also, you might want to change the look of Terminal by going to Window Settings in the Terminal menu. Switch the drop down menu to Color, then change the color to your liking. I personally like White on Black with a little transparency, but you can do whatever you like.

You might also want to switch to the Display menu and choose a different font and font size. When you’re done, click Use Settings as Defaults.

If you really want to get fancy, you can also access the command line interface through a 3rd party application like iTerm. iTerm adds some niceties that Terminal doesn’t have, such as tabbed windows. I know people that really like iTerm, but I personally just use Terminal.

Further reading:
Wikipedia: Terminal Application
Wikipedia: Text terminal
Wikipedia: Graphical user interface
Wikipedia: Command line interface

Is anything unclear? I’ll explain!

What is Unix?

Unix logoUnix is a computer operating system that was developed in the 60’s and 70’s at AT&T’s Bell Labs. It was designed as a robust, multi-user, multi-tasking operating system and has historically been popular on large mainframe systems at universities and governments.

Since then, many variants have descended from the first Unix, including Linus Torvald’s college project Linux. Unix was originally spelled “UNICS”, an acronym for Uniplexed Information and Computing System.

Mac OS X is built on a version of Unix called FreeBSD, which means that every modern Mac inherits the strength of a powerful, time-tested operating system. FreeBSD is widely regarded as one of the most secure operating systems. Apple combines this with a beautiful interface. Mac OS X is like the engine of a classic muscle car in a shiny, modern body.

Further reading:
Apple: Solid as a Rock
Wikipedia: Unix
The Unix family tree (diagram)

Is anything unclear? I’ll explain!