UNIX Survival (UNIX 101)
This page was taken from Genome Center Computing Help home page
and slighly modified.
Overview
This document provides a basic introduction to UNIX and descriptions of some essential
UNIX commands.
The UNIX file system is composed of two types of entities: files and directories.
Every file and every directory has a pathname which indicates where that file or
directory lives.
- Files
- Files store information. There are many types of files. Two of the more common types are
text files, which you read, and executable files, which you run. If you choose the option
"Save As..." at the bottom of this window, a dialog box will appear and prompt
you for a "Name for saved document:". If you type in a name and choose
"OK," a text file will be created under the name you provided. Files with names
starting with a period (i.e. .xstartup) are invisible in normal UNIX use. You can
see them by using a variation of the lscommand. Just don't delete them. They are
there (and invisible) for a reason. Filenames in UNIX generally do not contain embedded
spaces. If you end up with a filename with embedded spaces, you can refer to it by
enclosing the name in double quotes.
- Directories
- Directories organize files and other directories, creating the tree structure of UNIX.
When you login to your account, you arrive in your personal home directory, the root of
your personal section of the UNIX file system tree. Your home directory, in turn, is a
subdirectory within other directories in the file system.
- Pathnames
- Files and directories are specified by pathnames. The pathname of a file indicates its
location in the filesystem. Two files can have the same name as long as their pathnames
are different. If you choose the option "Save As..." at the bottom of this
window, the dialog box asking you for a filename will automatically fill in the pathname
of your home directory. An example of a pathname for a user's home directory is
/usr/jpower. The pathname for that user's mail directory might then be /usr/jpower/Mail.
When you tell UNIX to look for a text file, it checks for that file in the current
directory. If the file is in another directory, you must supply the pathname to the file.
- cd
- The command cd my_dir changes your position to the directory specified, in
this case my_dir. The command cd without an argument moves you to your home
directory.
- cp
- The command cp first_file copy_file copies the contents of first_file
into the file copy_file. To indicate that the new file is to have the same name as first_file,
use a period (.) instead of of providing a name for the second file. (In this case, the
files must be in separate directories, as two files cannot have the same name if they are
in the same directory.) For example: cp some_directory/my_file . copies my_file,
located in some_directory, and creates a file named my_file in the current
working directory.
- lpr
- The command lpr print_file sends print_file to the default printer
(see echo). The form lpr -Pother_printer print_file sends print_file
to other_printer.
- ls
- The command ls lists the files in the current directory. The form ls -F
shows the difference between directories and ordinary files. The form ls -a lists
all files, even those that are normally invisible in UNIX (files whose names start with a
period, i.e. .xstartup).
- mkdir
- The command mkdir new_dir creates a new subdirectory named new_dir
in the current directory.
- more
- The command more my_file displays the text of my_file one page at a
time. To see the next page, hit the space bar; to see the previous page, type b; to
quit paging the file, type q.
- mv
- The command mv file_name dir_name moves the file file_name from the
current directory into the directory dir_name, where dir_name is a
subdirectory of the current directory. The form mv old_file new_file renames
old_file and calls it new_file.
- pwd
- The command pwd prints the pathname of the current, or working, directory.
- rm
- The command rm my_file deletes my_file. The form rm -i my_file
asks if you really want to remove the file my_file before it proceeds.
- rmdir
- The command rmdir my_dir removes the directory my_dir. The
directory must be empty before it can be deleted.
note: If you get an error
message that a directory is not empty when it appears to be, check for invisible files
(see ls).
- echo
- The command echo MY_VARIABLE displays the current value of environment
variables. Two variables that might interest you at some point are $PRINTER and $DISPLAY.
- finger
- The command finger user_name gives you information on the user specified
by user_name. The argument user_name can be the name of someone locally
(i.e. jpower) or someone at a remote location (i.e. jpower@bcm.tmc.edu).
- grep
- The command grep string filename searches filename for string.
It outputs every line which contains string. The form grep -v string filename
outputs every line which does not contain string. The argument string is
read by grep as a regular expression.
- kill
- The command kill my_process sends a terminate signal to the process
specified by the process id (PID) my_process. In cases where the terminate signal
does not work, the command kill -9 my_process sends a kill signal to the
process. For info on getting the PID for a process, see ps.
- lpq
- The command lpq outputs the current queue for the default printer (see echo).
The form lpq -Pother_printer outputs the current queue for other_printer.
- lprm
- The command lprm job_number removes job_number from the queue for
the default printer (see echo). To remove a job, you must be the owner of that job.
To find job_number to send to lprm, use the command lpq. The form lprm
-Pother_printer job_number removes job_number from the print queue of other_printer.
- man
- The command man command displays the UNIX manual page for command.
The manual pages describe usage and options for every UNIX command.
- passwd
- The command passwd allows you to change the password you use to login to the
computer. The process is self-explanatory once you type the command.
- ps
- The command ps lists the processes running on your machine. The form ps gux
lists only your processes. The form ps aux lists all processes running on your
machine. The second column of the listing, the PID column, provides the information
required by the kill command.
- whois
- The command whois lookup_string performs a directory lookup on persons at
your home institution, where lookup_string is all or part of someone's first name,
last name, or phone number.
- input
- By convention, a UNIX command reads input from standard input (the keyboard). To
get a command to read from a file instead, you need the command, the filename, and the
character '<' : my_command < my_input. Think of the '<'
as an arrow pointing in the direction the data is flowing, from the file to the command.
- output
- The output of a UNIX command is sent to standard output (the screen) by
convention. To get a command to send the output into a file instead, you need the command,
the filename, and the character '>' : my_command > my_output.
The arrow analogy holds true in this direction as well, with the data flowing from the
command to the file. To append the output of a command to a file without erasing its
previous contents, use the notation : my_command >> my_output.
- pipes
- If you have a series of commands in which the output of one command is the input of the
next, you can pipe the output through without saving it in temporary files: first_command
| next_command. For example, if you wanted to print out a sorted version of a file
that contained a list of names and phone numbers, you could use a pipe (as well as input
redirection): sort < my_phone_list | lpr.
The carat symbol (^) represents the control key.
| ^C: Abort the current program or process. |
| ^D: Exit xterm, ftp session, telnet session, gcg session, etc. |
| ^Z: Suspend execution of the current program or process. To restart execution in
the foreground, type fg. To restart execution in the background, type bg. |
The carat symbol (^) represents the control key. More help is available in pico
with the command ^G.
- file management
| ^R - read/insert file |
| ^O - write out to file (save as) |
| ^X - close file and editor |
| ^C - cancel |
editing
| ^D - delete character |
| ^K - delete line |
| ^U - undelete line |
navigation
| ^F - go forward one character |
| ^B - go back one character |
| ^E - go to end of line |
| ^A - go to start of line |
| ^V - go to next page |
| ^Y - go to previous page |