Unix is one of the most popular operating systems on the Internet. It is popular because it is available for a wide variety of computer platforms and because it is a multi-user, multitasking environment. This means that several people can use a Unix computer simultaneously - and each person can run several programs at once. This makes Unix is a very powerful system.
Unix was developed in 1969 at Bell Labs. Since its creation, Unix has seen countless updates, revisions and spinoffs. Today, there are flavors of Unix with names like SCO Unix, BSD and System V. These systems work in very similar ways, but it is important to know what version you're using when you have a question or are looking for a book on Unix.
The following information will show you the basics of getting around with Unix. Most Unix commands are very powerful. With practice you will be able to combine commands to easily perform otherwise complex tasks.
If you use DOS, you're familiar with a prompt like C:\>. Unix prompts vary from system to system, but yours is most likely to be a dollar sign ($) or a percentage sign (%).
When you log on, you may also the system "message of the day" (or MOTD, pronounced mot-dee) announcing anything the system administrator thinks you need to know. You may also see a message if you have any unread electronic mail.
To log off the system, simply type "logout". It is important to do this to tell the computer you don't plan on using it for a while. This will prevent others from walking up to your terminal and looking through your files.
Your account has a "home" directory, the directory you use by default when you log on to the system. You can change your current directory, list a directory's contents, and create and remove directories that are part of your home directory. Unix uses a hierarchical directory structure, like DOS. This means that there is one "root" directory, and many sub-directories to store files in. Here is a small example of what one might look like:
_______________(/)______________________________ / / \ \ \ bin lib etc files_____________ usr / / \ \ sys stuff \ junk \ home / waffle / mystuffA file in the "mystuff" directory can be referred to as: "/files/home/waffle/mystuff/filename".
This is referred to as the filename's "full path". The first / must be there for it to be a full path. If you leave it off, Unix will look for the file starting in the your present directory. This is useful because having to constantly refer to files by their full pathnames would get tedious. If you were in "waffle"and wanted to refer to "filename" in "mystuff" you could call it "mystuff/filename" Or, if you are already in "mystuff", just use "filename"
If you use DOS on your home computer, note that Unix uses a forward slash between directory names instead of a backslash.
If you use DOS, you're also used to restrictive filenames with eight letters, a period and an extender of three more letters (for example, GRANDMAS.LTR). If you use a Macintosh, you have the luxury of filenames of up to 31 characters. Depending on what flavor of Unix you're using, you may be allow filenames from 14 to 255 characters. And, unlike DOS, which only likes A-Z, 0-9 and the underline in filenames, Unix filenames can contain just about any character you can type on the keyboard. (Some characters are possible as part of a filename, like the space character, brackets and the asterisk, but can get you in sticky situations later. It's best to avoid using them.)
pwd - this command stands for Present Working Directory, and it will tell you what directory you're currently in. Log on to your system and type pwd to find out what your home directory is called. Mine is /files/home/waffle.
ls - lists all the files and directories under your present working directory. There's a problem, though: the ls command doesn't tell you whether you're looking at the names of files or directories. Not to worry: if you type ls -CF you'll get a nicely formatted list, with executable files (programs) indicated with an asterisk and directories indicated by a slash.
Some files in Unix are normally invisible (or, hidden files.) Any filename that begins with a period, such as ".newsrc" and ".login", aren't normally shown with the ls command. You can see them, however, if you explicitly ask to see all files by adding the "a" argument to the ls command: type "ls -a" or "ls -aCF" (yes, capitalization matters!) to see your invisible files. Invisible files usually specify your system configuration and preferences information - or, perhaps you simply have something to hide.
cd - stands for change directory. You can move to a directory that is under your present directory by typing something like "cd mystuff". To move to the directory above your current one, type "cd .." (that's two dots. Why two dots? It's a mystery to me.) If you know exactly what directory you want to go to, you can type a command like "cd /lib/sys".
cp - is an abbreviation for copy. Not surprisingly, the cp command lets you copy a file. Typing "cp file1 file2" will create an exact copy of file1 in your present directory. Typing "cp file1 /files/home/wombat" will create a copy of file1 in another directory.
mv - is an abbreviation for move, and lets you move files around directories. Moving a file copies a file to your specified directory then deletes the original.
rm - stands for remove. This command will let you erase files that you no longer need. Be careful! There is no "undelete" command in Unix; once your file is gone, it's gone forever. rm file2 will erase one file in your present directory. Typing rm * will delete every file in the directory. In Unix, like in DOS, the asterisk means "all files".
cat - stands for "catenate," an obscure word meaning "to form a chain or series". In its most basic use, cat works just like DOS' TYPE command: it displays the contents of a text file. Actually, you can use it to display the contents of any file, but binary files (like programs and digitized pictures) will only appear as garbled data. To display a file, just type "cat letter_to_grandma" and the computer will dump the letter to your screen. If the text in the file is too long, the beginning will scroll off the top of the screen faster than you can read it. Which brings us to the next command...
more - which shows you the contents of a text file one page at a time. To use it, type "more letter_to_grandma". After each screenful of text, you'll see the word "more". Strike the space bar to see the next page of text. Your system may also have a program called less, which does the same as more, only better. Just as they say, less is more. :-) As always, type "man less" or "man more" for complete information.
chmod - can be used to change the permissions of files. Unix permissions can be tricky. Remember that Unix is a timesharing system that can be used my many people simultaneously. You might want to keep some of your files - for instance, your electronic mail - private, but let other users read or modify certain files. So chmod, which stands for "change mode" makes it possible to allow or deny yourself, all system users or certain users to read, write or execute your files. For more information (you saw this coming, right?) type "man chmod".
ftp - stands for File Transfer Protocol. This program allows you to connect to other computers on the 'net and copy files to and from them. You normally need to have an account and password on the remote computer to get and place files. You will also hear the term "anonymous FTP", which means using the ftp program to log into a computer that allows anyone to look around and download files. For example, if type "ftp wuarchive.wustl.edu", log in as "anonymous" and use your e-mail address as your password, you'll be able to peruse a huge library of software, information and graphics.
rn or trn or nn or others - are programs that allow you to read the Usenet, a huge distributed bulletin board system. The Usenet contains a wealth of ongoing discussions on every topic imaginable.
gopher - allows you to "burrow" around the Internet. Gopher is one of a new breed of tools that are making the Internet easier to use.
Mail or elm or others - these programs let you read and send electronic mail. Mail is a very simple program that is available on every Unix system. The elm program will only be available if your system administrator specifically put it there. If it is, you'll find it much easier to use electronic mail than with Mail. Other fine mail programs are available also.
vi or emacs or others - are text editors, programs that allow you to create text files (such as e-mail messages, programs or letters to Aunt Zelda). Ask your local guru what editor you should use. The vi editor is simple but not exceptionally easy to learn. In contrast, emacs is a software behemoth that will edit files, tell your fortune and teach you to make cookies. (Really.)
lpt or print - may let you print a text file on a printer connected to the Unix computer. Two caveats: first, never try to print a non-text file - anything that looks like gibberish when viewed onscreen with the cat command will look worse on paper. Second, if you're hacking from a college computer lab or your office and you know there's a printer down the hall, feel free to use the print command. However, if you're using a dial-up Unix system hundreds of miles away, don't use the printer unless you intend to drive there to pick up your printout!
grep - stands for Global Regular Expression Print, which is a verbose way of saying that this program will search through files and output any lines that contain text that you specify. If you've ever read Usenet news, your home directory contains a hidden file called ".newsrc" which lists all the newsgroups available to you. Typing "grep amiga .newsrc" will list all the lines in the file that contain the word "amiga".
passwd - allows you to change your password. Typing passwd will prompt you for your old password then ask you to type your new password twice. Passwords you type should never be visible on your screen.
compress and uncompress - This pair of programs will compress or decompress a file (or files) of your choice. Compressed files end in the extension ".Z" and take up less disk space than uncompressed ones. Many of the files available via the Internet's FTP tool are compressed to save space and reduce transfer time. Similar to .ZIP files on a DOS computer and .SIT files on a Macintosh, Unix's compressed files take up relatively little space, but aren't useful while in compressed form. To use these commands, just type "compress filename" or "uncompress filename.Z"
Unix systems use a tricky feature called one-way password encryption. When you first choose a new password (for instance, with the passwd command) the computer encrypts your password - so thoroughly that it can never be decrypted - and only stores the encrypted version. Later, when you type your password while logging in, the computer encrypts your guess using the same method and compares the encrypted version of your guess to the encrypted version of your actual password. If they match, you're allowed in.
Although your password can't be decrypted, you're never perfectly safe. Unscrupulous crackers can use the encryption routine to stab guesses at your password. At least one computer program is available that can quickly and silently encrypt every word in the dictionary and compare it to the list of encrypted passwords on your system. Therefore, if your password is in the dictionary, you can get zapped.
A variety of other passwords that aren't in the dictionary are also bad choices because they're very easy to guess. Here is a partial list of passwords not to use:
password opensaysme letmein your initials your login name your cat's name your spouse's name any information that can be found by "fingering" your account name, such as your phone number, name, etc. any word that's in the dictionaryTo be as safe as possible, make your password a bunch of unrelated characters, such as "K#*2ww>". Use a combination of upper and lower case letters, punctuation and numbers. If you find this type of password too hard to remember, try using two unrelated words separated by a punctuation mark, like "explore*grasshopper".