|
|
This How-To introduces basic concepts about UNIX systems and provides
instruction on common UNIX commands, including those you can use to
manage your files. The narrative text is followed by a "UNIX
Command Quick Reference" that summarizes the syntax and description
of each command covered in this section. Additional related information
can be found in the chapter "UNIX Computer Accounts" and the
How-To section "Logging In to your UNIX Account via Telnet."
|
The UNIX File System
|
In order to get the most out of your UNIX account, it's important to
understand a little about the UNIX file system. Large UNIX machines,
like the ones CCSO manages, can hold tens of thousands of files. These
files are organized into directories forming a hierarchical structure
similar to the folders on Macintoshes or directories on PCs. The highest
level of this structure is called the root directory, and is
represented by a forward slash (/). The root directory generally
contains other directories, called subdirectories, but may also
contain files. Subdirectories can contain both files and more
subdirectories. This hierarchy of files and subdirectories can be many
levels deep.
Every user with a login on the system has a special directory, called a
home directory, where personal files can be created and stored.
The name of each home directory is the same as its owner's account
login.
The diagram below shows part of a typical UNIX file system. Four
subdirectories of the root directory are shown. Items ending with a
slash, such as j/ and k/, are subdirectories. Items
without a trailing slash are files. The home directories are grouped by
letters of the alphabet under the home subdirectory.

|
Understanding Absolute and Relative Paths
|
If you ever need to copy or move files from one directory to another, in
addition to knowing the names of the files and directories, you will
also need to know how to write out their paths. A path describes
the location of a file or directory in relation to other directories.
There are two types of paths, absolute and relative.
|
Absolute Paths
|
An absolute path describes the exact location of a
subdirectory or file, starting from the root directory.
For instance, in the diagram above, the absolute path of the file
named index.html in kay's public_html directory is:
/home/k/kay/public_html/index.html
The initial slash in the absolute path represents the root directory.
All subsequent directories are written in the form
directory_name/. Each slash in the path chows
the separation between a directory and a subdirectory or a file
contained within it.
|
Relative Paths
|
Unlike an absolute path, which never changes, a relative path
can vary because it is defined in relation to the
current working directory-that is, whatever directory you are in
at the moment. Since a relative path does not start at the root
directory (unless the root directory happens to be the current working
directory), it does not begin with a slash. If the leftmost item in a
relative path is the name of a directory, the directory is assumed to be
in (or under) the current working directory. Referring to the file
system diagram again, if the current working directory is
/home/k/kay, the relative path of the file named
index.html in kay's public_html directory is:
public_html/index.html
When writing out a relative path, the sequence
.. (two periods in a row) means "parent of current
working directory," or "up one directory." (The directory
containing a directory is called its parent.) By using this
notation, you avoid having to type all the names in a sequence of parent
directories. The relative path from kay's home directory to the file
index.html in joe's public_html subdirectory is thus:
../../j/joe/public_html/index.html
In plain English, the above path means "up one directory (from
kay to k), then up another directory (from k to
home), then down from the directory home, through
j and joe, to public_html where the file
index.html is located.
When specifying relative paths it is imperative that you know the
current working directory. If you lose track of your location, the
UNIX command pwd (print working directory) will display the
absolute path of the current working directory on your screen.
|
The ~(Tilde) Path
|
There is another way to specify a path, pertaining only to home
directories. The tilde (~) character can be used as a shorthand
method of writing the absolute path to any home directory. When a
tilde is followed by a login (e.g., ~joe), it signifies the
home directory for that login. Using the tilde, another way to write
the path of the file index.html in joe's public_html
directory is:
~joe/public_html/index.html
When referring to your own home directory, you don't need to
specify a login. A tilde by itself is shorthand for the home
directory of the person who is logged in. Thus if kay were logged in
to her account, she could refer to her own index.html file
with the following path:
~/public_html/index.html
|
Search Paths: Another Kind of Path
|
Occasionally, when you try to start a UNIX program, you may get a
"not found" or "Command not found" error. This
can happen even fhen you are absolutely sure that the program you
want to run is available on the system. It usually occurs when the
program is not in your search path. A search path is a
preconfigured list of directories in which the system expects to find
program files.
For most users, the search path is set during the login process when
the configuration files, known as dot files, are read. You can
see your default search path by typing the following command at the
UNIX prompt:
printenv PATH
The output of the above command will look something like this:
/usr/local/bin:/bin:/usr/bin:/usr/ccs/bin:/usr/games:/usr/ucb:.
As shown in the sample output above, each directory in the search
path is separated from the next by a colon. When the system looks for
a program, it searches the leftmost directory first
(/usr/local/bin in the above example) and continues to search
each directory in the list until it finds a program with the name you
typed, at which point the program is executed. If a program by the
same name is located in two different directories in your search
path, the system will execute the first one it finds. To start a
program that isn't in your search path, type out the fell or relative
path of the program as described in the previous section.
|
Typing Commands at the UNIX Prompt
|
There are many UNIX commands for carrying out file and disk space
management tasks such as listing files, removing files, creating
directories, and removing them. These commands are generally
abbreviations of the names of the tasks they perform, and hence are
fairly easy to remember-for example, ls lists files, and cd
changes directories.
When writing out a command, the various parts of the command must
follow a specific order, called the command syntax. The parts
include the command itself, any added command options, and the names
of files or directories to be acted on by the command. Syntax varies
among UNIX commands. For instance, some commands take file or
directory names as part of their syntax, whereas others do not.
However, file and directory management commands generally have the
following syntax:
command [options] file_name(s) or directory_name(s)
Options change how the command is carried out or alter the type of
output produced by the command. They take the form x,
where the minus sign (-) indicates that the letter immediately
following it is an option, and the ldtter (x)
represents a particular option. Multiple options can usually be
employed simultaneously in the form xyz (rather than
writing as xyz).
Many commands take the names of files or directories as part of their
syntax. If you type the name of a file or directory by itself (i.e.,
without its relative or absolute path), it is assumed to be in your
current working directory. To refer to files or directories outside
of the current working directory, you must specify their relative or
absolute paths.
Note: In the remainder of this How-To, the UNIX prompt is
shown as $. The prompt may be different on the system you're
using.
|
Listing Directory Contents
|
The command ls lists the contents of directories and provides
information about files. Various options of ls modify the
information provided in its output. The simplest form of ls
(without any options, or file or directory names) produces an
alphabetical list of the names of all the files (except dot files)
and subdirectories in the current working directory. Here is an
example:
$ ls
final_paper homework1.30 mail
homework1.16 homework2.13 public_html
$
Giving the name of a directory as an argument to the ls
command causes ls to display the contents of that directory
rather than the current working directory. For example:
$ ls public_html
index.html
$
To view dot files (those files whose names begin with a period), use
the -a option, which shows all files:
$ ls -a
.
.kshrc
.profile homework1.30
..
.mh_profile .sh_history homework2.13
.addressbook .nfsB3A1
final_paper mail
.exrc
.nn
homework1.16 public_html
$
Another option, -l, produces a long format listing of the directory contents. This
shows detailed information for each file and directory:
$ ls -al
total 106
drwx--l--- 5 joe home 1536 Jan 30 13:10 .
drwxr-xr-x 1482 root home 27136 Jan 29 14:40 ..
-rw-r----- 1 joe home 0 Aug 31 1994 .addressbook
-rw-r--r-- 1 joe home 7175 Jan 29 15:11 .kshrc
-rw-r----- 1 joe home 9 Sep 6 1992 .exrc
-rw-r----- 1 joe home 11 Jul 2 1992 .mh_profile
-rw------- 1 joe home 360 Jan 30 13:13 .nfsB3A1
drwx--l--- 2 joe home 512 Jan 11 15:55 .nn
-rw-r--r-- 1 joe home 1004 Jan 29 15:13 .profile
-rw------- 1 joe home 770 Jan 29 15:13 .sh_history
-rw------- 1 joe home 1743 Jan 5 14:16 final_paper
-rw------- 1 joe home 1216 Jan 11 14:41 homework1.16
-rw------- 1 joe home 1216 Jan 11 14:41 homework1.30
-rw------- 1 joe home 1216 Jan 16 11:46 homework2.13
drwx------ 2 joe home 512 Jan 11 15:54 mail
drwxr-sr-x 2 joe home 512 Jan 17 10:05 public_html
$
| Example entry: |
| permissions |
links |
owner's login |
group |
size (bytes) |
date/time last modified |
file name |
| -rw------- |
1 |
joe |
home |
1216 |
Jan 16 11:46 |
homework2.13 |
The information you are most likely to use from a long-format listing
is labelled in the above example. You may wish to pay special
attention to file size, since too many large files can fill up your
disk space. Permissions determine who may read, write, or execute
each file and directory. Only the owner of a file or directory can
change its permissions. In the above example, the user joe is
the owner of all the files and directories shown. For a detailed
discussion of permissions, see the section "Sharing and
Protecting your Files and Directories" later in this How-To.
|
Wildcards: Shortcuts to File and Directory Names
|
Wildcards are special characters reserved for filling in any
character or string of characters when typing the name of an existing
file or directory. They are particularly handy when typing a long or
unwieldy file or directory name, or when you want to make a command
apply to a group of similarly named files or directories. The most
commonly used wildcard is the asterisk (*),
used to mean "zero or more occurrences of any and all
characters." For example, to list all files beginning with
.m, use the following command:
$ ls .m*
.menueditorprog .menumotd .menushellprog
.menumailprog .menunewsprog .mh_profile
$
You can use multiple wildcards in the same name. For example, if you
have files as shown on the long listing in the previous section
above, an easy way to list only the files homework1.16 and
homework1.30, is to use the command lsh*1.*. Be very
careful when using wildcards to delete files, because your command
could remove more files than you originally intended. To ensure that
you know what files a wildcard expression represents, it's a good
idea to use the wildcard expression in an ls command before
using it with a command that can modify or erase your files. Note,
for instance, that leaving out the period from the example above
produces a list of all the homework files:
$ ls h*1*
homework1.16 homework1.30 homework2.13
$
|
Moving Between Directories
|
When you log in, your initial working directory is your home
directory. You can move up and down the UNIX file structure using the
change directory command, cd. The cd command
usually requires you to specify the name of the directory you want to
change tn (i.e., cddirectory_name). You can either
specify an absolute path to another directory (i.e.,
cd/home/k) or a relative path (i.e., cd../mail). Typing
only cd will return you to your home directory.
|
Checking your Disk and File Quotas
|
Some day, you may get a message from the UNIX system stating that you
have "exceeded your limit," or "reached your quota."
These messages indicate that you have used up all the disk space
allocated to you, either in your home directory, or in your incoming
mailbox (also called your mail spool).
Until you free up some disk space, you will not be able to create or
save any files. This may prevent you from using programs that modify
files in your home directory, such as email programs or news readers.
To see your current disk usage and limits, use the quota
-v command. The following is an example of typical quota
output on the student cluster:
$ quota -v
Disk quotas for joe (uid 9593):
Filesystem usage quota limit timeleft files quota limit timeleft
/homeb 368 4096
4300 94
2000 2500
/homec 0 1 1
0
1 1
$
In the Filesystem column, two file systems are shown,
/homeb and /homec. All student home directories are in
the /homeb directory. Faculty and staff home directories are
stored in /homea, which does not show in the above output. As
a student, joe need only pay attention to the data given for
the /homeb file system.
When reading the quota output, your current disk usage
(counted in 1 kilboyte blocks) is reflected in the usage
column, and your total number of files is shown in the
files column. The quota columns indicate the point at
which the system will complain that you hare too many files or are
using too much of your allotted disk space (also counted in 1
kilobyte blocks). The limit columns indicate the absolute
maximum amount of disk space or number of files you can use. Think of
the difference between the quota and the limit as a
buffer. Once you've surpassed your quota, the relevant
timeleft (called grace on ux7) column will start
a count-down - you have seven days to reduce your disk usage or number
of files. After seven days you will no longer be able to do anything
other than delete files.
If you get a message from the system stating that you've exceeded
your disk space quota, immediately delete some of the files in your
home directory, transfer them to a different system, or compress them
so that they take up less space. Various compression programs are
available on the CCSO UNIX systems, including compress,
gzip, and zip. You can learn more about these
compression programs using the UNIX online documentation. For help,
see the section below that discusses "Using Online UNIX
Documentation."
|
Incoming Mailbox Quotas
|
Your mail spool is checked by the system each time you log in-if you
have exceeded your mail quota, the system will send you a warning. If
this happens, you should read your mail and either delete the
messages or save them as files in your home directory. Don't leave
messages in your incoming mailbox.
|
Managing Your Files
|
When you are logged in to your UNIX account, if you download free
software from a server or save an e-mail message or a news article,
you are writing to the disk space in or below your home directory
(unless you specify a different path). These tasks involve either
creating new files, or appending to existing ones. As the number of
files in your account increases, you may vish to reorganize them to
suit your current needs. You can create directories to organize your
files, and move files among directories as your activities dictate.
You can also copy and rename files and directories, and remove them
when they're no longer needed.
|
Creating Directories
|
Directories are the main organizational tool on a UNIX system. You
can use them to organize related files just as you would on a desktop
system (i.e., using folders on a Macintosh, or directories on a
DOS/Windows system). The command mkdir is used to create new
directories. It always takes the name of a new directory as an
argument, as in mkdirdirectory_name. For example, to
create a new directory called myhomework beneath the current
working directory, use the command:
$ mkdir myhomework
|
Moving and Renaming Files and Directories
|
In UNIX, the command, mv, is used both to rename files and
directories and to move them to other locations. The mv
command always takes two arguments, either two file names, two
directory names, or one of each. To rename a file or directory, the
syntax is mv old_name new_name. For example, to rename
the file called homework in the current working directory
to homework.cs101, type:
$ mv homework homework.cs101
If used incorrectly, mv can be a dangerous command. For
instance, if a file already exists with the name
homework.cs101, the mv command will remove that
existing file, replacing it with the one that's being renamed. This
may not be what you want. It is safer to use the interactive option
(-i) with mv so that the system prompts you to confirm
before removing any files. For example:
$ mv -i homework homework.cs101
remove homework.cs101? (y/n) n
$
The mv command can also be used to move files or directories
to other locations. If you want to move a file from one directory to
another, the syntax is mv file_name directory_name. For
example, to move all the homework files in the current working
directory to an existing subdirectory called cs101, type:
$ mv -i homework* cs101
The cs101 directory must already exist for the above command
to work. The -i option forces the system to prompt you before
removing any files of the same name.
The table below shows the various ways the mv command can be used:
| mv Command |
|
Action |
|
| mv old_name new_name |
|
Rename a file or directory. |
| mv file_name directory_name |
|
Move a file to an existing directory. |
| mv directory_name1 directory_name2 |
|
Move a directory (and all files therein) to a different directory.
Directory_name2 must already exist, or this command will
simply rename directory_name1 to directory_name2.
|
|
|
Copying Files
|
The copy command, cp, creates an exact duplicate of a file. It
always takes two arguments, the name of the original file and the name
or location of the copy to be created. By necessity, the new file must
have a different absolute path than the original-that is, it must either
have a different name, or if it has the same name, it must reside in a
different directory. Like rm and mv, cp can take
the -i option to force the system to prompt you before removing
any existing files.
To make a copy of a file in the current working directory, use the
syntax cpfile_namecopy_file_name, as shown in the
following example:
$ cp -i final_paper econ101_paper
The table below shows the various uses of the
cp command:
| cp Command |
|
Action |
|
| cp file_name copy_file_name |
|
create a duplicate of the file in the current working directory
|
| cp file_name directory_name |
|
create a duplicate of the file in the directory specified
(the copy will have the same name as the original, but reside
in a different directory)
|
| cp file_name1 directory/file_name2 |
|
create a duplicate of the file in the directory specified,
and give it a different name as specified
|
|
|
Combining Files
|
The cat command can be used for combining the contents of one or
more files into a new or an existing file. To create a new file from the
contents of one or more existing files, use the redirection symbol,
> , as in cat file_name1
file_name2>new_file . The files will be combined
serially in the order specified. Note: Be careful when using
redirection; if a file called new_file already exists, it
will be overwritten! To append one or more files to the end of an
existing file, use the >> redirection symbol instead, as in
catfile_name1 >> file_name2 .
|
Removing Files
|
When files are removed in UNIX, they are lost forever. There is no
"undelete" command. Therefore, it is important to be careful
when purging your files. The UNIX command for removing files is
rm, and it takes the name of an existing file as an argument, as
in rm file_name. Especially when removing a group of
files, it is safer to use the interactive option, -i, so that the
system prompts you to type y(es) or n(o) before it deletes
the file(s). For example:
$ rm -i homework*
rm: remove homework1.16 (y/n)? n
rm: remove homework1.30 (y/n)? y
rm: remove homework2.13 (y/n)? y
$
Remember, rm is forever; -i give you one last chance.
|
Removing Directories
|
The rmdir command is used to remove directories, as in
rmdir directory_name. It operates exactly like the rm
command, and takes the interactive option (i) as well.
Directories must be empty-that is, they must not contain any files or
subdirectories before they can be removed with rmdir.
|
Sharing and Protecting your Files and Directories
|
The chmod command is used to change the read, write, and execute
permissions on files and directories. If you have specific files you
want to share with others, such as the files making up your personal Web
pages, you must change their permissions before others can view or
change them.
There are four parts to the chmod command-the who
option(s), the opcodes (i.e., operation codes), the
permission option(s), and the name of the file or directory for
which permissions are to be changed:
| Who Options |
|
Opcode Options |
|
Permissions |
|
| u user |
|
+ add permission |
|
r read |
| g group |
|
- remove permission |
|
w write |
| o other |
|
= assign permission |
|
x execute |
| a all of the above |
|
|
|
|
|
Who specifies who the permission affects, the user (u),
the group (g), others (o), or all three (a). The
user is the owner of the file or directory, the group
consists of those with whom the owner shares a group id (on CCSO UNIX
systems, if you're a student, this generally includes other students; if
you're faculty/staff, it includes people in your campus unit), and
other represents all othdr users on the system. The opcode
part of the chmod command specifies whether a permission is added
to (+), removed from (), or simply assigned to
(=) the who specified. The permission
specifies the type of access that is being added or removed, namely read
(r), write (w), or execute (x).
The following example shows the structure of the
chmod command:
chmod g+r file_name
| change mode command |
who |
opcode |
permission |
file to be changed |
| chmod |
g |
+ |
r |
file_name |
A good way to understand a chmod command is to read it aloud. The
previous example reads "change mode for group; add read permission
on the file file_name."
The permissions associated with a file or directory can be viewed using
the long format list command, lsl. The example below shows the
permissions for the file findit.sh:
-rwxrwxrwx 1 joe
home 1216 Jan
13 8:22 findit.sh
| type |
user |
group |
other |
| - |
rwx |
rwx |
rwx |
Permissions are expressed by a series of ten characters, consisting of
letters and dashes. The first character identifies the object's type; a
dash (-) represents a file, a d represents a directory.
The next three characters indicate the read (r), write
(w), and execute (x) permissions of the user (owner) of
the file, the second set of three indicates the group's read, write, and
execute permissions, and the last three, all others' read, write and
execute permissions. Read, write, and execute are always found in the
same position for each category of who. A dash appearing in any
one of the nine positions means the corresponding permission is turned
off. If a letter (i.e., r, w, x) appears, the
permission is turned on.
In the above example, the user joe, his group, and all other
users have read, write and execute access to the file findit.sh.
The initial dash indicates that the item is a file. If it were a
directory, the first bharacter would be a d instead of a dash.
|
Examples of the chmod Command
|
The following example shows how to remove others' read, write, and
execute permissions from a file named homework1.16:
$ chmod o-rwx homework1.16
To check that the permissions have been changed, list the file with
ls -l:
$ ls -l homework1.16
total 8
-rwxrwx--- 1 joe home 1216 Jan 13 8:22 homework1.16
Adding, or granting, permissions can be accomplished using the add
(+) or assign (=) opcodes. For example, to give others read and
write permissions again, you could use the command:
$ chmod o=rw homework1.16
Multiple who, opcodes, and permissions can be used
together, as long as a comma (but no spaces) separates each combination
(if they are different), and a space separates each file or directory
name if more than one is specified. For example, you can simultaneously
change permissions on two files at once, granting read, write, and
execute permission to your group, but only read and write permission to
all others, as follows:
$ chmod g=rwx,o=rw homework1.1 econ101_paper
Or, if the same opcode and permissIons are being used for each
who, they can be combined without commas. The following example
adds read and write permissions for the group and others to the file
homework1.16:
$ chmod go+rw homework1.16
The chmod command works exactly the same way for directories.
Important: a directory must be made executable in order for
anyone, including yourself, to be able to make it the current directory
(i.e., to cd into it) and read a file in it. Because of this, if
you want people to be able to read your Web pages (from UIUC or from
Tokyo), you must add croup and other executable permissions to both your
home and public_html directories (i.e.,
chmodgo+x~public_html).
|
Using Online UNIX Documentation
|
All UNIX systems have online documentation or manuals, called man
pages,for UNIX programs and commands. The program
man is used to display the documentation for the command or
program that you specify, as in mancommand. For example,
to view the man page for the newsreader nn, you would type the
command:
$ man nn
If you cannot recall the exact name of the command you want to look up,
or you don't get the desired output using the form
mancommand, try using the -k option to search
the man pages for a particular keyword, as in mankkeyword.
This displays a listing of summaries for all man pages that
contain the keyword (sometimes the resulting output can be quite long).
>From this list you can choose the appropriate man pages to browse. For
example:
$ man -k remove
prunehistory (8) - remove file names from Usenet history file
prunehistory (8) - remove file names from Usenet history file
rm, rmdir (1) - remove (unlink) files or directories
rmdir (2) - remove a directory file
rmdir, rm (1) - remove (unlink) directories or files
rmf (1) - remove an MH folder
[output omitted]...
$
Sometimes you will see a number in parentheses after the name of the
program or command. This is the volume number of the manual set. By
default, when you type man nn, you are looking in volume 1. If
you would like to see the manual pages for a command in a different
volume, you need to specify the volume number. For example, to see the
man page for 'prunehistory' shown above, type:
$ man 8 prunehistory
|
Viewing Files
|
Several UNIX commands can be used to view the contents of files without
using an editor. These commands have a variety of uses. Before removing
a file, for instance, you'll probably want to make sure you know what's
in it. You may want to read a file, but not want to edit it or take the
chance that it might be changed by accident.
|
Viewing a File All at Once
|
The concatenate command, cat, displays a file on your screen,
from first line to last without stopping (i.e.,
catfile_name). If a file is large, cat will
probably display it too quickly for you to read all but the very end,
but it does give you a fast glance at the contents, reminding you of
what's in the file.
|
Viewing a File One Screen at a Time
|
The program more is a pagerit allows you to browse through
a file, one screen at a time, without invoking an editor such as Pico or
vi.
As you page through a file with more, an indicator in the lower
left corner of the screen shows you how much of the file has been
displayed. To advance one screen at a time, press <SPACE>,
or proceed one line at a time by pressing <RETURN>. Several
other navigational commands are also available within more,
including a command to search for a particular word or phrase. Here is a
summary of useful more keystrokes:
| more Keystroke |
|
Result |
|
| <SPACE> |
|
display next page |
| <RETURN> |
|
display next line |
| d |
|
Scroll forward (down) one-half page |
| f |
|
skip forward one page |
| b |
|
skip backward one page (on students and staff)
|
| /string |
|
search for occurrence of string
|
| n |
|
search for next occurrence of specified string
|
| h |
|
help |
| q |
|
exit from more |
|
|
Printing Files
|
On CCSO UNIX systems, the out command can be used to print files.
You must specify a destination printer with this command, as in:
out -dest printer_name file_name
Here are some publicly accessible printer destinations for
out:
| Printer Name |
|
Type and Location of Printer |
|
| 3800 |
|
IBM 3800 Laser printer, L440 DCL |
| ag3812 |
|
IBM 3812 Laser printer, N-120 Turner Hall |
| comm |
|
high-speed printer, 70 Comm West |
| dcl |
|
IBM 3203 printer, L441 DCL |
| fax |
|
outbound fax service |
| lincoln |
|
HP LaserJet 3si, OCCSS at 212 Lincoln Hall |
| ps3812 |
|
IBM 3812 Laser printer, 493 Lincoln Hall |
| psych |
|
IBM 3262 Line printer, 453 Psychology |
|
The out command can take a number of additional options (some
depending on the destination of the print job). The syntax of the out
command with several of the more common options is shown below:
out -dest printer_name -bin value -banner string file_name
The -bin option takes a numeric value (i.e.,
-binvalue) that references a numbered bin that is used to
store the print job at the printer site until it is picked up by the
sender. The -banner option takes a character string, such
as a name or file identification (i.e., -bannerstring),
that is printed in large lettdrs on the banner (first) page of the print
job. If -banner is not specified (or not active for a particular
printer), publicly accessible destinations will print a banner page
showing the sender's login.
Below is example of the out command with multiple options,
followed by the system message that is returned:
$ out -dest lincoln -banner JOSEPH econ101_paper
200 CSO Print Server v3.2 (22 Aug 14:20). Say your request.
200 Cleared as filed, squawk 2435.
Remember the above squawk code; you'll need it to identify your job if you need to cancel or inquire about it later.
$
Part of the system message is the squawk code-an identification
number assigned to each print job. If you must cancel your print job, or
if it gets lost or never prints out, you need to know the squawk code in
order to have the problem investigated.
Each out destination may have additional options for customizing
print jobs. Some destinations also have restrictions. To find out what
they are, use the command:
out -info printer_name
The example below shows information for the printer at Commerce West:
$ out -info comm
200 CSO Print Server v3.2 (22 Aug 14:20). Say your request.
Information about dest 'comm':
100 One of a family of medium-speed impact printers at RJE sites.
100 Special options [defaults] that are recognized by this driver:
100 -forms name Specify name of form to be loaded [STAN].
100 Additional information:
[output omitted]...
$
|
Quitting Programs Properly
|
UNIX is a multitasking environment-you can have multiple programs
running at the same time, even though only one can be displayed to the
screen at a time. Each program or command that is invoked on a UNIX
system is called a process or job, and is given a
process number so the system can keep track of what's going on.
When a program is exited, or a command is completed, it stops using
system resources, such as memory, and its process number is returned to
the pool of numbers used by the system.
|
Quitting, Suspending and Interrupting Programs
|
All UNIX programs have a preferred way of quitting or exiting, usually
consisting of a key combination such as <CONTROL>x (Pico),
<SHIFT>q (nn), or <CONTROL>d
(nslookup) or a command such as quit, exit, or
bye. When a program is exited in the preferred manner, all files
are closed properly and the program relinquishes its process number and
system resources. You should learn how to quit each program you run, and
use that method whenever possible.
Occasionally, you may find yourself unable to quit a program in the
preferred manner, or you may need to temporarily interrupt a process in
order to do something else. Most programs can be temporarily
suspended by typing <CONTROL>z. When a program is
suspended, it stops processing, but doesn't actually close and quit;
therefore, it continues to use system memory. A suspended job can be
resumed. Another key combination, <CONTROL>c,
interrupts a program permanently. An interrupted program stops
processing and using system memory, but open files may not close
properly, and any work in progress may not be saved.
|
Killing a Suspended Program
|
At some time you may need to suspend a program to check on another
program you have running, to engage in a talk request, or to look
up a word with oed2 (Oxford English Dictionary) while
editing a file. When you're finished with the secondary task, you can
tell the system to resume running the suspended program. For instance,
suppose you're editing a file in vi when a friend sends you a
talk request. You can suspend your vi session to go to the
UNIX prompt and accept the request. While talk is displayed on
your screen, it is in the foreground, and vi is
suspended. When you're finished talking to your friend and you've
quit the talk session, you can type fg, which stands for
"foreground," to resume your vi session.
If two or more programs are suspended concurrently, you need to specify
the process number of the program you want to resume. As previously
stated, the system assigns a process number to each program or command
that is started. You can review the processes you're running using the
command ps at the UNIX prompt. For example, if
you're running a small program you wrote, plus Pine and oed2,
your ps output might look something like this:
$ ps
PID TTY TIME CMD
1058 pts/33 0:02 ksh
3670 pts/33 0:00 my_program
4577 pts/33 0:00 oed2
5432 pts/33 0:00 pine
6022 pts/33 0:00 ps
$
The output shows the three programs that are running, plus your shell
(ksh) and the ps command. The process number for each is
found in the column labeled PID. To bring any one of these
programs to the foreground, use the command
fg process_number. For example, if you wanted to resume
oed2, you would type fg 4577.
If you're trying to log out of your account, and you get the system
message "there are stopped jobs," it means a suspended program
is running. In this instance, you should resume the program and exit it
in the preferred manner. If you cannot do this because you don't know
how to quit or because something is wrong with the program, you can
terminate the process with the kill command (i.e., kill
process_number). Before killing a process, verify its process
number with the ps command. In the above example, if you wanted
to terminate oed2, you would type kill 4577.
Sometimes, a simple kill command may not work (i.e., the
ps output shows that the process is still running). When this
happens, you can add a signal (a command modifier similar to an
option) to your kill command. The safest signal is 3
(i.e., kill -3process_number), which tells the system to
quit the process by closing all open files and exiting. If 3
doesn't work, use the 9 signal (i.e.,
kill -9process_number), which is the absolute kill
command and has the same effect as an interrupt. Only use kill -9
when nothing else works, since files may not close properly and you may
lose any work in progress.
|
Changing Your Password
|
To keep your UNIX account secure, change your password several times a
year. You can change your password by typing passwd at the UNIX
prompt. The system will prompt you to type your old password (to verify
your identity), and to type your new password twice. Below is the screen
output produced by changing passwords on students.uiuc.edu:
$ passwd
Changing Cluster password for joe
Old password: (password not shown)
New password: (password not shown)
Re-enter new password: (password not shown)
Password changed successfully on Cluster server.
Cluster account data will be updated at approximately 11:00
$
New passwords do not take effect immediately on the CCSO UNIX clusters.
If you change your password on the cluster, log out, and then log in
again immediately, you may need to use your old password again. On other
systems, however, passwords may be updated immediately.
|
Logging Out
|
When you want to log out of your UNIX account, simply type exit
at the UNIX prompt (on some systems, logout works also).
Occasionally when you attempt to log out, you may see a message saying
"there are stopped jobs." This simply means that you
intentionally or unintentionally suspended a program while you were
working. You should either resume the program and quit it properly, or,
if this isn't possible, use the ps command to see its process
number and then use the kill command to quit it as described
earlier in this section.
|
UNIX Command Quick Reference
|
|
* (asterisk) |
|
Wildcard character representing zero or more of any and
all adjacent characters in file or directory names.
|
| . |
|
Notation for "current working directory."
|
| .. |
|
Notation for "directory immediately above current
working directory"; used with cd and ls
commands.
|
|
~ |
|
Notation for absolute path of user's home directory.
|
| ~login |
|
Absolute path of the home directory of the user
specified by Login.
|
|
cat file_name |
|
Concatenate (or display) the entire file specified
to the screen.
|
|
cat file_name1 file_name2 > new_file
|
|
Combine two or more existing files into a new file.
|
|
cat file_name >> existing_file
|
|
Append one or more files to the end of an existing file.
|
|
chmod mode file_name(s) |
|
Change the read, write, or execute permissions of
a file or directory; mode consists of who, opcode,
and permission. Example: chmod g+r file_name
|
| Who Options |
|
Opcode Options |
|
Permissions |
|
| u user |
|
+ add permission |
|
r read |
| g group |
|
- remove permission |
|
w write |
| o other |
|
= assign permission |
|
x execute |
| a all of the above |
|
|
|
|
|
|
|
cd directory_name |
|
Change to the specified directory; can take relative
or absolute path.
|
|
cp [-i] old_file_name new_file_name
|
|
Create a duplicate of the file in the current working
directory. Options include i (interactive, prompt
for y or n before overwriting an existing file).
|
|
cp [-i] file_name directory_name
|
|
Create a duplicate of the file with the same name in the
directory specified. Options include i (interactive,
prompt for y or n before before overwriting
an existing file).
|
|
cp [-i] file_name directory/file_name
|
|
Create a duplicate of the file with a different name
in the directory specified. Options include i
(interactive, prompt for y or n before
overwriting an existing file).
|
|
ls [-al] [file_name(s) or directory_name]
|
|
List the specified file(s),or all the files in the
specified directory. Options include a (list
all, including dot files) and l (long format).
|
|
mkdir directory_name(s) |
|
Make one or more new directories with the name(s) specified.
|
|
more file_name |
|
Display the specified file one screen at a time.
|
|
mv [-i] old_file_name new_file_name
|
|
Rename the specified file. Options include i
(interactive, prompt for y or n before
overwriting an existing file).
|
|
mv [-i] old_directory_name new_directory_name
|
|
Rename the specified directory. Options include -i
(interactive, prompt for y or n before
overwriting an existing directory).
|
|
mv [-i] directory_name1 directory_name2
|
|
Move the first directory (and all files and subdirectories
it contains) to the second directory. Directory_name2
must already exist. Options include -i (interactive,
prompt for y or n before overwriting an existing
directory).
|
|
mv [-i] file_name directory_name
|
|
Move the specified file to the specified directory.
Options include -i (interactive, prompt for y
or n before overwriting an existing file).
|
|
out -dest printer_name[-banner string -bin value file_name
|
| |
|
Print specified file to the specified printer.
Options include -bin value (specify a bin
number for printout storage), -banner string
specify a string to be printed in large print on the banner
page).
|
|
out -info printer_name
|
|
Display information about the specified output device.
|
|
printenv PATH
|
|
Print the preconfigured search path for your login
to the screen.
|
|
pwd
|
|
Print the name of the current working directory
to the screen.
|
|
quota -v
|
|
Return information about your quota limits ad current usage.
|
|
rm [-i] file_name(s)
|
|
Remove the specified file(s). Options include -i
(interactive, prompt for y or n before
removing).
|
|
rmdir [-i] directory_name(s)
|
|
Remove the specified directory(s) which must be empty.
Options include -i (interactive, prompt for y
or n before removing).
|
|