<?xml version="1.0" encoding="ISO-8859-1"?><html xmlns="http://www.w3.org/1999/xhtml" xmlns:xh="http://www.w3.org/1999/xhtml" xmlns:axle="http://www.cs.odu.edu/~zeil/axle" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ns0="http://www.cs.odu.edu/~zeil/axle" mode="ignore" ns0:xlinkuri="open/unix.dbk" ns0:xpath="/html" ns0:page="unix" foo="0 " ns0:last="/cocoon/~cs252/open/unix/section-8.2.html"><head><title>An Introduction to Unix</title><link type="text/css" href="_axle/docbookstyle.css" rel="stylesheet"/><link type="text/css" href="_axle/cppformat.css" rel="stylesheet"/><link type="text/css" href="_axle/overrides.css" rel="stylesheet"/><script src="_axle/docbook.js"/><link href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-2.2.html" title="Next" rel="next"/><link href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-1.8.html" title="Prev" rel="prev"/><link href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/unix.html" title="Up" rel="up"/><link href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/unix.html" title="First" rel="first"/><link href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-8.2.html" title="Last" rel="last"/><script>function gotoNext() {top.location.href="/cocoon/~cs252/open/unix/section-2.2.html";}
function gotoPrev() {top.location.href="/cocoon/~cs252/open/unix/section-1.8.html";}
function gotoUp() {top.location.href="/cocoon/~cs252/open/unix/unix.html";}
</script><xhtml:link xmlns:xhtml="http://www.w3.org/1999/xhtml" rel="stylesheet" href="_axle/navigation.css" type="text/css"/><xhtml:script xmlns:xhtml="http://www.w3.org/1999/xhtml" src="_axle/navigation.js"/></head><body><table width="100%" class="navigationBar"><tr class="navigationBar"><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="First" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/unix.html"><img class="navigationBar" src="_axle/first.gif" alt="First"/></a></td><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="Prev" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-1.8.html"><img class="navigationBar" src="_axle/prev.gif" alt="Prev"/></a></td><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="Up" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/unix.html"><img class="navigationBar" src="_axle/up.gif" alt="Up"/></a></td><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="Next" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-2.2.html"><img class="navigationBar" src="_axle/next.gif" alt="Next"/></a></td><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="Last" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-8.2.html"><img class="navigationBar" src="_axle/last.gif" alt="Last"/></a></td><td class="navigationBar"/><td width="5%" class="navigationBar"><a class="navigationBar" title="CS252 Home" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/directory/announcements.html"><img class="navigationBar" src="_axle/home.gif" alt="CS252 Home"/></a></td><td width="5%" class="navigationBar"><a class="navigationBar" title="discuss this page" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/forum/getXPath/open/unix/section-2.html"><img class="navigationBar" src="_axle/forum.gif" alt="discuss this page"/></a></td></tr></table><br/><script type="text/javascript">
checkForAnchorOnOtherPage('section-1','unix');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('mainmini','mainmini');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-1.1.1','mainmini');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('displays','mainmini');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('networks','mainmini');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('taleof2','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-1.2.1','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('pcrev','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref1','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref1_live','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref2','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref2_live','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote1','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote2','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('mswin','taleof2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('reflections','reflections');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref3','reflections');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref3_live','reflections');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote3','reflections');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('ssh','ssh');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref4','ssh');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref4_live','ssh');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('puttyConnect','ssh');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('sshConnect','ssh');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote4','ssh');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('login','login');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('termtypes','termtypes');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref5','termtypes');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref5_live','termtypes');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote5','termtypes');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-1.7','section-1.7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-1.8','section-1.8');
</script><div class="sect1" id="section-2" ns0:xpath="//*[@id='section-2']" ns0:page="section-2" ns0:next="/cocoon/~cs252/open/unix/section-2.2.html" ns0:prev="/cocoon/~cs252/open/unix/section-1.8.html" ns0:up="/cocoon/~cs252/open/unix/unix.html" foo="0 " ns0:last="/cocoon/~cs252/open/unix/section-8.2.html" ns0:first="/cocoon/~cs252/open/unix/unix.html"><div class="info_sect1"><div class="title_sect2">2. The Basics</div></div><div class="TOC">Contents:<div class="TOC-section1"><a href="#section-2.1">2.1 Files and Directories</a></div><div class="TOC-section2"><a href="#basicFileCmds">2.1.1 Getting Started: Navigating Your Directories</a></div><div class="TOC-section2"><a href="#cmdlist">2.1.2 Some Common Unix Commands</a></div><div class="TOC-section1"><a href="section-2.2.html#section-2.2">2.2 Basic Commands</a></div><div class="TOC-section2"><a href="section-2.2.html#paths">2.2.1 Command Arguments</a></div><div class="TOC-section2"><a href="section-2.2.html#specialChar">2.2.2 Special Characters</a></div><div class="TOC-section2"><a href="section-2.2.html#cmdpatterns">2.2.3 One Pattern, Many Instances</a></div><div class="TOC-section2"><a href="section-2.2.html#quoting">2.2.4 Quoting</a></div><div class="TOC-section1"><a href="section-2.3.html#section-2.3">2.3 Modifying and Combining Commands</a></div><div class="TOC-section2"><a href="section-2.3.html#redirect">2.3.1 Redirection</a></div><div class="TOC-section2"><a href="section-2.3.html#piping">2.3.2 Pipes</a></div><div class="TOC-section2"><a href="section-2.3.html#xargs">2.3.3 xargs</a></div><div class="TOC-section2"><a href="section-2.3.html#find">2.3.4 find</a></div><div class="TOC-section1"><a href="section-2.4.html#section-2.4">2.4 Protection</a></div><div class="TOC-section2"><a href="section-2.4.html#section-2.4.1">2.4.1 Protection and Permissions</a></div><div class="TOC-section2"><a href="section-2.4.html#section-2.4.2">2.4.2 chmod</a></div><div class="TOC-section2"><a href="section-2.4.html#umask">2.4.3 Beware the umask!</a></div><div class="TOC-section2"><a href="section-2.4.html#section-2.4.4">2.4.4 Planning for Protection</a></div></div><div class="sect2" axle:nopage="1" id="section-2.1"><div class="info_sect2"><div class="title_sect3">2.1. Files and Directories</div></div><div class="TOC">Contents:<div class="TOC-section2"><a href="#basicFileCmds">2.1.1 Getting Started: Navigating Your Directories</a></div><div class="TOC-section2"><a href="#cmdlist">2.1.2 Some Common Unix Commands</a></div><div class="TOC-section3"><a href="#session">2.1.2.1 Session Control</a></div><div class="TOC-section3"><a href="#filemanip">2.1.2.2 File and Directory Manipulation</a></div><div class="TOC-section3"><a href="#textmanip">2.1.2.3 Text File Manipuation</a></div><div class="TOC-section3"><a href="#printing">2.1.2.4 Printing Files</a></div></div><p class="para">Files in Unix are organized by listing them in <span class="emphasis">directories</span>.
Directories are themselves files, and so may appear within other
directories. The result is a tree-like hierarchy. At the root of this
tree is a directory known simply as <span class="quote">
      &#8220;/&#8221;
    </span>.<a onmouseover="DBshowBriefly('fn_fref6_live')" name="fn_fref6" id="fn_fref6" class="footnotemark" href="#fn_fnote6">6</a><div class="footnote_live" id="fn_fref6_live">It may be more
precise to say that this directory's name is the empty string <span class="quote">
      &#8220;&#8221;
    </span>.</div>
This directory lists 
various others:</p><p class="para">
    <p class="para" align="center">
      <span class="inlinemediaobject">
        <img src="unixroot.jpg" fileref="unixroot.jpg"/>
      </span>
    </p>
  </p><p class="para">The <span class="code">bin</span> directory contains many of the programs for performing
common Unix commands. The <span class="code">usr</span> directory contains many of the
data files that are required by those and other commands. Of
particular interest, however, is the <span class="code">home</span> directory, which
contains all of the files associated with individual users like you
and me.
Each individual user gets a directory within <span class="code">home</span> bearing their
own login name. My login name is <span class="code">zeil</span>.</p><p class="para">We can expand our view of the Unix files then as:</p><p class="para">
    <p class="para" align="center">
      <span class="inlinemediaobject">
        <img src="unixroot2.jpg" fileref="unixroot2.jpg"/>
      </span>
    </p>
  </p><p class="para"><span class="code">cd</span> and <span class="code">ls</span> are two common Unix commands, as will be
explained later.</p><p class="para">Within my own home directory, I have a directory also named <span class="quote">
      &#8220;bin&#8221;
    </span>,
containing my own personal programs. Two of these are called <span class="quote">
      &#8220;clpr&#8221;
    </span>
and <span class="quote">
      &#8220;psnup&#8221;
    </span>. So these files are arranged as:</p><p class="para">
    <p class="para" align="center">
      <span class="inlinemediaobject">
        <img src="unixroot3.jpg" fileref="unixroot3.jpg"/>
      </span>
    </p>
  </p><p class="para">The full name of any file is given by listing the entire path from the
root of the directory tree down to the file itself, with <span class="quote">
      &#8220;/&#8221;
    </span>
characters separating each directory from what follows. For example,
the full names of the four programs in the above diagram are
<div class="programlisting">
   /bin/cd
   /bin/ls
   /home/zeil/bin/clpr
   /home/zeil/bin/psnup
</div></p><p class="para">There are some common abbreviations that can be used to shorten file
names. 
<div class="itemizedlist"><ul><li>You can refer to the home directory of someone with
login name <span class="emphasis">name</span> as
<span class="code">~<span class="emphasis">name</span></span>.</li><li>You can refer to your own home directory simply as
<span class="code">~</span>.

<p class="para">So you could refer to the file containing my <span class="code">clpr</span> program
as either <span class="code">/home/zeil/bin/clpr</span> or 
<span class="code">~zeil/bin/clpr</span>.</p>

<p class="para">When I
myself am logged in, I can refer to this program by either of those two
names, or simply as
<span class="code">~/bin/clpr</span>.</p></li><li>At all times when
entering Unix commands, you have a <span class="quote">
      &#8220;working&#8221;
    </span> directory. If the file
you want is within that directory (or within other directories
contained in the working directory), the name of the working directory
may be omitted from the start of the filename. When you first log in,
your home directory is your working directory. For example, when I
have just logged 
in, I could refer to my program simply as <span class="code">bin/clpr</span>, dropping the
leading <span class="code">/home/zeil/</span> because that would be my working directory at
that time.</li><li>The working directory itself can be referred to as simply <span class="quote">
      &#8220;.&#8221;
    </span>.</li><li>The <span class="quote">
      &#8220;parent&#8221;
    </span> of the working directory (i.e., the directory
containing the working directory) can be referred to as <span class="quote">
      &#8220;..&#8221;
    </span>.</li></ul></div></p><p class="para">Unix filenames can be almost any length and may contain almost any
characters. As a practical matter, however, you should avoid using
punctuation characters other than the hyphen, the underscore, and the
period. Also, avoid blanks, and non-printable characters within
file names. All of these have special meanings when you are typing
commands and so would be very hard to enter within a filename.</p><p class="para">Some things to keep in mind about Unix file names that may be
different from other file systems you have used:
<div class="itemizedlist"><ul><li>Unix file names are often very long so that they describe their
contents.<a onmouseover="DBshowBriefly('fn_fref7_live')" name="fn_fref7" id="fn_fref7" class="footnotemark" href="#fn_fnote7">7</a><div class="footnote_live" id="fn_fref7_live">As we will see, one almost never needs to type an
entire filename in a Unix command, so long file names are no harder to
work with than short ones.</div> The rather perverse exception to this rule
is that program/command names are, by tradition, very short, often
confusingly so.</li><li>Upper and lower case letters are distinct in Unix filenames.
<span class="quote">
      &#8220;<span class="code">MyFile</span>&#8221;
    </span> and <span class="quote">
      &#8220;<span class="code">myfile</span>&#8221;
    </span> are different names.</li><li>Periods (<span class="quote">
      &#8220;.&#8221;
    </span>) are not treated by Unix as a special character.
<span class="quote">
      &#8220;<span class="code">This.Is.a.legal.name</span>&#8221;
    </span> is perfectly acceptable as a Unix
filename. Many programs, however, expect names of their data files to
end in a period followed by a short <span class="quote">
      &#8220;standard&#8221;
    </span> extension indicating
the type of data in that file. Thus data files with names like
<span class="quote">
      &#8220;<span class="code">arglebargle.txt</span>&#8221;
    </span> for text files or <span class="quote">
      &#8220;<span class="code">nonsense.cpp</span>&#8221;
    </span>
for C++ source code are common.

<p class="para">By convention, files containing executable programs generally do not
receive such an extension.</p></li><li>Keep in mind that directories are separated by <span class="quote">
      &#8220;/&#8221;
    </span> in file
names, not by <span class="quote">
      &#8220;<span class="inlineequation"><span class="mathphrase">\</span></span>&#8221;
    </span> as is common in some other operating
systems. </li></ul></div></p><div class="sect3" axle:nopage="1" id="basicFileCmds"><div class="info_sect3"><div class="title_sect4">2.1.1. Getting Started: Navigating Your Directories</div></div>
    

  <p class="para">If you have not yet done so, log in now so that you can work though
the following commands.</p>


<div style="clear:right;"/><table class="sidebar" border="1" width="40%"><tr><td>
<p class="para">
Throughout this course you will encounter sections labelled "Try This:". That means that I <span class="em">really</span> want you to log in, try the commands or procedures I describe, and observe and think about the results.
</p>
<p class="para">
If you don't understand the output you receive, please use the <span class="inlinemediaobject"><img src="_axle/forum.gif" align="top" fileref="_axle/forum.gif"/></span> symbol at the top of the page to post a question in the Forum.
</p>
<p class="para">Some of the <span class="quote">
      &#8220;Try This:&#8221;
    </span> exercises will build on the earlier ones, so skipping these early examples may lead to problems later on.
</p>
</td></tr></table>

<div class="informalexample"><div class="title_example">Try This:</div><p class="para">Upon logging in, your <span class="emphasis">working directory</span> should be your home
directory. The command <span class="code">pwd</span> will <span class="emphasis-bold" role="bold">p</span>rint the <span class="emphasis-bold" role="bold">w</span>orking <span class="emphasis-bold" role="bold">d</span>irectory. Give the command
<div class="screen"><span class="userinput">
   pwd
</span></div>
You should see something like
<div class="screen"><span class="computeroutput">
/home/yourname
</span></div></p><p class="para">Now, let's make a place to play in. <span class="code">mkdir</span> will make a new
directory.
Enter the command
<div class="screen"><span class="userinput">
   mkdir playing
</span></div>
to create a directory named <span class="quote">
      &#8220;playing&#8221;
    </span>.</p><p class="para">The command <span class="code">ls</span> lists the contents of the working directory.
More generally, <span class="code">ls <span class="emphasis">directoryname</span></span> will list the contents
of any directory.<a onmouseover="DBshowBriefly('fn_fref8_live')" name="fn_fref8" id="fn_fref8" class="footnotemark" href="#fn_fnote8">8</a><div class="footnote_live" id="fn_fref8_live">Well, not really <span class="emphasis">any</span> directory.
People can 
    <a href="../fileprot/">protect their own directories</a>
from the
prying eyes of others, in which case <span class="code">ls</span> will fail.</div></p><p class="para">Give the command 
<div class="screen"><span class="userinput">
   ls
</span></div>
and you should see <span class="code">playing</span> listed. In fact, it may be the only
thing listed.</p><p class="para">The command <span class="code">cd</span> is used to <span class="emphasis-bold" role="bold">c</span>hange the working <span class="emphasis-bold" role="bold">d</span>irectory. Give the command sequence
<div class="programlisting">
   pwd
   cd playing
   pwd
   cd ..
   pwd
   cd ./playing
   pwd
</div>
to see this in action.</p></div>

    <p class="para">The <span class="code">cp</span> command copies one or more files. You can give this
command as <span class="code">cp file1 file2</span> to make a copy of file <span class="code">file1</span>,
the copy being named <span class="code">file2</span>. Alternatively, you can copy one or
more files into a directory by giving the command as
<div class="screen"><span class="userinput">
cp file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span> file<span class="inlineequation"><span class="mathphrase"><sub>2</sub></span></span>&#8230;file<span class="inlineequation"><span class="mathphrase"><sub>n</sub></span></span> directory
</span></div></p>

<div class="informalexample"><div class="title_example">Try This:</div><p class="para">Now try the following:
<div class="programlisting">
   ls /usr/include
</div>
You should see a large number of files, including many ending in
<span class="quote">
      &#8220;.h&#8221;
    </span>. 
Copy two of
these files and check to see that the copy was successful, as follows:
<div class="programlisting">
   cp /usr/include/math.h /usr/include/stdio.h ~/playing
   ls ~/playing
</div>
</p></div>

  <div name="fn_fnote8" id="fn_fnote8" class="footnote">8. Well, not really <span class="emphasis">any</span> directory.
People can 
    <a href="../fileprot/">protect their own directories</a>
from the
prying eyes of others, in which case <span class="code">ls</span> will fail. (<a href="#fn_fref8">back</a>)
    </div></div><div class="sect3" id="cmdlist"><div class="info_sect3"><div class="title_sect4">2.1.2. Some Common Unix Commands</div></div><div class="TOC">Contents:<div class="TOC-section3"><a href="#session">2.1.2.1 Session Control</a></div><div class="TOC-section3"><a href="#filemanip">2.1.2.2 File and Directory Manipulation</a></div><div class="TOC-section3"><a href="#textmanip">2.1.2.3 Text File Manipuation</a></div><div class="TOC-section3"><a href="#printing">2.1.2.4 Printing Files</a></div></div>
    
    <p class="para">Here are some common Unix commands. Some of these will be discussed
in more detail later, but if this list at least makes you aware of the
existence of a command that does something you want, then you can
always get the details on the command by reading its on-line manual
page via the <span class="code">man</span> command:
<div class="programlisting">
  man <span class="emphasis">command-name</span>
</div>
</p>
    <p class="para">
You might try experimenting with these in 
your <span class="code">~/playing</span> directory.
</p>
    <div class="sect4" id="session"><div class="info_sect4"><div class="title_sect5">2.1.2.1. Session Control</div></div>
      
      <p class="para">
        <div class="variablelist"><dl><dt class="varlistentry"><span class="term">exit</span></dt><dd class="varlistitem"> Shut down the current shell. If this shell
is the one you got at log-in, this command logs you
out.</dd><dt class="varlistentry"><span class="term">rlogin <span class="emphasis">machine</span></span></dt><dd class="varlistitem"><span class="anchor" id="rlogin"/>Logs you in to another machine on the
network. Use this if the machine you are on seems to be running slowly
and the <span class="code">who</span> command indicates that there are lots of others on
the same machine.

<p class="para"/></dd><dt class="varlistentry"><span class="term">who</span></dt><dd class="varlistitem"> Lists everyone logged into the same machine that you are
using.</dd></dl></div>
      </p>
    </div>
    <div class="sect4" id="filemanip"><div class="info_sect4"><div class="title_sect5">2.1.2.2. File and Directory Manipulation</div></div>
      
      <p class="para">
        <div class="variablelist"><dl><dt class="varlistentry"><span class="term">cd <span class="emphasis">directory</span></span></dt><dd class="varlistitem"><span class="anchor" id="cdcmd"/> Changes your current working directory to the indeicated <span class="emphasis">directory</span>, which may be absolute or relative.</dd><dt class="varlistentry"><span class="term">find <span class="emphasis">directory</span> <span class="emphasis">instructions</span></span></dt><dd class="varlistitem"><span class="anchor" id="findcmd"/>Searches the indicated directory and any subdorectories
within it for files. The instructions may serve to limit the files
found (e.g., search for files with a given name or that have been
modified after a given date) or may indicate commands to run on those files.
</dd><dt class="varlistentry"><span class="term">ls <span class="emphasis">path</span></span></dt><dd class="varlistitem">Lists all the files matching the indicated <span class="emphasis">path</span>. If that path is a directory, lists all the files within that directory. You can provide multiple paths in the same command, or omit the path entirely (in which case the contents of your current working directory will be listed). <span class="code">ls</span> can be modified with a number of <span class="quote">
      &#8220;flags&#8221;
    </span>. Some of the more common are:
<div class="variablelist"><dl><dt class="varlistentry" id="lsa"><span class="term">ls -a</span></dt><dd class="varlistitem">By default, filenames beginning with <span class="quote">
      &#8220;.&#8221;
    </span> are considered
  <span class="quote">
      &#8220;hidden&#8221;
    </span> and not shown by the <span class="code">ls</span> command. The <span class="code">-a</span> (for
  <span class="quote">
      &#8220;<span class="emphasis-bold" role="bold">a</span>ll&#8221;
    </span>) option causes these files to be shown as well.</dd><dt class="varlistentry"><span class="term">ls -l</span></dt><dd class="varlistitem"> This is the <span class="quote">
      &#8220;long&#8221;
    </span> form of <span class="code">ls</span>. It displays
  additional information about each file, such as the size and date on
  which the file was last modified.

  <p class="para">Note that options can be combined. For example, you can say
  <span class="code">ls -la</span> to get extra information including normally hidden files.</p></dd><dt class="varlistentry"><span class="term">ls -F</span></dt><dd class="varlistitem"><span class="anchor" id="lsF"/> Adds a little bit of extra information to each
  file name. 
  If the file is an executable program, its name is marked with an
  <span class="quote">
      &#8220;*&#8221;
    </span>. If the file is a directory, its name is marked with <span class="quote">
      &#8220;/&#8221;
    </span>.</dd></dl></div>
</dd><dt class="varlistentry"><span class="term">mkdir <span class="emphasis">directory</span></span></dt><dd class="varlistitem">  Creates a directory.</dd><dt class="varlistentry"><span class="term">mv <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span> <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>2</sub></span></span></span></span></dt><dd class="varlistitem">     Renames <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span> as
<span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>2</sub></span></span></span>. <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>2</sub></span></span></span> may be in a different directory.</dd><dt class="varlistentry"><span class="term">mv <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span> <span class="emphasis">directory</span></span></dt><dd class="varlistitem">    Moves <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span> to
the given directory.</dd><dt class="varlistentry"><span class="term">pwd</span></dt><dd class="varlistitem"><span class="anchor" id="pwdcmd"/> Prints your current working directory.</dd><dt class="varlistentry"><span class="term">rm <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span>&#8230;<span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>n</sub></span></span></span></span></dt><dd class="varlistitem"> Deletes the listed
files. Be very careful using wildcards with this command.
<span class="code">rm *</span> will delete everything in the current working
directory!</dd><dt class="varlistentry"><span class="term">rm -i <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span>&#8230;<span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>n</sub></span></span></span></span></dt><dd class="varlistitem"> Deletes the listed
files, but firsts asks permission to delete each one.</dd><dt class="varlistentry"><span class="term">rm -r <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span>&#8230;<span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>n</sub></span></span></span></span></dt><dd class="varlistitem"> Deletes the listed
files. If any of these files is a directory, it deletes that directory
and everything in it as well.</dd><dt class="varlistentry"><span class="term">rmdir <span class="emphasis">directory</span></span></dt><dd class="varlistitem">  Deletes a directory
(if empty).</dd></dl></div>
      </p>
    </div>
    <div class="sect4" id="textmanip"><div class="info_sect4"><div class="title_sect5">2.1.2.3. Text File Manipuation</div></div>
      
      <p class="para">
        <div class="variablelist"><dl><dt class="varlistentry"><span class="term">cat <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span>&#8230;<span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>n</sub></span></span></span></span></dt><dd class="varlistitem"><span class="anchor" id="catcmd"/> Lists the
contents of each of the listed files on your screen.</dd><dt class="varlistentry"><span class="term">grep <span class="emphasis">text-pattern</span>
<span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span>&#8230;<span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>n</sub></span></span></span></span></dt><dd class="varlistitem">
Searches the files for lines matching the indicated text pattern and
prints the matching lines.</dd><dt class="varlistentry" id="morecmd"><span class="term">more <span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>1</sub></span></span></span>&#8230;<span class="emphasis">file<span class="inlineequation"><span class="mathphrase"><sub>n</sub></span></span></span></span></dt><dd class="varlistitem">  Lists files one
screen at a time, pausing after each screen-full.  Hit the space bar to
advance to the next screen.

<p class="para">A related program is <span class="code">less</span>, which also allows you to move
backwards through the files by hitting <span class="quote">
      &#8220;b&#8221;
    </span>.</p></dd><dt class="varlistentry"><span class="term">sed <span class="emphasis">editing-instructions</span> <span class="emphasis">file</span></span></dt><dd class="varlistitem">
Applies the editing instructions to each line of the file, writing out
the resulting changed version of the file.
</dd></dl></div>
      </p>
    </div>
    <div class="sect4" id="printing"><div class="info_sect4"><div class="title_sect5">2.1.2.4. Printing Files</div></div>
      
      <p class="para">
        <div class="variablelist"><dl><dt class="varlistentry"><span class="term">cancel <span class="emphasis">request</span></span></dt><dd class="varlistitem"> Remove a file from the printer queue, so
that it won't get printed. The
<span class="emphasis">request</span> identifier is found using the <span class="code">lpstat</span> command.</dd><dt class="varlistentry"><span class="term">lp <span class="emphasis">file</span></span></dt><dd class="varlistitem">  Send file to printer for printing. Most sites
have multiple printers, each having its own name. One of these will be
the <span class="quote">
      &#8220;default&#8221;
    </span> printer used by the <span class="code">lp</span> command. For the
others, you must give the printer name as part of the printer command:
<div class="screen"><span class="userinput">
lp -d <span class="emphasis">printer</span> <span class="emphasis">file</span>
</span></div>
For example, at the Norfolk ODU campus, <span class="code">lp</span> by itself prints to
a fast printer in the public workstation lab for text only. <span class="code">lp -dcookie</span>
prints to <span class="quote">
      &#8220;cookie&#8221;
    </span>, a printer in the same room that offers the
extra capability of printing Postscript graphics.

<p class="para">You will need to consult your local staff to see what printers are
available at other sites.</p></dd><dt class="varlistentry"><span class="term">lpstat</span></dt><dd class="varlistitem"> Shows the list of files you have <span class="quote">
      &#8220;queued up&#8221;
    </span> awaiting
their turn on printers. Entered by itself, 
<div class="screen"><span class="userinput">
lpstat
</span></div>
it lists only your own print jobs, giving a unique identifier for each
one.

<p class="para">To see the entire list of print jobs on some printer, enter
<div class="screen"><span class="userinput">
lpstat -o <span class="emphasis">printer</span>
</span></div></p></dd></dl></div>
      </p>
    </div>
  </div><p class="para">As you explore Unix, you are bound to have questions. Some ways to get
answers include:
<div class="itemizedlist"><ul><li>The entire Unix manual is on-line.
<div class="screen"><span class="userinput">
man <span class="emphasis">command</span>
</span></div>
displays the manual page for the given command.

<p class="para"><div class="screen"><span class="userinput">
man -k <span class="emphasis">keyword</span>
</span></div>
looks up the given keyword in an index and lists the commands that may
be relevant.</p></li><li>The CS Department systems staff has collected a variety of additional
help documents. You can find them by going to the Dept home page
(<span class="uri">http://www.cs.odu.edu/</span>) and selecting <span class="quote">
      &#8220;Frequently Asked Questions&#8221;
    </span> under the <span class="quote">
      &#8220;Systems Group&#8221;
    </span> heading.
</li><li>A staff member is generally on duty or on call in the public CS lab in Hughes Hall (on the  Norfolk campus) whenever that room is open.</li><li>If none of the above help, then send e-mail to <span class="quote">
      &#8220;root@cs.odu.edu&#8221;
    </span>. This is
also how you report bugs, machine failures, etc.</li></ul></div></p><div name="fn_fnote6" id="fn_fnote6" class="footnote">6. It may be more
precise to say that this directory's name is the empty string <span class="quote">
      &#8220;&#8221;
    </span>. (<a href="#fn_fref6">back</a>)
    </div><div name="fn_fnote7" id="fn_fnote7" class="footnote">7. As we will see, one almost never needs to type an
entire filename in a Unix command, so long file names are no harder to
work with than short ones. (<a href="#fn_fref7">back</a>)
    </div></div><script type="text/javascript">
checkForAnchorOnOtherPage('section-2.2','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref9','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref9_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('paths','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref10','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref10_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote10','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('specialChar','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('cmdpatterns','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref11','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref11_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('wildcards','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref12','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref12_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote12','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('regexp','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('grepregexps','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref13','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref13_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref14','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref14_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote13','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote14','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('sedregexps','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref15','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref15_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref16','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref16_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote15','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote16','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote11','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('quoting','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref17','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref17_live','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote17','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote9','section-2.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-2.3','section-2.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref18','section-2.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref18_live','section-2.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('redirect','section-2.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('piping','section-2.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xargs','section-2.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('find','section-2.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote18','section-2.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-2.4','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-2.4.1','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref19','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref19_live','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote19','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-2.4.2','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref20','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref20_live','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote20','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('umask','section-2.4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-2.4.4','section-2.4');
</script></div><script type="text/javascript">
checkForAnchorOnOtherPage('section-3','section-3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('vim','section-3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref21','section-3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref21_live','section-3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-3.1','section-3.1');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-3.2','section-3.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-3.3','section-3.3');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('markregion','markregion');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref22','markregion');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref22_live','markregion');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote22','markregion');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-3.5','section-3.5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-3.6','section-3.6');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote21','section-3.6');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.1','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.1.1','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('twin','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('icewin','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('starwin','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('connections','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('runningx','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref23','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref23_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('launchTheServer','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('creatingsession','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.1.2.1.2','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.1.2.1.3','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref24','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref24_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote24','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.1.2.1.4','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref25','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref25_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote25','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('launchClient','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref26','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref26_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('launchViaSsh','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref27','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref27_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote27','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('launchViaPutty','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref28','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref28_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote28','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xlaunch-sessions','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xwin32-sessions','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref29','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref29_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote29','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote26','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote23','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.1.3','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xappl','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xtrouble','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('cannotOpen','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('firewall','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref30','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref30_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref31','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref31_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref32','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref32_live','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote30','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote31','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote32','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xforwarding','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xfast','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.1.5.4.1','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.1.5.4.2','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xtermFont','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('connect-localhost','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('refusedByServer','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('alternatives','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('RDP','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('vnc','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('vncx','section-4');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-4.2','section-4.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('emacsinx','section-4.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('emacsintelnet','section-4.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-5','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-5.1','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-5.1.1','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-5.1.2','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('mailcommand','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('mailsend','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-5.1.3.2','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref33','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref33_live','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote33','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('popmail','section-5');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-5.2','section-5.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('pinemain','section-5.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('pinecompose','section-5.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('pineindex','section-5.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-6','section-6');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xfermode','xfermode');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xfersamba','xfersamba');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref34','xfersamba');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref34_live','xfersamba');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote34','xfersamba');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('internetftp','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('anonprivateftp','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref35','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref35_live','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote35','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('ftpclient','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref36','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref36_live','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref37','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref37_live','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote36','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote37','internetftp');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xferproblems','xferproblems');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('dostounix','xferproblems');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('unixtodos','xferproblems');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.1','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('compshell','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref38','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref38_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('cStructure','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref39','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref39_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fig:compilation','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.1.1.1.1','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.1.1.1.2','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote39','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('compilingSingle','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('compilingMultiple','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('compilerOptions','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref40','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref40_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref41','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref41_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote40','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote41','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote38','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('errmsgs','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('capturing','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref42','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref42_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote42','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('understanding','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('javacomp','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref43','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref43_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('jproject','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote43','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.1.4','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('emacserr','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('emacs-next-error','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref44','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref44_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote44','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('vimcompile','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('vimscreen','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.2','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref45','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref45_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.2.1','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.2.2','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('artificial-targets','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('writingMakefiles','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.2.5','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote45','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.3','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.3.1','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref46','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref46_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref47','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref47_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote46','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote47','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.3.2','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.1.3.3','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('gdbmode','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref48','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref48_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref49','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref49_live','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote48','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote49','section-7');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.2','section-7.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.2.1','section-7.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-7.2.2','section-7.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('gdbxfig','section-7.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('dddfig','section-7.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.1','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref50','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref50_live','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('loginCustom','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref51','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref51_live','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref52','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref52_live','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote51','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote52','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('xCustom','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('programCustom','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote50','section-8');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.2','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.2.1','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('controlflow','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref53','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fref53_live','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('fn_fnote53','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.2.3','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.2.4','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.2.4.1','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.2.4.2','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('scriptDebugging','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.2.5.1','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('section-8.2.5.2','section-8.2');
</script><script type="text/javascript">
checkForAnchorOnOtherPage('tracing','section-8.2');
</script><br/><table width="100%" class="navigationBar"><tr class="navigationBar"><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="First" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/unix.html"><img class="navigationBar" src="_axle/first.gif" alt="First"/></a></td><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="Prev" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-1.8.html"><img class="navigationBar" src="_axle/prev.gif" alt="Prev"/></a></td><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="Up" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/unix.html"><img class="navigationBar" src="_axle/up.gif" alt="Up"/></a></td><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="Next" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-2.2.html"><img class="navigationBar" src="_axle/next.gif" alt="Next"/></a></td><td width="5%" class="navigationBar"><a class="navigationBarArrow" title="Last" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/open/unix/section-8.2.html"><img class="navigationBar" src="_axle/last.gif" alt="Last"/></a></td><td class="navigationBar"/><td width="5%" class="navigationBar"><a class="navigationBar" title="CS252 Home" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/directory/announcements.html"><img class="navigationBar" src="_axle/home.gif" alt="CS252 Home"/></a></td><td width="5%" class="navigationBar"><a class="navigationBar" title="discuss this page" href="http://cocoon.cs.odu.edu:80/cocoon/~cs252/forum/getXPath/open/unix/section-2.html"><img class="navigationBar" src="_axle/forum.gif" alt="discuss this page"/></a></td></tr></table></body></html>