These are some of the more common Linux commands that you will find in use.

When you type the **Command** shown, the **Action** described is what should happen. (*Italicized* portions replaced with your specific information, of course.)
**Command****Action**
**Basic Navigation**
**cd** When typed by itself, **cd** (”change directory”), will take you back to your $HOME directory.
**cd /*path*/*to*/*directory*** To change to a specific directory, type **cd** followed by the path to the directory. If it is a subdirectory of the current directory, you can just type the directory name–for example, when in your account’s root directory (/big/dom/x*domain*), you can just type **cd cgi-bin** to go to your cgi-bin.
**cd ..** Typing **cd ..** moves you up one directory from your current location.
**pwd** To see which directory you are in, type **pwd** (”print (display) working directory”).
**exit** Just as it sounds, use **exit** to log out. Alternatively, you can type **logout** or just press the “d” key while holding down the Ctrl key.
**Creating and Deleting Directories**
**mkdir *directoryname*** To create a new directory, type **mkdir** (”make directory”) and specify the new directory’s name.
**rmdir *directoryname*** To delete an empty directory, type **rmdir** (”remove directory”) and the directory’s name.
**Listing Files**
**ls** To display a list of files and subdirectories in your current directory, type **ls** (”**l**i**s**t”)
**ls -a** To see a more complete list which includes files that begin with a “.” (dot), type **ls -a**.
**ls -la** To list all files and directories in long format which will provide details about each file and directory, type **ls -la**.
**ls -lS** To list all directories and files, sorted by size, in long format, type **ls -lS**.
**ls -lta** To list all files and directories in long format by time modified, type **ls -lta**.
**Copying Files**
**cp *oldfilename newfilename*** Will copy the contents of one file to another file, resulting in two copies of the same file on your account.
**cp *directory*/* *destinationdirectory*** Will copy the contents of one directory to another directory. ***Make sure you have created the destination directory before trying to copy files to it – see mkdir above.*** Results in two copies of the files on your account; one copy in the existing directory and another in the destination directory.
**Searching Files and Directories**
**find -name ‘*n**’** The **find** command can be used to locate files or a group of files. It can also be used to display directories. The example given will find all file and directory names within the current directory and subdirectories of it that begin with the letter n. (You can also explore using the **locate** command – type **info locate** and/or **man locate** for usage information.)
**grep -inw *text filename*** Can be used to locate text in a specific file or directory of files (use * in place of *filename* to search all of the files in the current directory). The -i argument indicates the search is to disregard cASe, the -n instructs to show the corresponding line number, and -w tells it to match only based on the whole word. (This doesn’t even begin to touch on the power of grep and its many uses. In addition to its searching capability, the grep command can be used in combination with other commands to act as a filter. It also allows the use of “wildcards”. Two other variations of grep are also available, egrep and fgrep. To begin your quest for more information, type **man grep** and/or **info grep**.)
**Displaying/Comparing File Content**
**wc *filename*** Counts and displays the number of lines, number of words, and number of characters of the given file.
**cat *filename*** Displays the entire contents of a file.
**nl *filename*** Shows the content of the file, including line numbers (nl=number lines).
**more *filename*** Displays the contents of a file one screen at a time. Press the SPACEBAR to display the next screen of text.
**cmp *filename1 filename2*** Compares the contents of the two named files and reports the first different character found and the line number.
**diff *filename1 filename2*** Compares the contents of the two named files and reports all of the differences found. (Can also be used for comparing the contents of two directories.)
**Moving, Renaming, and Deleting Files**
**mv *oldfilename newfilename*** Can be used to rename a file (mv fileA fileB), move a file (mv fileA /dirA/), or both (mv fileA /dirB/fileB).
**rm -i *filename*** Removes (deletes) the specified file. (The -i is not necessary, but is recommended as it will prompt you to confirm the action first. When prompted, type y to confirm or type n if you changed your mind.)
**Changing Permissions**
**chmod *permissions**filename*** Changes the [permissions](http://www.aota.net/keyword.php?permissions) on a filename or directory as specified. See [this guide](http://service.futurequest.net/index.php?_a=knowledgebase&_j=questiondetails&_i=27) for further information on **ch**ange **mod**e.
**Archives and Compression**
**tar -cvf *filename.tar directoryname*** To archive a directory and all of its contents including subdirectories, navigate to where the directory is located and type the above command, replacing *filename.tar* with the name you wish to give the archive file and *directoryname* with the name of the directory you wish to archive. Alternatively, you can archive a select group of individual files (or directories) by specifying each file name in place of *directoryname* separated by spaces, like *tar -cvf filename.tar fileA fileB fileC*. **Note: When creating a [tar](http://www.aota.net/keyword.php?tar) file (aka “tarball”) be sure to specify the name you wish to give the [tar](http://www.aota.net/keyword.php?tar) file!** (TAR indicates Tape ARchive, as it was originally a tape archiving program. The -c means “create”, v means “verbose” (which basically says tell me what you’re doing), and the f indicates that a filename will follow (filename.tar).)
**tar -tvf *filename.tar*** Typing this command will result in a list of the contents of the [tar](http://www.aota.net/keyword.php?tar) file. This is generally a good thing to do before unpacking the [tar](http://www.aota.net/keyword.php?tar) to be sure that there are no matching filenames which will result in files being unintentionally overwritten.
**tar -xvf *filename.tar*** You can see the similarities to the command used to [tar](http://www.aota.net/keyword.php?tar) the file. This time, though, you use -x to “extract” instead of the -c used to create. You can also extract only certain select files (or directories) by specifying the individual names, separated by spaces, after the [tar](http://www.aota.net/keyword.php?tar) filename, such as *tar -xvf filename.tar fileA fileC*
**gzip *filename.tar*** This utility, gzip (gnu zip), is used for compression. Normally, when you wish to compress a set of files, you will [tar](http://www.aota.net/keyword.php?tar) them first then compress them using this command. In doing so, the filename will automatically change from filename.tar to filename.tar.gz (appending .gz to the file extension).
**gunzip *filename.tar.gz*** This command (g”unzip”) is used to uncompress a .tar.gz file, which will also result in the filename being changed back to filename.tar. Once it has been uncompressed, you can then untar it using the [tar](http://www.aota.net/keyword.php?tar) command above. (Alternatively, you can use gzip -d (for “decompress”) in place of gunzip.)
**tar -czvf *filename.tgz directoryname*** This command, which uses a z switch (”zip”), allows you to take a bit of a shortcut instead of using the [tar](http://www.aota.net/keyword.php?tar) and gzip commands separately. The example will result in a compressed archive named filename.tgz.
**tar -xzvf *filename.tgz*** This command is used to uncompress and extract the files from a .tgz archive.
Another compression utility is bzip2/bunzip2. See the man or info page for more details.
**Miscellaneous Commands**
**man *command*** To view the online **man**ual for a command in order to find out more about its usage, just type **man** and the command. For example, typing **man ls** will show the usage documentation for the **ls** command including arguments (options) that can be used with it. To exit the documentation, type **q** (for quit). (See also **info**.)
**info *command*** Similar to the **man** command, **info** provides information on a command but in a different format and often more detailed. (You can also view the help pages of a command by typing ***command* –help** (replace “command” with the actual command. For example, **ls –help** will provide help on the ls command.)
**whatis *command*** A quick way of getting information on what a specific command does. For example, typing **whatis ls** will tell you that its job is to list directory contents.
**whereis *command*** Used to locate the binary, source, and manual page files for specified commands/files. For an example, type **whereis perl**.
**which *command*** Shows the full path of the command. For an example, type **which perl**.)

This is not by any means a complete list of the commands and their options, but this should get you started.