The first of the tutorials to be docbookified.
This commit is contained in:
parent
6b40a9989a
commit
eddbbfc8c0
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=1046
11 changed files with 2553 additions and 559 deletions
en/tutorials
en_US.ISO8859-1/articles/new-users
en_US.ISO_8859-1
|
@ -1,4 +1,5 @@
|
||||||
DOCS= index.sgml
|
DOCS= index.sgml
|
||||||
SUBDIR= disklessx
|
SUBDIR= disklessx newuser
|
||||||
DOCSUBDIR= ddwg devel fonts mh multios newuser ppp
|
DOCSUBDIR= ddwg devel fonts mh multios ppp
|
||||||
|
|
||||||
.include "../web.mk"
|
.include "../web.mk"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [
|
||||||
<!ENTITY base CDATA "..">
|
<!ENTITY base CDATA "..">
|
||||||
<!ENTITY date "$Date: 1997-01-17 15:00:57 $">
|
<!ENTITY date "$Date: 1997-01-18 02:24:07 $">
|
||||||
<!ENTITY title "FreeBSD Tutorials">
|
<!ENTITY title "FreeBSD Tutorials">
|
||||||
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
|
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
|
||||||
]>
|
]>
|
||||||
|
@ -13,9 +13,8 @@
|
||||||
<a href="mailto:freebsd-doc@FreeBSD.ORG">freebsd-doc@FreeBSD.org</a>.</p>
|
<a href="mailto:freebsd-doc@FreeBSD.ORG">freebsd-doc@FreeBSD.org</a>.</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="newuser/newuser.html">For People New to Both FreeBSD <em>and</em> Unix</a>
|
<li><a href="newuser/newuser.html">For People New to Both FreeBSD
|
||||||
(<a href="newuser/newuser.ps">postscript</a>,
|
<em>and</em> Unix</a></li>
|
||||||
<a href="newuser/newuser-html.tar.gz">gzipd tar file</a>)</li>
|
|
||||||
<li><a href="mh/mh.html">An introduction to the MH mail software</a>
|
<li><a href="mh/mh.html">An introduction to the MH mail software</a>
|
||||||
(<a href="mh/mh.ps">postscript</a>,
|
(<a href="mh/mh.ps">postscript</a>,
|
||||||
<a href="mh/mh-html.tar.gz">gzipd tar file</a>)</li>
|
<a href="mh/mh-html.tar.gz">gzipd tar file</a>)</li>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
DOC= newuser
|
DOCS= newuser.docb
|
||||||
SRCS= newuser.sgml
|
INDEXLINK= newuser.html
|
||||||
|
|
||||||
.include <bsd.sgml.mk>
|
.include "../../web.mk"
|
||||||
|
|
||||||
|
|
844
en/tutorials/newuser/newuser.docb
Normal file
844
en/tutorials/newuser/newuser.docb
Normal file
|
@ -0,0 +1,844 @@
|
||||||
|
<!DOCTYPE BOOK PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
|
||||||
|
<book>
|
||||||
|
|
||||||
|
<bookinfo>
|
||||||
|
<bookbiblio>
|
||||||
|
<title>For People New to Both FreeBSD and Unix</title>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Annelise</firstname>
|
||||||
|
<surname>Anderson</surname>
|
||||||
|
<affiliation>
|
||||||
|
<address><email>andrsn@hoover.stanford.edu</email></address>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
<pubdate>June 30, 1996</pubdate>
|
||||||
|
|
||||||
|
<abstract><para>Congratulations on installing FreeBSD! This
|
||||||
|
introduction is for people new to both FreeBSD
|
||||||
|
<emphasis>and</emphasis> Un*x—so it starts with basics. It
|
||||||
|
assumes you're using version 2.0.5 or later of FreeBSD as distributed
|
||||||
|
by Walnut Creek or FreeBSD.ORG, your system (for now) has a single
|
||||||
|
user (you)—and you're probably pretty good with DOS/Windows or
|
||||||
|
OS/2.</para></abstract>
|
||||||
|
|
||||||
|
</bookbiblio>
|
||||||
|
</bookinfo>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Logging in and Getting Out</title>
|
||||||
|
|
||||||
|
<para>Log in (when you see <systemitem
|
||||||
|
class=prompt>login:</systemitem>) as a user you created during
|
||||||
|
installation or as <firstterm>root</firstterm>. (Your FreeBSD
|
||||||
|
installation will already have an account for root; root can go
|
||||||
|
anywhere and do anything, including deleting essential files, so be
|
||||||
|
careful!)</para>
|
||||||
|
|
||||||
|
<para>To log out (and get a new <systemitem class=prompt>login:</systemitem> prompt) type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>exit</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
as often as necessary. Yes, press <keysym>enter</keysym> after
|
||||||
|
commands, and remember that Unix is
|
||||||
|
case-sensitive—<command>exit</command>, not
|
||||||
|
<command>EXIT</command>.</para>
|
||||||
|
|
||||||
|
<para>To shut down the machine type:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/shutdown -h now</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Or to reboot type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/shutdown -r now</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
or
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/reboot</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>You can also reboot with
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>.
|
||||||
|
Give it a little time to do its work. This is equivalent to
|
||||||
|
<command>/sbin/reboot</command> in recent releases of FreeBSD, and is
|
||||||
|
much, much better than hitting the reset button. You don't want to
|
||||||
|
have to reinstall this thing, do you?</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Adding A User with Root Privileges</title>
|
||||||
|
|
||||||
|
<para>If you didn't create any users when you installed the system and
|
||||||
|
are thus logged in as root, you should probably create a user now with
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>adduser</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Don't use the <option>-verbose</option> option; the defaults are what
|
||||||
|
you want. Suppose you create a user <emphasis>jack</emphasis> with
|
||||||
|
full name <emphasis>Jack Benimble</emphasis>. Give jack a password
|
||||||
|
if security (even kids around who might pound on the keyboard) is an
|
||||||
|
issue. When it asks you if you want to invite jack into other
|
||||||
|
groups, type <userinput>wheel</userinput>
|
||||||
|
<informalexample>
|
||||||
|
<screen>Login group is ``jack''. Invite jack into other groups: <userinput>wheel</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
This will make it possible to log in as <emphasis>jack</emphasis> and
|
||||||
|
use the <command>su</command> command to become root. Then you won't
|
||||||
|
get scolded any more for logging in as root, and as root you'll have
|
||||||
|
the same environment as jack (this is good).</para>
|
||||||
|
|
||||||
|
<para>You can quit <command>adduser</command> any time by typing
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>, and at
|
||||||
|
the end you'll have a chance to approve your new user or simply type
|
||||||
|
<keycap>n</keycap> for no. You might want to create a
|
||||||
|
second new user (jill?) so that when you edit jack's login files,
|
||||||
|
you'll have a hot spare in case something goes wrong.</para>
|
||||||
|
|
||||||
|
<para>Once you've done this, use <command>exit</command>
|
||||||
|
to get back to a login prompt and log in as
|
||||||
|
<emphasis>jack</emphasis>. In general, it's a good idea to do as
|
||||||
|
much work as possible as an ordinary user who doesn't have the
|
||||||
|
power—and risk—of root.</para>
|
||||||
|
|
||||||
|
<para>If you already created a user and you want the user to be able
|
||||||
|
to <command>su</command> to root, you can log in as root
|
||||||
|
and edit the file <filename>/etc/group</filename>, adding jack to the
|
||||||
|
first line (the group wheel). But first you need to practice
|
||||||
|
<command>vi</command>, the text editor.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Looking Around</title>
|
||||||
|
|
||||||
|
<para>Logged in as an ordinary user, look around and try out some
|
||||||
|
commands that will access the sources of help and information within
|
||||||
|
FreeBSD.</para>
|
||||||
|
|
||||||
|
<para>Here are some commands and what they do:
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>id</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you who you are!</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>pwd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Shows you where you are—the current
|
||||||
|
working directory.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in the current directory.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-F</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in the current directory with a
|
||||||
|
<literal>*</literal> after executables, a <literal>/</literal> after
|
||||||
|
directories, and an <literal>@</literal> after symbolic links.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-l</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in long format—size,
|
||||||
|
date, permissions.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-a</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists hidden (unless you're root) <quote>dot</quote>
|
||||||
|
files with the others.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>cd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Changes directories. <command>cd
|
||||||
|
<parameter>..</parameter></command> backs up one level; note the
|
||||||
|
space after <command>cd</command>. <command>cd
|
||||||
|
<parameter>/usr/local</parameter></command> goes there. <command>cd
|
||||||
|
<parameter>~</parameter></command> goes to the home directory of the
|
||||||
|
person logged in—e.g., <filename>/usr/home/jack</filename>.
|
||||||
|
Try <command>cd <parameter>/cdrom</parameter></command>, and then
|
||||||
|
<command>ls</command>, to find out if your CDROM is mounted and
|
||||||
|
working.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>view <replaceable>filename</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lets you look at a file (named
|
||||||
|
<replaceable>filename</replaceable> without changing it. Try
|
||||||
|
<command>view <parameter>/etc/fstab</parameter></command>.
|
||||||
|
<command>:q</command> to quit.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>cat <replaceable>filename</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
|
||||||
|
<para>Displays <replaceable>filename</replaceable> on screen. If
|
||||||
|
it's too long and you can see only the end of it, press
|
||||||
|
<keycap>ScrollLock</keycap> and use the <keycap>up-arrow</keycap> to
|
||||||
|
move backward; you can use <keycap>ScrollLock</keycap> with man pages
|
||||||
|
too. Press <keycap>ScrollLock</keycap> again to quit scrolling. You
|
||||||
|
might want to try <command>cat</command> on some of the dot files in
|
||||||
|
your home directory—<command>cat
|
||||||
|
<parameter>.cshrc</parameter></command>, <command>cat
|
||||||
|
<parameter>.login</parameter></command>, <command>cat
|
||||||
|
<parameter>.profile</parameter></command>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
You'll notice aliases in <filename>.cshrc</filename> for some of the
|
||||||
|
<command>ls</command> commands (they're very convenient).
|
||||||
|
You can create other aliases by editing <filename>.cshrc</filename>.
|
||||||
|
You can make these aliases available to all users on the system by
|
||||||
|
putting them in the system-wide csh configuration file,
|
||||||
|
<filename>/etc/csh.cshrc</filename>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Getting Help and Information</title>
|
||||||
|
|
||||||
|
<para>Here are some useful sources of help.
|
||||||
|
<replaceable>Text</replaceable> stands for something of your choice
|
||||||
|
that you type in—usually a command or filename.</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>apropos <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Everything containing string <replaceable>text</replaceable>
|
||||||
|
in the <database>whatis database</database>.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>man <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The man page for <replaceable>text</replaceable>. The major
|
||||||
|
source of documentation for Un*x systems. <command>man
|
||||||
|
<parameter>ls</parameter></command> will tell you all the ways to use
|
||||||
|
the <command>ls</command> command. Press <keycap>Enter</keycap> to
|
||||||
|
move through text,
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> to go
|
||||||
|
back a page, <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo> to
|
||||||
|
go forward, <keycap>q</keycap> or
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo> to
|
||||||
|
quit.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>which <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you where in the user's path the command
|
||||||
|
<replaceable>text</replaceable> is found.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>locate <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>All the paths where the string <replaceable>text</replaceable>
|
||||||
|
is found.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>whatis <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you what the command <replaceable>text</replaceable>
|
||||||
|
does and its man page.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>whereis <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Finds the file <replaceable>text</replaceable>, giving its full
|
||||||
|
path.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
<para>You might want to try using <command>whatis</command> on some
|
||||||
|
common useful commands like <command>cat</command>,
|
||||||
|
<command>more</command>, <command>grep</command>,
|
||||||
|
<command>mv</command>, <command>find</command>,
|
||||||
|
<command>tar</command>, <command>chmod</command>,
|
||||||
|
<command>chown</command>, <command>date</command>, and
|
||||||
|
<command>script</command>. <command>more</command> lets you read a
|
||||||
|
page at a time as it does in DOS, e.g., <command>ls -l |
|
||||||
|
more</command> or <command>more
|
||||||
|
<replaceable>filename</replaceable></command>. The
|
||||||
|
<literal>*</literal> works as a wildcard—e.g., <command>ls
|
||||||
|
w*</command> will show you files beginning with
|
||||||
|
<literal>w</literal>.</para>
|
||||||
|
|
||||||
|
<para>Are some of these not working very well? Both
|
||||||
|
<command>locate</command> and <command>whatis</command>
|
||||||
|
depend on a database that's rebuilt weekly. If your machine isn't
|
||||||
|
going to be left on over the weekend (and running FreeBSD), you might
|
||||||
|
want to run the commands for daily, weekly, and monthly maintenance
|
||||||
|
now and then. Run them as root and give each one time to finish
|
||||||
|
before you start the next one, for now.
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/etc/daily</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation>
|
||||||
|
# <userinput>/etc/weekly</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation>
|
||||||
|
# <userinput>/etc/monthly</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation></screen>
|
||||||
|
</informalexample></para>
|
||||||
|
|
||||||
|
<para>If you get tired waiting, press
|
||||||
|
<keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> to get
|
||||||
|
another <firstterm>virtual console</firstterm>, and log in again.
|
||||||
|
After all, it's a multi-user, multi-tasking system. Nevertheless
|
||||||
|
these commands will probably flash messages on your screen while
|
||||||
|
they're running; you can type <command>clear</command> at the prompt
|
||||||
|
to clear the screen. Once they've run, you might want to look at
|
||||||
|
<filename>/var/mail/root</filename> and
|
||||||
|
<filename>/var/log/messages</filename>.</para>
|
||||||
|
|
||||||
|
<para>Basically running such commands is part of system
|
||||||
|
administration—and as a single user of a Unix system, you're
|
||||||
|
your own system administrator. Virtually everything you need to be
|
||||||
|
root to do is system administration. Such responsibilities aren't
|
||||||
|
covered very well even in those big fat books on Unix, which seem to
|
||||||
|
devote a lot of space to pulling down menus in windows managers. You
|
||||||
|
might want to get one of the two leading books on systems
|
||||||
|
administration, either Evi Nemeth et.al.'s <citetitle>UNIX System
|
||||||
|
Administration Handbook</citetitle> (Prentice-Hall, 1995, ISBN
|
||||||
|
0-13-15051-7)—the second edition with the red cover; or
|
||||||
|
Æleen Frisch's <citetitle>Essential System
|
||||||
|
Administration</citetitle> (O'Reilly & Associates, 1993, ISBN
|
||||||
|
0-937175-80-3). I used Nemeth.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Editing Text</title>
|
||||||
|
|
||||||
|
<para>To configure your system, you need to edit text files. Most of
|
||||||
|
them will be in the <filename>/etc</filename> directory; and you'll
|
||||||
|
need to <command>su</command> to root to be able to change them. The
|
||||||
|
text editor is <command>vi</command>. Before you edit a file, you
|
||||||
|
should probably back it up. Suppose you want to edit
|
||||||
|
<filename>/etc/sysconfig</filename>. You could just use <command>cd
|
||||||
|
/etc</command> to get to the <filename>/etc</filename> directory and
|
||||||
|
do:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>cp sysconfig sysconfig.orig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
This would copy <filename>sysconfig</filename> to
|
||||||
|
<filename>sysconfig.orig</filename>, and you could later copy
|
||||||
|
<filename>sysconfig.orig</filename> to <emphasis
|
||||||
|
remap=tt>sysconfig</emphasis> to recover the original. But even
|
||||||
|
better would be moving (renaming) and then copying back:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mv sysconfig sysconfig.orig</userinput>
|
||||||
|
# <userinput>cp sysconfig.orig sysconfig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
because the <command>mv</command> command preserves the original date
|
||||||
|
and owner of the file. You can now edit
|
||||||
|
<filename>sysconfig</filename>. If you want the original back, you'd
|
||||||
|
then <userinput>mv sysconfig syconfig.myedit</userinput>
|
||||||
|
(assuming you want to preserve your edited version) and then
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mv sysconfig.orig sysconfig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
to put things back the way they were.</para>
|
||||||
|
|
||||||
|
<para>To edit a file, type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>vi <replaceable>filename</replaceable></userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Move through the text with the arrow keys. <keycap>Esc</keycap> (the
|
||||||
|
escape key) puts <command>vi</command> in command mode. Here are some
|
||||||
|
commands:
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>x</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>delete letter the cursor is on</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>dd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>delete the entire line (even if it wraps on the screen)</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>i</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>insert text at the cursor</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>a</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>insert text after the cursor</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
Once you type <command>i</command> or <command>a</command>, you can enter text.
|
||||||
|
<command>Esc</command> puts you back in command mode where you can type
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>:w</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>to write your changes to disk and continue editing</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>:wq</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to write and quit</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>:q!</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to quit without saving changes</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>/<replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to move the cursor to <replaceable>text</replaceable>;
|
||||||
|
<command>/<keycap>Enter</keycap></command> (the enter key) to find
|
||||||
|
the next instance of <replaceable>text</replaceable>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>G</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to go to the end of the file</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command><replaceable>n</replaceable>G</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to go to line <replaceable>n</replaceable> in
|
||||||
|
the file, where <replaceable>n</replaceable> is a number</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><keycombo><keycap>Ctrl</><keycap>L</></keycombo></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to redraw the screen</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><keycombo><keycap>Ctrl</><keycap>b</></> and <keycombo><keycap>Ctrl</><keycap>f</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>go back
|
||||||
|
and forward a screen, as they
|
||||||
|
do with <command>more</> and <command>view</>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>Practice with <command>vi</> in your home directory by creating
|
||||||
|
a new file with <command>vi <replaceable>filename</></> and adding
|
||||||
|
and deleting text, saving the file, and calling it up again.
|
||||||
|
<command>vi</> delivers some surprises because it's really quite
|
||||||
|
complex, and sometimes you'll inadvertently issue a command that will
|
||||||
|
do something you don't expect. (Some people actually like
|
||||||
|
<command>vi</>—it's more powerful than DOS EDIT—find out
|
||||||
|
about the <command>:r</> command.) Use <keycap>Esc</> one or
|
||||||
|
more times to be sure you're in command mode and proceed from there
|
||||||
|
when it gives you trouble, save often with <command>:w</>, and
|
||||||
|
use <command>:q!</> to get out and start over (from
|
||||||
|
your last <command>:w</>) when you need to.</para>
|
||||||
|
|
||||||
|
<para>Now you can <command>cd</> to <filename>/etc</filename>,
|
||||||
|
<command>su</> to root, use <command>vi</> to edit the file
|
||||||
|
<filename>/etc/group</filename>, and add a user to wheel so the user
|
||||||
|
has root privileges. Just add a comma and the user's login name to
|
||||||
|
the end of the first line in the file, press <keycap>Esc</>, and use
|
||||||
|
<command>:wq</> to write the file to disk and quit. Instantly
|
||||||
|
effective. (You didn't put a space after the comma, did you?)</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Printing Files from DOS</title>
|
||||||
|
|
||||||
|
<para>At this point you probably don't have the printer working, so here's a
|
||||||
|
way to create a file from a man page, move it to a floppy, and then
|
||||||
|
print it from DOS. Suppose you want to read carefully about changing
|
||||||
|
permissions on files (pretty important). You can use the command
|
||||||
|
man chmod to read about it. The command
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>man chmod > chmod.txt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
will send the man page to the <filename>chmod.txt</filename> file
|
||||||
|
instead of showing it on your screen. Now put a dos-formatted
|
||||||
|
diskette in your floppy drive a, <command>su</> to
|
||||||
|
root, and type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/mount -t msdos /dev/fd0 /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
to mount the floppy drive on <filename>/mnt</filename>.</para>
|
||||||
|
|
||||||
|
<para>Now (you no longer need to be root, and you can type
|
||||||
|
<command>exit</> to get back to being user jack) you can go to the
|
||||||
|
directory where you created chmod.txt and copy the file to the floppy
|
||||||
|
with:
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>cp chmod.txt /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and use <command>ls /mnt</command> to get a directory listing of
|
||||||
|
<filename>/mnt</filename>, which should show the file
|
||||||
|
<filename>chmod.txt</filename>.</para>
|
||||||
|
|
||||||
|
<para>You might especially want to make a file from
|
||||||
|
<filename>/sbin/dmesg</filename> by typing
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>/sbin/dmesg > dmesg.txt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and copying <filename>dmesg.txt</filename> to the floppy.
|
||||||
|
<command>/sbin/dmesg</command> is the boot log record, and it's
|
||||||
|
useful to understand it because it shows what FreeBSD found when it
|
||||||
|
booted up. If you ask questions on
|
||||||
|
<email>freebsd-questions@FreeBSD.ORG</> or on a USENET
|
||||||
|
group—like <quote>FreeBSD isn't finding my tape drive, what do
|
||||||
|
I do?</quote>—people will want to know what <command>dmesg</>
|
||||||
|
has to say.</para>
|
||||||
|
|
||||||
|
<para>You can now dismount the floppy drive (as root) to get the disk
|
||||||
|
out with
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/umount /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and reboot to go to DOS. Copy these files to a DOS directory, call
|
||||||
|
them up with DOS EDIT, Windows Notepad, or a word processor, make a
|
||||||
|
minor change so the file has to be saved, and print as you normally
|
||||||
|
would from DOS or Windows. Hope it works! man pages come out best if
|
||||||
|
printed with the dos <command>print</> command. (Copying files from
|
||||||
|
FreeBSD to a mounted dos partition is in some cases still a little
|
||||||
|
risky.)</para>
|
||||||
|
|
||||||
|
<para>Getting the printer printing from FreeBSD involves creating an
|
||||||
|
appropriate entry in <filename>/etc/printcap</filename> and creating
|
||||||
|
a matching spool directory in
|
||||||
|
<filename>/var/spool/output</filename>. If your printer is on
|
||||||
|
<hardware>lpt0</> (what dos calls <hardware>LPT1</>), you may only
|
||||||
|
need to go to <filename>/var/spool/output</filename> and (as root)
|
||||||
|
create the directory <filename>lpd</> by typing:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mkdir lpd</></screen>
|
||||||
|
</informalexample>
|
||||||
|
Then the printer should respond if it's turned on when the system is
|
||||||
|
booted, and lp or lpr should send a file to the printer. Whether or
|
||||||
|
not the file actually prints depends on configuring it, which is
|
||||||
|
covered in the <ulink
|
||||||
|
URL="http://www.freebsd.org/handbook/handbook.html">FreeBSD
|
||||||
|
handbook.</></para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Other Useful Commands</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>df</></term>
|
||||||
|
<listitem>
|
||||||
|
<para>shows file space and mounted systems.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ps aux</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>shows processes running. <command>ps ax</> is a narrower form.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>rm <replaceable>filename</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>remove <replaceable>filename</>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>rm -R <replaceable>dir</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>removes a directory <replaceable>dir</> and all
|
||||||
|
subdirectories—careful!</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls -R</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>lists files in the current
|
||||||
|
directory and all subdirectories;
|
||||||
|
I used a variant, <command>ls -AFR > where.txt</command>,
|
||||||
|
to get a list of all
|
||||||
|
the files in <filename>/</filename> and (separately)
|
||||||
|
<filename>/usr</filename> before I found better
|
||||||
|
ways to find files.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>passwd</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to change user's password (or root's password)</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>man hier</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>man page on the Unix file system</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist></para>
|
||||||
|
|
||||||
|
<para>Use <command>find</> to locate filename in <filename>/usr</filename>
|
||||||
|
or any of its subdirectories with
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>find /usr -name "<replaceable>filename</>"</></screen>
|
||||||
|
</informalexample>
|
||||||
|
You can use <literal>*</literal> as a wildcard in
|
||||||
|
<parameter>"<replaceable>filename</>"</> (which should be in
|
||||||
|
quotes). If you tell find to search in <filename>/</filename>
|
||||||
|
instead of <filename>/usr</filename> it will look for the file(s) on
|
||||||
|
all mounted file systems, including the CDROM and the dos
|
||||||
|
partition.</para>
|
||||||
|
|
||||||
|
<para>An excellent book that explains Unix commands and utilities is
|
||||||
|
Abrahams & Larson, <citetitle>Unix for the Impatient</citetitle>
|
||||||
|
(2nd ed., Addison-Wesley, 1996). There's also a lot of Unix
|
||||||
|
information on the Internet. Try the <ulink
|
||||||
|
URL="http://www.eecs.nwu.edu/unix.html">Unix Reference
|
||||||
|
Desk</ulink>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Next Steps</title>
|
||||||
|
|
||||||
|
<para>You should now have the tools you need to get around and edit
|
||||||
|
files, so you can get everything up and running. There is a great
|
||||||
|
deal of information in the FreeBSD handbook (which is probably on
|
||||||
|
your hard drive) and <ulink URL="http://www.freebsd.org/">FreeBSD's
|
||||||
|
web site</ulink>. A wide variety of packages and ports are on the
|
||||||
|
<ulink URL="http://www.cdrom.com/">Walnut Creek</ulink> CDROM as well
|
||||||
|
as the web site. The handbook tells you more about how to use them
|
||||||
|
(get the package if it exists, with <command>pkg_add
|
||||||
|
/cdrom/packages/All/<replaceable>packagename</></>,
|
||||||
|
where <replaceable>packagename</replaceable> is the filename of the
|
||||||
|
package). The cdrom has lists of the packages and ports with brief
|
||||||
|
descriptions in <filename>cdrom/packages/index</filename>,
|
||||||
|
<filename>cdrom/packages/index.txt</filename>, and
|
||||||
|
<filename>cdrom/ports/index</filename>, with fuller descriptions in
|
||||||
|
<filename>/cdrom/ports/*/*/pkg/DESCR</filename>, where the
|
||||||
|
<literal>*</literal>s represent subdirectories of kinds of programs
|
||||||
|
and program names respectively.</para>
|
||||||
|
|
||||||
|
<para>If you find the handbook too sophisticated (what with
|
||||||
|
<command>lndir</> and all) on installing ports from the cdrom,
|
||||||
|
here's what usually works:</para>
|
||||||
|
|
||||||
|
<para>Find the port you want, say <command>kermit</>. There will be
|
||||||
|
a directory for it on the cdrom. Copy the subdirectory to
|
||||||
|
<filename>/usr/local</filename> (a good place for software you add
|
||||||
|
that should be available to all users) with:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
This should result in a <filename>/usr/local/kermit</filename>
|
||||||
|
subdirectory that has all the files that the
|
||||||
|
<command>kermit</command> subdirectory on the CDROM has.</para>
|
||||||
|
|
||||||
|
<para>Next, check <filename>/cdrom/ports/distfiles</filename> for a
|
||||||
|
file with a name that indicates it's the port you want. Copy that
|
||||||
|
file to <filename>/usr/ports/distfiles</filename>. (Create
|
||||||
|
<filename>/usr/ports/distfiles</filename> if it doesn't exist using
|
||||||
|
<command>mkdir</>.) In the case of <command>kermit</>, there is no
|
||||||
|
distfile.</para>
|
||||||
|
|
||||||
|
<para>Then <command>cd</> to the subdirectory of
|
||||||
|
<filename>/usr/local/kermit</filename> that has the file
|
||||||
|
<filename>Makefile</>. Type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>make all install</></screen>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>During this process the port will ftp to get any compressed
|
||||||
|
files it needs that it didn't find in
|
||||||
|
<filename>/usr/ports/distfiles</filename>. If you don't have your
|
||||||
|
network running yet and there was no file for the port in
|
||||||
|
<filename>/cdrom/ports/distfiles</filename>, you will have to get
|
||||||
|
the distfile using another machine and copy it to
|
||||||
|
<filename>/usr/ports/distfiles</filename> from a floppy or your dos
|
||||||
|
partition. Read <filename>Makefile</> (with <command>cat</> or
|
||||||
|
<command>more</> or <command>view</>) to find out where to go (the
|
||||||
|
master distribution site) to get the file and what its name is. Its
|
||||||
|
name will be truncated when downloaded to DOS, and after you get it
|
||||||
|
into <filename>/usr/ports/distfiles</filename> you'll have to rename
|
||||||
|
it (with the <command>mv</> command) to its original name so it can
|
||||||
|
be found. (Use binary file transfers!) Then go back to
|
||||||
|
<filename>/usr/local/kermit</filename>, find the directory with
|
||||||
|
<filename>Makefile</>, and type <command>make all install</>.</para>
|
||||||
|
|
||||||
|
<para>The other thing that happens when installing ports or packages
|
||||||
|
is that some other program is needed. If the installation stops with
|
||||||
|
a message <errorname>can't find unzip</errorname> or whatever, you
|
||||||
|
might need to install the package or port for unzip before you
|
||||||
|
continue.</para>
|
||||||
|
|
||||||
|
<para>Once it's installed type <command>rehash</> to make FreeBSD
|
||||||
|
reread the files in the path so it knows what's there. (If you get a
|
||||||
|
lot of <errorname>path not found</> messages when you use
|
||||||
|
<command>whereis</> or which, you might want to make additions to the
|
||||||
|
list of directories in the path statement in
|
||||||
|
<filename>.cshrc</filename> in your home directory. The path
|
||||||
|
statement in Unix does the same kind of work it does in DOS, except
|
||||||
|
the current directory is not (by default) in the path for security
|
||||||
|
reasons; if the command you want is in the directory you're in, you
|
||||||
|
need to type <filename>./</filename> before the command to make it
|
||||||
|
work; no space after the slash.)</para>
|
||||||
|
|
||||||
|
<para>You might want to get the most recent version of Netscape from
|
||||||
|
their <ulink URL="ftp://ftp.netscape.com">ftp site</ulink>. (Netscape
|
||||||
|
requires the X Window System.) The version you want is the
|
||||||
|
<quote>unknown bsd</quote> version. Just use <command>gunzip
|
||||||
|
<replaceable>filename</></> and <command>tar xvf
|
||||||
|
<replaceable>filename</></> on it, move the binary to
|
||||||
|
<filename>/usr/local/bin</filename> or some other place binaries are
|
||||||
|
kept, <command>rehash</>, and then put the following lines in
|
||||||
|
<filename>.cshrc</filename> in each user's home directory or (easier)
|
||||||
|
in <filename>/etc/csh.cshrc</filename>, the system-wide csh start-up
|
||||||
|
file:
|
||||||
|
<informalexample>
|
||||||
|
<programlisting>setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
|
||||||
|
setenv XNLSPATH /usr/X11R6/lib/X11/nls</>
|
||||||
|
</informalexample>
|
||||||
|
This assumes that the file <filename>XKeysymDB</> and the directory
|
||||||
|
<filename>nls</> are in <filename>/usr/X11R6/lib/X11</filename>; if
|
||||||
|
they're not, find them and put them there.</para>
|
||||||
|
|
||||||
|
<para>If you originally got Netscape as a port using the CDROM (or
|
||||||
|
ftp), don't replace <filename>/usr/local/bin/netscape</filename> with
|
||||||
|
the new netscape binary; this is just a shell script that sets up the
|
||||||
|
environmental variables for you. Instead rename the new binary to
|
||||||
|
<filename>netscape.bin</filename> and replace the old binary, which
|
||||||
|
is <filename>/usr/local/lib/netscape/netscape.bin</filename>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Other</title>
|
||||||
|
|
||||||
|
<para>As root, you can dismount the CDROM with <command>/sbin/umount
|
||||||
|
/cdrom</>, take it out of the drive, insert another one, and mount it
|
||||||
|
with <command>/sbin/mount_cd9660 /dev/cd0a /cdrom</> assuming
|
||||||
|
<hardware>cd0a</> is the device name for your CDROM drive.</para>
|
||||||
|
|
||||||
|
<para>Using the live file system—the second of FreeBSD's CDROM
|
||||||
|
disks—is useful if you've got limited space. You might try
|
||||||
|
using <command>emacs</> or playing games from the cdrom. This
|
||||||
|
involves using <command>lndir</>, which gets installed with the X
|
||||||
|
Window System, to tell the program(s) where to find the necessary
|
||||||
|
files, because they're in the <filename>/cdrom</filename> file system
|
||||||
|
instead of in <filename>/usr</filename> and its subdirectories, which
|
||||||
|
is where they're expected to be. Read <command>man lndir</>.</para>
|
||||||
|
|
||||||
|
<para>You can delete a user (say, jack) by using the command
|
||||||
|
<command>vipw</> to bring up the <filename>master.passwd</filename>
|
||||||
|
file (do not use <command>vi</> directly on master.passwd); delete
|
||||||
|
the line for jack and save the file. Then edit
|
||||||
|
<filename>/etc/group</filename>, eliminating jack wherever it
|
||||||
|
appears. Finally, go to <filename>/usr/home</filename> and use
|
||||||
|
<command>rm -R</command> jack (to get rid of user jack's home
|
||||||
|
directory files).</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Comments Welcome</title>
|
||||||
|
|
||||||
|
<para>If you use this guide I'd be interested in knowing where it was
|
||||||
|
unclear and what was left out that you think should be included, and
|
||||||
|
if it was helpful. My thanks to Eugene W. Stark, professor of
|
||||||
|
computer science at SUNY-Stony Brook, and John Fieber for helpful
|
||||||
|
comments.</para>
|
||||||
|
|
||||||
|
<para>Annelise Anderson, <email>andrsn@hoover.stanford.edu</></para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
</book>
|
|
@ -1,538 +0,0 @@
|
||||||
<!DOCTYPE linuxdoc PUBLIC "-//FreeBSD//DTD linuxdoc//EN">
|
|
||||||
<!-- $Id: newuser.sgml,v 1.5 1996-12-31 22:31:13 mpp Exp $ -->
|
|
||||||
|
|
||||||
<article>
|
|
||||||
<title>For People New to Both FreeBSD and Unix</title>
|
|
||||||
<author>Annelise Anderson
|
|
||||||
<htmlurl url="mailto:andrsn@hoover.stanford.edu"
|
|
||||||
name="<andrsn@hoover.stanford.edu>">
|
|
||||||
<date>June 30, 1996
|
|
||||||
|
|
||||||
<abstract>Congratulations on installing FreeBSD!
|
|
||||||
This introduction is for people new to both FreeBSD
|
|
||||||
<em>and</em> Un*x—so it starts with basics. It assumes you're using
|
|
||||||
version 2.0.5 or later of FreeBSD as distributed by Walnut Creek
|
|
||||||
or FreeBSD.ORG, your system (for now) has a single user
|
|
||||||
(you)—and you're probably pretty good with DOS/Windows or OS/2.
|
|
||||||
</abstract>
|
|
||||||
|
|
||||||
<toc>
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Logging in and Getting Out
|
|
||||||
|
|
||||||
<p>Log in (when you see <tt>login:</tt>) as a user you created during
|
|
||||||
installation or as <em>root</em>. (Your FreeBSD installation will already
|
|
||||||
have an account for root; root can go anywhere and do anything,
|
|
||||||
including deleting essential files, so be careful!)
|
|
||||||
|
|
||||||
To log out (and get a new <tt>login</tt> prompt) type
|
|
||||||
<tscreen>
|
|
||||||
exit
|
|
||||||
</tscreen>
|
|
||||||
as often as necessary. Yes, press <em>enter</em> after commands, and remember
|
|
||||||
that Unix is case-sensitive—<tt>exit</tt>, not <tt>EXIT</tt>.
|
|
||||||
|
|
||||||
To shut down the machine type:
|
|
||||||
<tscreen>
|
|
||||||
/sbin/shutdown -h now
|
|
||||||
</tscreen>
|
|
||||||
Or to reboot type
|
|
||||||
<tscreen>
|
|
||||||
/sbin/shutdown -r now
|
|
||||||
</tscreen>
|
|
||||||
or
|
|
||||||
<tscreen>
|
|
||||||
/sbin/reboot
|
|
||||||
</tscreen>
|
|
||||||
You can also reboot with
|
|
||||||
<tt>Ctrl-Alt-Delete</tt>. Give it a little time to do its work. This is
|
|
||||||
equivalent to <tt>/sbin/reboot</tt> in recent releases of FreeBSD, and is
|
|
||||||
much, much better than hitting the reset button. You don't want to
|
|
||||||
have to reinstall this thing, do you?
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Adding A User with Root Privileges
|
|
||||||
|
|
||||||
<p>If you didn't create any users when you installed the system and
|
|
||||||
are thus logged in as root, you should probably create a user now with
|
|
||||||
<tscreen>
|
|
||||||
adduser
|
|
||||||
</tscreen>
|
|
||||||
Don't use the <tt>-verbose</tt> option; the defaults are what you
|
|
||||||
want. Suppose you create a user <em>jack</em> with full name
|
|
||||||
<em>Jack Benimble</em>. Give jack a password if security (even
|
|
||||||
kids around who might pound on the keyboard) is an issue. When
|
|
||||||
it asks you if you want to invite jack into other groups, type
|
|
||||||
<tscreen>
|
|
||||||
wheel
|
|
||||||
</tscreen>
|
|
||||||
This will make it possible to log in as <em>jack</em> and use the <tt>su</tt> command to
|
|
||||||
become root. Then you won't get scolded any more for logging in as
|
|
||||||
root, and as root you'll have the same environment as jack
|
|
||||||
(this is good).
|
|
||||||
|
|
||||||
You can quit <tt>adduser</tt> any time by typing <tt>Ctrl-C</tt>, and at the end
|
|
||||||
you'll have a chance to approve your new user or simply type <tt>n</tt> for no.
|
|
||||||
You might want to create a second new user (jill?) so that when you edit
|
|
||||||
jack's login files, you'll have a hot spare in case something goes wrong.
|
|
||||||
|
|
||||||
Once you've done this, use <tt>exit</tt> to get back to a login prompt and log
|
|
||||||
in as <em>jack</em>. In general, it's a good idea to do as
|
|
||||||
much work as possible as an ordinary user who doesn't have the
|
|
||||||
power—and risk—of root.
|
|
||||||
|
|
||||||
If you already created a user and you want the user to be able to <tt>su</tt>
|
|
||||||
to root, you can log in as root and edit the file <tt>/etc/group</tt>, adding
|
|
||||||
jack to the first line (the group wheel). But first you need to
|
|
||||||
practice <tt>vi</tt>, the text editor.
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Looking Around
|
|
||||||
|
|
||||||
<p>Logged in as an ordinary user, look around and try out some commands that
|
|
||||||
will access the sources of help and information within FreeBSD.
|
|
||||||
|
|
||||||
Here are some commands and what they do:
|
|
||||||
<descrip>
|
|
||||||
<tag/<tt>id</tt>/ Tells you who you are!
|
|
||||||
<tag/<tt>pwd</tt>/ Shows you where you are—the current
|
|
||||||
working directory.
|
|
||||||
<tag/<tt>ls</tt>/ Lists the files in the current directory.
|
|
||||||
<tag/<tt>ls -F</tt>/ Lists the files in the current directory
|
|
||||||
with a * after
|
|
||||||
executables, a / after directories, and an @ after symbolic
|
|
||||||
links.
|
|
||||||
<tag/<tt>ls -l</tt>/ Lists the files in long format—size,
|
|
||||||
date, permissions.
|
|
||||||
<tag/<tt>ls -a</tt>/ Lists hidden (unless you're root) ``dot''
|
|
||||||
files with the others.
|
|
||||||
<tag/<tt>cd</tt>/ Changes directories. <tt>cd ..</tt> backs up
|
|
||||||
one level; note the
|
|
||||||
space after <tt>cd</tt>. <tt>cd /usr/local</tt>
|
|
||||||
goes there. <tt>cd ~</tt> goes to
|
|
||||||
the home directory of the person logged in—e.g.,
|
|
||||||
<tt>/usr/home/jack</tt>. Try <tt>cd /cdrom</tt>,
|
|
||||||
and then <tt>ls</tt>, to find out
|
|
||||||
if your CDROM is mounted and working.
|
|
||||||
<tag/<tt>view <em>filename</em></tt>/
|
|
||||||
Lets you look at a file (named <em>filename</em>
|
|
||||||
without changing
|
|
||||||
it. Try <tt>view /etc/fstab</tt>. <tt>:q</tt> to quit.
|
|
||||||
<tag/<tt>cat <em>filename</em></tt>/
|
|
||||||
Displays <em>filename</em> on screen. If it's too long and you
|
|
||||||
can see only the end of it, press <tt>ScrollLock</tt> and use
|
|
||||||
the <tt>up-arrow</tt> to move backward; you can
|
|
||||||
use <tt>ScrollLock</tt> with
|
|
||||||
man pages too. Press <tt>ScrollLock</tt> again
|
|
||||||
to quit scrolling.
|
|
||||||
You might want to try <tt>cat</tt> on some of the
|
|
||||||
dot files in your
|
|
||||||
home directory—<tt>cat .cshrc</tt>, <tt>cat .login</tt>,
|
|
||||||
<tt>cat .profile</tt>.
|
|
||||||
</descrip>
|
|
||||||
You'll notice aliases in <tt>.cshrc</tt>
|
|
||||||
for some of the <tt>ls</tt> commands (they're very convenient). You can create
|
|
||||||
other aliases by editing <tt>.cshrc</tt>. You can make these aliases
|
|
||||||
available to all users on the system by putting them in the system-wide
|
|
||||||
csh configuration file, <em>/etc/csh.cshrc</em>.
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Getting Help and Information
|
|
||||||
|
|
||||||
<p>Here are some useful sources of help. ``text'' stands for something of
|
|
||||||
your choice that you type in—usually a command or filename.
|
|
||||||
<descrip>
|
|
||||||
<tag/<tt>apropos <em>text</em></tt>/
|
|
||||||
Everything containing string <em>text</em>
|
|
||||||
in the whatis database.
|
|
||||||
<tag/<tt>man <em>text</em></tt>/
|
|
||||||
The man page for <em>text</em>.
|
|
||||||
The major source of documentation
|
|
||||||
for Un*x systems. <tt>man ls</tt> will tell you
|
|
||||||
all the ways to
|
|
||||||
use the <tt>ls</tt> command. Press <tt>Enter</tt> to
|
|
||||||
move through text, <tt>Ctrl-b</tt>
|
|
||||||
to go back a page, <tt>Ctrl-f</tt> to go forward,
|
|
||||||
<tt>q</tt> or <tt>Ctrl-c</tt> to quit.
|
|
||||||
<tag/<tt>which <em>text</em></tt>/
|
|
||||||
Tells you where in the user's path the command
|
|
||||||
<em>text</em> is found.
|
|
||||||
<tag/<tt>locate <em>text</em></tt>/
|
|
||||||
All the paths where the string <tt>text</tt> is found.
|
|
||||||
<tag/<tt>whatis <em>text</em></tt>/
|
|
||||||
Tells you what the command <tt>text</tt> does and its man page.
|
|
||||||
<tag/<tt>whereis <em>text</em></tt>/
|
|
||||||
Finds the file <em>text</em>, giving its full path.
|
|
||||||
</descrip>
|
|
||||||
|
|
||||||
You might want to try using <tt>whatis</tt> on some common useful
|
|
||||||
commands like <tt>cat</tt>, <tt>more</tt>, <tt>grep</tt>,
|
|
||||||
<tt>mv</tt>, <tt>find</tt>, <tt>tar</tt>, <tt>chmod</tt>,
|
|
||||||
<tt>chown</tt>, <tt>date</tt>, and <tt>script</tt>.
|
|
||||||
<tt>more</tt> lets you read a page at a time as it does in DOS,
|
|
||||||
e.g., <tt>ls -l | more</tt> or <tt>more <em>filename</em></tt>. The
|
|
||||||
<tt>*</tt> works as a wildcard—e.g., <tt>ls w*</tt> will show
|
|
||||||
you files beginning with w.
|
|
||||||
|
|
||||||
Are some of these not working very well? Both <tt>locate</tt>
|
|
||||||
and <tt>whatis</tt> depend on a database that's rebuilt weekly.
|
|
||||||
If your machine isn't going to be left on over the weekend (and
|
|
||||||
running FreeBSD), you might want to run the commands for daily,
|
|
||||||
weekly, and monthly maintenance now and then. Run them as root
|
|
||||||
and give each one time to finish before you start the next one,
|
|
||||||
for now.
|
|
||||||
<tscreen>
|
|
||||||
/etc/daily<newline>
|
|
||||||
/etc/weekly<newline>
|
|
||||||
/etc/monthly
|
|
||||||
</tscreen>
|
|
||||||
If you get tired waiting, press <tt>Alt-F2</tt> to get another
|
|
||||||
virtual console, and log in again. After all, it's a multi-user,
|
|
||||||
multi-tasking system. Nevertheless these commands will probably
|
|
||||||
flash messages on your screen while they're running; you can type
|
|
||||||
<tt>clear</tt> at the prompt to clear the screen. Once they've run, you
|
|
||||||
might want to look at <tt>/var/mail/root</tt> and
|
|
||||||
<tt>/var/log/messages</tt>.
|
|
||||||
|
|
||||||
Basically running such commands is part of system administration—and as
|
|
||||||
a single user of a Unix system, you're your own system administrator.
|
|
||||||
Virtually everything you need to be root to do is system administration.
|
|
||||||
Such responsibilities aren't covered very well even in those big fat books
|
|
||||||
on Unix, which seem to devote a lot of space to pulling down menus in
|
|
||||||
windows managers. You might want to get one of the two leading books
|
|
||||||
on systems administration, either Evi Nemeth et.al.'s <em>UNIX System
|
|
||||||
Administration Handbook</em> (Prentice-Hall, 1995, ISBN 0-13-15051-7)—the
|
|
||||||
second edition with the red cover; or Æleen Frisch's <em>Essential System
|
|
||||||
Administration</em> (O'Reilly & Associates, 1993, ISBN 0-937175-80-3).
|
|
||||||
I used Nemeth.
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Editing Text
|
|
||||||
|
|
||||||
<p>To configure your system, you need to edit text files. Most
|
|
||||||
of them will be in the <tt>/etc</tt> directory; and you'll need
|
|
||||||
to <tt>su</tt> to root to be able to change them. The text
|
|
||||||
editor is <tt>vi</tt>. Before you edit a file, you should
|
|
||||||
probably back it up. Suppose you want to edit
|
|
||||||
<tt>/etc/sysconfig</tt>. You could just use <tt>cd /etc</tt> to
|
|
||||||
get to the <tt>/etc</tt> directory and do:
|
|
||||||
<tscreen>
|
|
||||||
cp sysconfig sysconfig.orig
|
|
||||||
</tscreen>
|
|
||||||
This would copy <tt>sysconfig</tt> to <tt>sysconfig.orig</tt>,
|
|
||||||
and you could later copy <tt>sysconfig.orig</tt> to
|
|
||||||
<tt>sysconfig</tt> to recover the original. But even better
|
|
||||||
would be moving (renaming) and then copying back:
|
|
||||||
<tscreen>
|
|
||||||
mv sysconfig sysconfig.orig<newline>
|
|
||||||
cp sysconfig.orig sysconfig
|
|
||||||
</tscreen>
|
|
||||||
because the <tt>mv</tt> command preserves the original date and
|
|
||||||
owner of the file. You can now edit <tt>sysconfig</tt>. If you
|
|
||||||
want the original back, you'd then <tt>mv sysconfig syconfig.myedit</tt>
|
|
||||||
(assuming you want to preserve your edited version) and then
|
|
||||||
<tscreen>
|
|
||||||
mv sysconfig.orig sysconfig
|
|
||||||
</tscreen>
|
|
||||||
to put things back the way they were.
|
|
||||||
|
|
||||||
To edit a file, type
|
|
||||||
<tscreen>
|
|
||||||
vi filename
|
|
||||||
</tscreen>
|
|
||||||
Move through the text with the arrow keys. <tt>Esc</tt> (the
|
|
||||||
escape key) puts <tt>vi</tt> in command mode. Here are some
|
|
||||||
commands:
|
|
||||||
<descrip>
|
|
||||||
<tag/<tt>x</tt>/ delete letter the cursor is on
|
|
||||||
<tag/<tt>dd</tt>/ delete the entire line (even if
|
|
||||||
it wraps on the screen)
|
|
||||||
<tag/<tt>i</tt>/ insert text at the cursor
|
|
||||||
<tag/<tt>a</tt>/ insert text after the cursor
|
|
||||||
</descrip>
|
|
||||||
Once you type <tt>i</tt> or <tt>a</tt>, you can enter text.
|
|
||||||
<tt>Esc</tt> puts you back in command mode where you can type
|
|
||||||
<descrip>
|
|
||||||
<tag/<tt>:w</tt>/ to write your changes to disk and continue editing
|
|
||||||
<tag/<tt>:wq</tt>/ to write and quit
|
|
||||||
<tag/<tt>:q!</tt>/ to quit without saving changes
|
|
||||||
<tag><tt>/<em>text</em></tt></tag> to move the cursor
|
|
||||||
to <em>text</em>; <tt>/Enter</tt> (the enter
|
|
||||||
key) to find the next instance of <em>text</em>.
|
|
||||||
<tag/<tt>G</tt>/ to go to the end of the file
|
|
||||||
<tag/<tt><em>n</em>G</tt>/ to go to line <em>n</em> in
|
|
||||||
the file, where <em>n</em> is a number
|
|
||||||
<tag/<tt>Ctrl-L</tt>/ to redraw the screen
|
|
||||||
<tag/<tt>Ctrl-b</tt> and <tt>Ctrl-f</tt>/ go back
|
|
||||||
and forward a screen, as they
|
|
||||||
do with <tt>more</tt> and <tt>view</tt>.
|
|
||||||
</descrip>
|
|
||||||
|
|
||||||
Practice with <tt>vi</tt> in your home directory by creating a
|
|
||||||
new file with <tt>vi filename</tt> and adding and deleting text,
|
|
||||||
saving the file, and calling it up again. <tt>vi</tt> delivers
|
|
||||||
some surprises because it's really quite complex, and sometimes
|
|
||||||
you'll inadvertently issue a command that will do something you
|
|
||||||
don't expect. (Some people actually like <tt>vi</tt>—it's more
|
|
||||||
powerful than DOS EDIT—find out about the <tt>:r</tt> command.)
|
|
||||||
Use <tt>Esc</tt> one or more times to be sure you're in command
|
|
||||||
mode and proceed from there when it gives you trouble, save often
|
|
||||||
with <tt>:w</tt>, and use <tt>:q!</tt> to get out and start over
|
|
||||||
(from your last <tt>:w</tt>) when you need to.
|
|
||||||
|
|
||||||
Now you can <tt>cd</tt> to <tt>/etc</tt>, <tt>su</tt> to root,
|
|
||||||
use <tt>vi</tt> to edit the file <tt>/etc/group</tt>, and add a
|
|
||||||
user to wheel so the user has root privileges. Just add a comma
|
|
||||||
and the user's login name to the end of the first line in the
|
|
||||||
file, press <tt>Esc</tt>, and use <tt>:wq</tt> to write the file
|
|
||||||
to disk and quit. Instantly effective. (You didn't put a space
|
|
||||||
after the comma, did you?)
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Printing Files from DOS
|
|
||||||
|
|
||||||
<p>At this point you probably don't have the printer working, so here's a
|
|
||||||
way to create a file from a man page, move it to a floppy, and then
|
|
||||||
print it from DOS. Suppose you want to read carefully about changing
|
|
||||||
permissions on files (pretty important). You can use the command
|
|
||||||
man chmod to read about it. The command
|
|
||||||
<tscreen>
|
|
||||||
man chmod > chmod.txt
|
|
||||||
</tscreen>
|
|
||||||
will send the man page to the <tt>chmod.txt</tt> file instead of showing it on
|
|
||||||
your screen. Now put a dos-formatted diskette in your floppy drive a,
|
|
||||||
<tt>su</tt> to root, and type
|
|
||||||
<tscreen>
|
|
||||||
/sbin/mount -t msdos /dev/fd0 /mnt
|
|
||||||
</tscreen>
|
|
||||||
to mount the floppy drive on <tt>/mnt</tt>.
|
|
||||||
|
|
||||||
Now (you no longer need to be root, and you can type <tt>exit</tt> to get
|
|
||||||
back to being user jack) you can go to the directory where you created
|
|
||||||
chmod.txt and copy the file to the floppy with:
|
|
||||||
<tscreen>
|
|
||||||
cp chmod.txt /mnt
|
|
||||||
</tscreen>
|
|
||||||
and use <tt>ls /mnt</tt> to get a directory listing of
|
|
||||||
<tt>/mnt</tt>, which should show the file <tt>chmod.txt</tt>.
|
|
||||||
|
|
||||||
You might especially want to make a file from <tt>/sbin/dmesg</tt> by typing
|
|
||||||
<tscreen>
|
|
||||||
/sbin/dmesg > dmesg.txt
|
|
||||||
</tscreen>
|
|
||||||
and copying <tt>dmesg.txt</tt> to the floppy. <tt>/sbin/dmesg</tt> is the boot
|
|
||||||
log record,
|
|
||||||
and it's useful to understand it because it shows what FreeBSD found
|
|
||||||
when it booted up. If you ask questions on freebsd-questions@FreeBSD.ORG or on
|
|
||||||
a USENET group—like ``FreeBSD isn't finding my tape drive, what do I
|
|
||||||
do?''—people will want to know what <tt>dmesg</tt> has to say.
|
|
||||||
|
|
||||||
You can now dismount the floppy drive (as root) to get the disk out with
|
|
||||||
<tscreen>
|
|
||||||
/sbin/umount /mnt
|
|
||||||
</tscreen>
|
|
||||||
or reboot to go to DOS. Copy these files to a DOS directory, call them
|
|
||||||
up with DOS EDIT, Windows Notepad, or a word processor, make a minor
|
|
||||||
change so the file has to be saved, and print as you normally would
|
|
||||||
from DOS or Windows. Hope it works! man pages come out best if printed
|
|
||||||
with the dos <tt>print</tt> command. (Copying files from FreeBSD to a mounted
|
|
||||||
dos partition is in some cases still a little risky.)
|
|
||||||
|
|
||||||
Getting the printer printing from FreeBSD involves
|
|
||||||
creating an appropriate entry in <tt>/etc/printcap</tt> and creating
|
|
||||||
a matching spool directory in <tt>/var/spool/output</tt>. If your
|
|
||||||
printer is on lpt0 (what dos calls LPT1), you may only need to
|
|
||||||
go to <tt>/var/spool/output</tt> and (as root) create the directory
|
|
||||||
lpd by typing:
|
|
||||||
|
|
||||||
<tscreen>
|
|
||||||
mkdir lpd
|
|
||||||
</tscreen>
|
|
||||||
Then the printer should respond if it's turned on when the
|
|
||||||
system is booted, and lp or lpr should send a file to the printer.
|
|
||||||
Whether or not the file actually prints depends on configuring it, which is
|
|
||||||
covered in the FreeBSD handbook.
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Other Useful Commands
|
|
||||||
|
|
||||||
<p><descrip>
|
|
||||||
<tag/<tt>df</tt>/ shows file space and mounted systems.
|
|
||||||
<tag/<tt>ps aux</tt>/ shows processes running. <tt>ps ax</tt> is a narrower form.
|
|
||||||
<tag/<tt>lsdev</tt>/ lists configured devices
|
|
||||||
<tag/<tt>devmenu</tt>/ a menu of devices—in color!
|
|
||||||
<tag/<tt>rm <em>filename</em></tt>/ remove <tt>filename</tt>
|
|
||||||
<tag/<tt>rm -R <em>dir</em></tt>/ removes a directory <tt>dir</tt> and all
|
|
||||||
subdirectories—careful!
|
|
||||||
<tag/<tt>ls -R</tt>/ lists files in the current
|
|
||||||
directory and all subdirectories;
|
|
||||||
I used a variant, <tt>ls -AFR > where.txt</tt>,
|
|
||||||
to get a list of all
|
|
||||||
the files in <tt>/</tt> and (separately)
|
|
||||||
<tt>/usr</tt> before I found better
|
|
||||||
ways to find files.
|
|
||||||
<tag/<tt>passwd</tt>/ to change user's password (or root's password)
|
|
||||||
<tag/<tt>man hier</tt>/ man page on the Unix file system
|
|
||||||
</descrip>
|
|
||||||
Use find to locate filename in <tt>/usr</tt> or any of its subdirectories with
|
|
||||||
<tscreen>
|
|
||||||
find /usr -name "<em>filename</em>"
|
|
||||||
</tscreen>
|
|
||||||
You can use <tt>*</tt> as a wildcard in <tt>"<em>filename</em>"</tt>
|
|
||||||
(which should be in quotes). If you tell find to search in
|
|
||||||
<tt>/</tt> instead of <tt>/usr</tt> it will look for the file(s)
|
|
||||||
on all mounted file systems, including the CDROM and the dos
|
|
||||||
partition.
|
|
||||||
|
|
||||||
An excellent book that explains Unix commands and utilities is
|
|
||||||
Abrahams & Larson, <em>Unix for the Impatient</em> (2nd ed.,
|
|
||||||
Addison-Wesley, 1996). There's also a lot of Unix information on
|
|
||||||
the Internet. Try the <url
|
|
||||||
url="http://www.eecs.nwu.edu/unix.html" name="Unix Reference
|
|
||||||
Desk">.
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Next Steps
|
|
||||||
|
|
||||||
<p>You should now have the tools you need to get around and edit
|
|
||||||
files, so you can get everything up and running. There is a
|
|
||||||
great deal of information in the FreeBSD handbook (which is
|
|
||||||
probably on your hard drive) and <url
|
|
||||||
url="http://www.freebsd.org" name="FreeBSD's web site">. A wide
|
|
||||||
variety of packages and ports are on the <htmlurl
|
|
||||||
url="http://www.cdrom.com" name="Walnut Creek"> CDROM as well as
|
|
||||||
the web site. The handbook tells you more about how to use them
|
|
||||||
(get the package if it exists, with <tt>pkg_add
|
|
||||||
/cdrom/packages/All/<em>packagename</em></tt>, where
|
|
||||||
<em>packagename</em> is the filename of the package). The cdrom
|
|
||||||
has lists of the packages and ports with brief descriptions in
|
|
||||||
<tt>cdrom/packages/index</tt>, <tt>cdrom/packages/index.txt</tt>,
|
|
||||||
and <tt>cdrom/ports/index</tt>, with fuller descriptions in
|
|
||||||
<tt>/cdrom/ports/*/*/pkg/DESCR</tt>, where the <tt>*</tt>s
|
|
||||||
represent subdirectories of kinds of programs and program names
|
|
||||||
respectively.
|
|
||||||
|
|
||||||
If you find the handbook too sophisticated (what with
|
|
||||||
<tt>lndir</tt> and all) on installing ports from the cdrom,
|
|
||||||
here's what usually works:
|
|
||||||
|
|
||||||
Find the port you want, say <tt>kermit</tt>. There will be a directory
|
|
||||||
for it on the cdrom. Copy the subdirectory to
|
|
||||||
<tt>/usr/local</tt> (a good place for software you add that
|
|
||||||
should be available to all users) with:
|
|
||||||
<tscreen>
|
|
||||||
cp -R /cdrom/ports/comm/kermit /usr/local
|
|
||||||
</tscreen>
|
|
||||||
This should result in a <tt>/usr/local/kermit</tt> subdirectory
|
|
||||||
that has all the files that the <tt>kermit</tt> subdirectory on
|
|
||||||
the CDROM has.
|
|
||||||
|
|
||||||
Next, check <tt>/cdrom/ports/distfiles</tt> for a file with a name
|
|
||||||
that indicates it's the port you want. Copy that file to
|
|
||||||
<tt>/usr/ports/distfiles</tt>. (Create <tt>/usr/ports/distfiles</tt>
|
|
||||||
if it doesn't exist using <em>mkdir</em>.) In the case of <tt>kermit</tt>,
|
|
||||||
there is no distfile.
|
|
||||||
|
|
||||||
Then <tt>cd</tt> to the subdirectory of
|
|
||||||
<tt>/usr/local/kermit</tt> that has the file Makefile. Type
|
|
||||||
<tscreen>
|
|
||||||
make all install
|
|
||||||
</tscreen>
|
|
||||||
|
|
||||||
During this process the port will ftp to get any compressed files it
|
|
||||||
needs that it didn't find in <tt>/usr/ports/distfiles</tt>. If you
|
|
||||||
don't have your network running yet and there was no file for the
|
|
||||||
port in <tt>/cdrom/ports/distfiles</tt>, you will have to get the
|
|
||||||
distfile using another machine and copy it to
|
|
||||||
<tt>/usr/ports/distfiles</tt> from a floppy or your dos partition.
|
|
||||||
Read <tt>Makefile</tt> (with <tt>cat</tt> or <tt>more</tt> or
|
|
||||||
<tt>view</tt>) to find out where to go (the master distribution site)
|
|
||||||
to get the file and what its name is. Its name will be truncated
|
|
||||||
when downloaded to DOS, and after you get it into
|
|
||||||
<tt>/usr/ports/distfiles</tt> you'll have to rename it (with the
|
|
||||||
<tt>mv</tt> command) to its original name so it can be found. (Use
|
|
||||||
binary file transfers!) Then go back to <tt>/usr/local/kermit</tt>,
|
|
||||||
find the directory with <tt>Makefile</tt>, and type <tt>make all
|
|
||||||
install</tt>.
|
|
||||||
|
|
||||||
The other thing that happens when installing ports or packages is that
|
|
||||||
some other program is needed. If the installation stops with a message
|
|
||||||
"can't find unzip" or whatever, you might need to install the package
|
|
||||||
or port for unzip before you continue.
|
|
||||||
|
|
||||||
Once it's installed type <tt>rehash</tt> to make FreeBSD
|
|
||||||
<tt>reread</tt> the files in the path so it knows what's there.
|
|
||||||
(If you get a lot of "path not found" messages when you use
|
|
||||||
<tt>whereis</tt> or which, you might want to make additions to
|
|
||||||
the list of directories in the path statement in <tt>.cshrc</tt>
|
|
||||||
in your home directory. The path statement in Unix does the same
|
|
||||||
kind of work it does in DOS, except the current directory is not
|
|
||||||
(by default) in the path for security reasons; if
|
|
||||||
the command you want is in the directory you're in, you need to
|
|
||||||
type <tt>./</tt> before the command to make it work; no space after the
|
|
||||||
slash.)
|
|
||||||
|
|
||||||
You might want to get the most recent version of Netscape from their
|
|
||||||
<url url="ftp://ftp.netscape.com" name="ftp site">. (Netscape
|
|
||||||
requires the X Window System.) The version you want is the "unknown
|
|
||||||
bsd" version. Just use <tt>gunzip <em>filename</em></tt> and <tt>tar
|
|
||||||
xvf <em>filename</em></tt> on it, move the binary to
|
|
||||||
<tt>/usr/local/bin</tt> or some other place binaries are kept,
|
|
||||||
<tt>rehash</tt>, and then put the following lines in <tt>.cshrc</tt>
|
|
||||||
in each user's home directory or (easier) in
|
|
||||||
<tt>/etc/csh.cshrc</tt>, the system-wide csh start-up file:
|
|
||||||
<tscreen>
|
|
||||||
setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB<newline>
|
|
||||||
setenv XNLSPATH /usr/X11R6/lib/X11/nls
|
|
||||||
</tscreen>
|
|
||||||
This assumes that the file <tt>XKeysymDB</tt> and the directory
|
|
||||||
<tt>nls</tt> are in
|
|
||||||
<tt>/usr/X11R6/lib/X11</tt>; if they're not, find them and put them there.
|
|
||||||
|
|
||||||
If you originally got Netscape as a port using the CDROM (or ftp),
|
|
||||||
don't replace <tt>/usr/local/bin/netscape</tt> with the new netscape binary;
|
|
||||||
this is just a shell script that sets up the environmental variables
|
|
||||||
for you. Instead rename the new binary to <tt>netscape.bin</tt> and replace the
|
|
||||||
old
|
|
||||||
binary, which is <tt>/usr/local/lib/netscape/netscape.bin</tt>.
|
|
||||||
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Other
|
|
||||||
|
|
||||||
<p>As root, you can dismount the CDROM with <tt>/sbin/umount
|
|
||||||
/cdrom</tt>, take it out of the drive, insert another one, and
|
|
||||||
mount it with <tt>/sbin/mount_cd9660 /dev/cd0a /cdrom</tt>
|
|
||||||
assuming <tt>cd0a</tt> is the device name for your CDROM drive.
|
|
||||||
|
|
||||||
Using the live file system—the second of FreeBSD's CDROM disks—is
|
|
||||||
useful if you've got limited space. You might try using
|
|
||||||
<tt>emacs</tt> or playing games from the cdrom. This involves using
|
|
||||||
<tt>lndir</tt>, which gets installed with the X Window System, to tell the
|
|
||||||
program(s) where to find the necessary files, because they're in the
|
|
||||||
<tt>/cdrom</tt> file system instead of in <tt>/usr</tt> and its
|
|
||||||
subdirectories, which is where they're expected to be. Read <tt>man
|
|
||||||
lndir</tt>.
|
|
||||||
|
|
||||||
You can delete a user (say, jack) by using the command <tt>vipw</tt>
|
|
||||||
to bring up the <tt>master.passwd</tt> file (do not use vi directly
|
|
||||||
on master.passwd); delete the line for jack and save the file. Then
|
|
||||||
edit <tt>/etc/group</tt>, eliminating jack wherever it appears.
|
|
||||||
Finally, go to <tt>/usr/home</tt> and use <tt>rm -R</tt> jack (to
|
|
||||||
get rid of user jack's home directory files).
|
|
||||||
|
|
||||||
<!-- ************************************************************ -->
|
|
||||||
<sect>Comments Welcome
|
|
||||||
|
|
||||||
<p>If you use this guide I'd be interested in knowing where it was
|
|
||||||
unclear and what was left out that you think should be included, and
|
|
||||||
if it was helpful. My thanks to Eugene W. Stark, professor of
|
|
||||||
computer science at SUNY-Stony Brook, and John Fieber for helpful
|
|
||||||
comments.
|
|
||||||
|
|
||||||
Annelise Anderson <htmlurl url="mailto:andrsn@hoover.stanford.edu"
|
|
||||||
name="<andrsn@hoover.stanford.edu>">
|
|
||||||
|
|
||||||
</article>
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
DOC= newuser
|
DOCS= newuser.docb
|
||||||
SRCS= newuser.sgml
|
INDEXLINK= newuser.html
|
||||||
|
|
||||||
.include <bsd.sgml.mk>
|
.include "../../web.mk"
|
||||||
|
|
||||||
|
|
844
en_US.ISO8859-1/articles/new-users/article.sgml
Normal file
844
en_US.ISO8859-1/articles/new-users/article.sgml
Normal file
|
@ -0,0 +1,844 @@
|
||||||
|
<!DOCTYPE BOOK PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
|
||||||
|
<book>
|
||||||
|
|
||||||
|
<bookinfo>
|
||||||
|
<bookbiblio>
|
||||||
|
<title>For People New to Both FreeBSD and Unix</title>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Annelise</firstname>
|
||||||
|
<surname>Anderson</surname>
|
||||||
|
<affiliation>
|
||||||
|
<address><email>andrsn@hoover.stanford.edu</email></address>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
<pubdate>June 30, 1996</pubdate>
|
||||||
|
|
||||||
|
<abstract><para>Congratulations on installing FreeBSD! This
|
||||||
|
introduction is for people new to both FreeBSD
|
||||||
|
<emphasis>and</emphasis> Un*x—so it starts with basics. It
|
||||||
|
assumes you're using version 2.0.5 or later of FreeBSD as distributed
|
||||||
|
by Walnut Creek or FreeBSD.ORG, your system (for now) has a single
|
||||||
|
user (you)—and you're probably pretty good with DOS/Windows or
|
||||||
|
OS/2.</para></abstract>
|
||||||
|
|
||||||
|
</bookbiblio>
|
||||||
|
</bookinfo>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Logging in and Getting Out</title>
|
||||||
|
|
||||||
|
<para>Log in (when you see <systemitem
|
||||||
|
class=prompt>login:</systemitem>) as a user you created during
|
||||||
|
installation or as <firstterm>root</firstterm>. (Your FreeBSD
|
||||||
|
installation will already have an account for root; root can go
|
||||||
|
anywhere and do anything, including deleting essential files, so be
|
||||||
|
careful!)</para>
|
||||||
|
|
||||||
|
<para>To log out (and get a new <systemitem class=prompt>login:</systemitem> prompt) type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>exit</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
as often as necessary. Yes, press <keysym>enter</keysym> after
|
||||||
|
commands, and remember that Unix is
|
||||||
|
case-sensitive—<command>exit</command>, not
|
||||||
|
<command>EXIT</command>.</para>
|
||||||
|
|
||||||
|
<para>To shut down the machine type:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/shutdown -h now</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Or to reboot type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/shutdown -r now</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
or
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/reboot</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>You can also reboot with
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>.
|
||||||
|
Give it a little time to do its work. This is equivalent to
|
||||||
|
<command>/sbin/reboot</command> in recent releases of FreeBSD, and is
|
||||||
|
much, much better than hitting the reset button. You don't want to
|
||||||
|
have to reinstall this thing, do you?</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Adding A User with Root Privileges</title>
|
||||||
|
|
||||||
|
<para>If you didn't create any users when you installed the system and
|
||||||
|
are thus logged in as root, you should probably create a user now with
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>adduser</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Don't use the <option>-verbose</option> option; the defaults are what
|
||||||
|
you want. Suppose you create a user <emphasis>jack</emphasis> with
|
||||||
|
full name <emphasis>Jack Benimble</emphasis>. Give jack a password
|
||||||
|
if security (even kids around who might pound on the keyboard) is an
|
||||||
|
issue. When it asks you if you want to invite jack into other
|
||||||
|
groups, type <userinput>wheel</userinput>
|
||||||
|
<informalexample>
|
||||||
|
<screen>Login group is ``jack''. Invite jack into other groups: <userinput>wheel</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
This will make it possible to log in as <emphasis>jack</emphasis> and
|
||||||
|
use the <command>su</command> command to become root. Then you won't
|
||||||
|
get scolded any more for logging in as root, and as root you'll have
|
||||||
|
the same environment as jack (this is good).</para>
|
||||||
|
|
||||||
|
<para>You can quit <command>adduser</command> any time by typing
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>, and at
|
||||||
|
the end you'll have a chance to approve your new user or simply type
|
||||||
|
<keycap>n</keycap> for no. You might want to create a
|
||||||
|
second new user (jill?) so that when you edit jack's login files,
|
||||||
|
you'll have a hot spare in case something goes wrong.</para>
|
||||||
|
|
||||||
|
<para>Once you've done this, use <command>exit</command>
|
||||||
|
to get back to a login prompt and log in as
|
||||||
|
<emphasis>jack</emphasis>. In general, it's a good idea to do as
|
||||||
|
much work as possible as an ordinary user who doesn't have the
|
||||||
|
power—and risk—of root.</para>
|
||||||
|
|
||||||
|
<para>If you already created a user and you want the user to be able
|
||||||
|
to <command>su</command> to root, you can log in as root
|
||||||
|
and edit the file <filename>/etc/group</filename>, adding jack to the
|
||||||
|
first line (the group wheel). But first you need to practice
|
||||||
|
<command>vi</command>, the text editor.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Looking Around</title>
|
||||||
|
|
||||||
|
<para>Logged in as an ordinary user, look around and try out some
|
||||||
|
commands that will access the sources of help and information within
|
||||||
|
FreeBSD.</para>
|
||||||
|
|
||||||
|
<para>Here are some commands and what they do:
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>id</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you who you are!</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>pwd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Shows you where you are—the current
|
||||||
|
working directory.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in the current directory.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-F</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in the current directory with a
|
||||||
|
<literal>*</literal> after executables, a <literal>/</literal> after
|
||||||
|
directories, and an <literal>@</literal> after symbolic links.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-l</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in long format—size,
|
||||||
|
date, permissions.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-a</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists hidden (unless you're root) <quote>dot</quote>
|
||||||
|
files with the others.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>cd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Changes directories. <command>cd
|
||||||
|
<parameter>..</parameter></command> backs up one level; note the
|
||||||
|
space after <command>cd</command>. <command>cd
|
||||||
|
<parameter>/usr/local</parameter></command> goes there. <command>cd
|
||||||
|
<parameter>~</parameter></command> goes to the home directory of the
|
||||||
|
person logged in—e.g., <filename>/usr/home/jack</filename>.
|
||||||
|
Try <command>cd <parameter>/cdrom</parameter></command>, and then
|
||||||
|
<command>ls</command>, to find out if your CDROM is mounted and
|
||||||
|
working.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>view <replaceable>filename</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lets you look at a file (named
|
||||||
|
<replaceable>filename</replaceable> without changing it. Try
|
||||||
|
<command>view <parameter>/etc/fstab</parameter></command>.
|
||||||
|
<command>:q</command> to quit.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>cat <replaceable>filename</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
|
||||||
|
<para>Displays <replaceable>filename</replaceable> on screen. If
|
||||||
|
it's too long and you can see only the end of it, press
|
||||||
|
<keycap>ScrollLock</keycap> and use the <keycap>up-arrow</keycap> to
|
||||||
|
move backward; you can use <keycap>ScrollLock</keycap> with man pages
|
||||||
|
too. Press <keycap>ScrollLock</keycap> again to quit scrolling. You
|
||||||
|
might want to try <command>cat</command> on some of the dot files in
|
||||||
|
your home directory—<command>cat
|
||||||
|
<parameter>.cshrc</parameter></command>, <command>cat
|
||||||
|
<parameter>.login</parameter></command>, <command>cat
|
||||||
|
<parameter>.profile</parameter></command>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
You'll notice aliases in <filename>.cshrc</filename> for some of the
|
||||||
|
<command>ls</command> commands (they're very convenient).
|
||||||
|
You can create other aliases by editing <filename>.cshrc</filename>.
|
||||||
|
You can make these aliases available to all users on the system by
|
||||||
|
putting them in the system-wide csh configuration file,
|
||||||
|
<filename>/etc/csh.cshrc</filename>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Getting Help and Information</title>
|
||||||
|
|
||||||
|
<para>Here are some useful sources of help.
|
||||||
|
<replaceable>Text</replaceable> stands for something of your choice
|
||||||
|
that you type in—usually a command or filename.</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>apropos <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Everything containing string <replaceable>text</replaceable>
|
||||||
|
in the <database>whatis database</database>.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>man <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The man page for <replaceable>text</replaceable>. The major
|
||||||
|
source of documentation for Un*x systems. <command>man
|
||||||
|
<parameter>ls</parameter></command> will tell you all the ways to use
|
||||||
|
the <command>ls</command> command. Press <keycap>Enter</keycap> to
|
||||||
|
move through text,
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> to go
|
||||||
|
back a page, <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo> to
|
||||||
|
go forward, <keycap>q</keycap> or
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo> to
|
||||||
|
quit.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>which <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you where in the user's path the command
|
||||||
|
<replaceable>text</replaceable> is found.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>locate <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>All the paths where the string <replaceable>text</replaceable>
|
||||||
|
is found.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>whatis <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you what the command <replaceable>text</replaceable>
|
||||||
|
does and its man page.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>whereis <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Finds the file <replaceable>text</replaceable>, giving its full
|
||||||
|
path.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
<para>You might want to try using <command>whatis</command> on some
|
||||||
|
common useful commands like <command>cat</command>,
|
||||||
|
<command>more</command>, <command>grep</command>,
|
||||||
|
<command>mv</command>, <command>find</command>,
|
||||||
|
<command>tar</command>, <command>chmod</command>,
|
||||||
|
<command>chown</command>, <command>date</command>, and
|
||||||
|
<command>script</command>. <command>more</command> lets you read a
|
||||||
|
page at a time as it does in DOS, e.g., <command>ls -l |
|
||||||
|
more</command> or <command>more
|
||||||
|
<replaceable>filename</replaceable></command>. The
|
||||||
|
<literal>*</literal> works as a wildcard—e.g., <command>ls
|
||||||
|
w*</command> will show you files beginning with
|
||||||
|
<literal>w</literal>.</para>
|
||||||
|
|
||||||
|
<para>Are some of these not working very well? Both
|
||||||
|
<command>locate</command> and <command>whatis</command>
|
||||||
|
depend on a database that's rebuilt weekly. If your machine isn't
|
||||||
|
going to be left on over the weekend (and running FreeBSD), you might
|
||||||
|
want to run the commands for daily, weekly, and monthly maintenance
|
||||||
|
now and then. Run them as root and give each one time to finish
|
||||||
|
before you start the next one, for now.
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/etc/daily</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation>
|
||||||
|
# <userinput>/etc/weekly</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation>
|
||||||
|
# <userinput>/etc/monthly</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation></screen>
|
||||||
|
</informalexample></para>
|
||||||
|
|
||||||
|
<para>If you get tired waiting, press
|
||||||
|
<keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> to get
|
||||||
|
another <firstterm>virtual console</firstterm>, and log in again.
|
||||||
|
After all, it's a multi-user, multi-tasking system. Nevertheless
|
||||||
|
these commands will probably flash messages on your screen while
|
||||||
|
they're running; you can type <command>clear</command> at the prompt
|
||||||
|
to clear the screen. Once they've run, you might want to look at
|
||||||
|
<filename>/var/mail/root</filename> and
|
||||||
|
<filename>/var/log/messages</filename>.</para>
|
||||||
|
|
||||||
|
<para>Basically running such commands is part of system
|
||||||
|
administration—and as a single user of a Unix system, you're
|
||||||
|
your own system administrator. Virtually everything you need to be
|
||||||
|
root to do is system administration. Such responsibilities aren't
|
||||||
|
covered very well even in those big fat books on Unix, which seem to
|
||||||
|
devote a lot of space to pulling down menus in windows managers. You
|
||||||
|
might want to get one of the two leading books on systems
|
||||||
|
administration, either Evi Nemeth et.al.'s <citetitle>UNIX System
|
||||||
|
Administration Handbook</citetitle> (Prentice-Hall, 1995, ISBN
|
||||||
|
0-13-15051-7)—the second edition with the red cover; or
|
||||||
|
Æleen Frisch's <citetitle>Essential System
|
||||||
|
Administration</citetitle> (O'Reilly & Associates, 1993, ISBN
|
||||||
|
0-937175-80-3). I used Nemeth.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Editing Text</title>
|
||||||
|
|
||||||
|
<para>To configure your system, you need to edit text files. Most of
|
||||||
|
them will be in the <filename>/etc</filename> directory; and you'll
|
||||||
|
need to <command>su</command> to root to be able to change them. The
|
||||||
|
text editor is <command>vi</command>. Before you edit a file, you
|
||||||
|
should probably back it up. Suppose you want to edit
|
||||||
|
<filename>/etc/sysconfig</filename>. You could just use <command>cd
|
||||||
|
/etc</command> to get to the <filename>/etc</filename> directory and
|
||||||
|
do:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>cp sysconfig sysconfig.orig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
This would copy <filename>sysconfig</filename> to
|
||||||
|
<filename>sysconfig.orig</filename>, and you could later copy
|
||||||
|
<filename>sysconfig.orig</filename> to <emphasis
|
||||||
|
remap=tt>sysconfig</emphasis> to recover the original. But even
|
||||||
|
better would be moving (renaming) and then copying back:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mv sysconfig sysconfig.orig</userinput>
|
||||||
|
# <userinput>cp sysconfig.orig sysconfig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
because the <command>mv</command> command preserves the original date
|
||||||
|
and owner of the file. You can now edit
|
||||||
|
<filename>sysconfig</filename>. If you want the original back, you'd
|
||||||
|
then <userinput>mv sysconfig syconfig.myedit</userinput>
|
||||||
|
(assuming you want to preserve your edited version) and then
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mv sysconfig.orig sysconfig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
to put things back the way they were.</para>
|
||||||
|
|
||||||
|
<para>To edit a file, type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>vi <replaceable>filename</replaceable></userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Move through the text with the arrow keys. <keycap>Esc</keycap> (the
|
||||||
|
escape key) puts <command>vi</command> in command mode. Here are some
|
||||||
|
commands:
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>x</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>delete letter the cursor is on</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>dd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>delete the entire line (even if it wraps on the screen)</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>i</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>insert text at the cursor</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>a</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>insert text after the cursor</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
Once you type <command>i</command> or <command>a</command>, you can enter text.
|
||||||
|
<command>Esc</command> puts you back in command mode where you can type
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>:w</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>to write your changes to disk and continue editing</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>:wq</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to write and quit</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>:q!</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to quit without saving changes</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>/<replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to move the cursor to <replaceable>text</replaceable>;
|
||||||
|
<command>/<keycap>Enter</keycap></command> (the enter key) to find
|
||||||
|
the next instance of <replaceable>text</replaceable>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>G</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to go to the end of the file</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command><replaceable>n</replaceable>G</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to go to line <replaceable>n</replaceable> in
|
||||||
|
the file, where <replaceable>n</replaceable> is a number</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><keycombo><keycap>Ctrl</><keycap>L</></keycombo></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to redraw the screen</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><keycombo><keycap>Ctrl</><keycap>b</></> and <keycombo><keycap>Ctrl</><keycap>f</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>go back
|
||||||
|
and forward a screen, as they
|
||||||
|
do with <command>more</> and <command>view</>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>Practice with <command>vi</> in your home directory by creating
|
||||||
|
a new file with <command>vi <replaceable>filename</></> and adding
|
||||||
|
and deleting text, saving the file, and calling it up again.
|
||||||
|
<command>vi</> delivers some surprises because it's really quite
|
||||||
|
complex, and sometimes you'll inadvertently issue a command that will
|
||||||
|
do something you don't expect. (Some people actually like
|
||||||
|
<command>vi</>—it's more powerful than DOS EDIT—find out
|
||||||
|
about the <command>:r</> command.) Use <keycap>Esc</> one or
|
||||||
|
more times to be sure you're in command mode and proceed from there
|
||||||
|
when it gives you trouble, save often with <command>:w</>, and
|
||||||
|
use <command>:q!</> to get out and start over (from
|
||||||
|
your last <command>:w</>) when you need to.</para>
|
||||||
|
|
||||||
|
<para>Now you can <command>cd</> to <filename>/etc</filename>,
|
||||||
|
<command>su</> to root, use <command>vi</> to edit the file
|
||||||
|
<filename>/etc/group</filename>, and add a user to wheel so the user
|
||||||
|
has root privileges. Just add a comma and the user's login name to
|
||||||
|
the end of the first line in the file, press <keycap>Esc</>, and use
|
||||||
|
<command>:wq</> to write the file to disk and quit. Instantly
|
||||||
|
effective. (You didn't put a space after the comma, did you?)</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Printing Files from DOS</title>
|
||||||
|
|
||||||
|
<para>At this point you probably don't have the printer working, so here's a
|
||||||
|
way to create a file from a man page, move it to a floppy, and then
|
||||||
|
print it from DOS. Suppose you want to read carefully about changing
|
||||||
|
permissions on files (pretty important). You can use the command
|
||||||
|
man chmod to read about it. The command
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>man chmod > chmod.txt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
will send the man page to the <filename>chmod.txt</filename> file
|
||||||
|
instead of showing it on your screen. Now put a dos-formatted
|
||||||
|
diskette in your floppy drive a, <command>su</> to
|
||||||
|
root, and type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/mount -t msdos /dev/fd0 /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
to mount the floppy drive on <filename>/mnt</filename>.</para>
|
||||||
|
|
||||||
|
<para>Now (you no longer need to be root, and you can type
|
||||||
|
<command>exit</> to get back to being user jack) you can go to the
|
||||||
|
directory where you created chmod.txt and copy the file to the floppy
|
||||||
|
with:
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>cp chmod.txt /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and use <command>ls /mnt</command> to get a directory listing of
|
||||||
|
<filename>/mnt</filename>, which should show the file
|
||||||
|
<filename>chmod.txt</filename>.</para>
|
||||||
|
|
||||||
|
<para>You might especially want to make a file from
|
||||||
|
<filename>/sbin/dmesg</filename> by typing
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>/sbin/dmesg > dmesg.txt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and copying <filename>dmesg.txt</filename> to the floppy.
|
||||||
|
<command>/sbin/dmesg</command> is the boot log record, and it's
|
||||||
|
useful to understand it because it shows what FreeBSD found when it
|
||||||
|
booted up. If you ask questions on
|
||||||
|
<email>freebsd-questions@FreeBSD.ORG</> or on a USENET
|
||||||
|
group—like <quote>FreeBSD isn't finding my tape drive, what do
|
||||||
|
I do?</quote>—people will want to know what <command>dmesg</>
|
||||||
|
has to say.</para>
|
||||||
|
|
||||||
|
<para>You can now dismount the floppy drive (as root) to get the disk
|
||||||
|
out with
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/umount /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and reboot to go to DOS. Copy these files to a DOS directory, call
|
||||||
|
them up with DOS EDIT, Windows Notepad, or a word processor, make a
|
||||||
|
minor change so the file has to be saved, and print as you normally
|
||||||
|
would from DOS or Windows. Hope it works! man pages come out best if
|
||||||
|
printed with the dos <command>print</> command. (Copying files from
|
||||||
|
FreeBSD to a mounted dos partition is in some cases still a little
|
||||||
|
risky.)</para>
|
||||||
|
|
||||||
|
<para>Getting the printer printing from FreeBSD involves creating an
|
||||||
|
appropriate entry in <filename>/etc/printcap</filename> and creating
|
||||||
|
a matching spool directory in
|
||||||
|
<filename>/var/spool/output</filename>. If your printer is on
|
||||||
|
<hardware>lpt0</> (what dos calls <hardware>LPT1</>), you may only
|
||||||
|
need to go to <filename>/var/spool/output</filename> and (as root)
|
||||||
|
create the directory <filename>lpd</> by typing:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mkdir lpd</></screen>
|
||||||
|
</informalexample>
|
||||||
|
Then the printer should respond if it's turned on when the system is
|
||||||
|
booted, and lp or lpr should send a file to the printer. Whether or
|
||||||
|
not the file actually prints depends on configuring it, which is
|
||||||
|
covered in the <ulink
|
||||||
|
URL="http://www.freebsd.org/handbook/handbook.html">FreeBSD
|
||||||
|
handbook.</></para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Other Useful Commands</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>df</></term>
|
||||||
|
<listitem>
|
||||||
|
<para>shows file space and mounted systems.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ps aux</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>shows processes running. <command>ps ax</> is a narrower form.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>rm <replaceable>filename</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>remove <replaceable>filename</>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>rm -R <replaceable>dir</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>removes a directory <replaceable>dir</> and all
|
||||||
|
subdirectories—careful!</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls -R</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>lists files in the current
|
||||||
|
directory and all subdirectories;
|
||||||
|
I used a variant, <command>ls -AFR > where.txt</command>,
|
||||||
|
to get a list of all
|
||||||
|
the files in <filename>/</filename> and (separately)
|
||||||
|
<filename>/usr</filename> before I found better
|
||||||
|
ways to find files.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>passwd</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to change user's password (or root's password)</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>man hier</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>man page on the Unix file system</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist></para>
|
||||||
|
|
||||||
|
<para>Use <command>find</> to locate filename in <filename>/usr</filename>
|
||||||
|
or any of its subdirectories with
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>find /usr -name "<replaceable>filename</>"</></screen>
|
||||||
|
</informalexample>
|
||||||
|
You can use <literal>*</literal> as a wildcard in
|
||||||
|
<parameter>"<replaceable>filename</>"</> (which should be in
|
||||||
|
quotes). If you tell find to search in <filename>/</filename>
|
||||||
|
instead of <filename>/usr</filename> it will look for the file(s) on
|
||||||
|
all mounted file systems, including the CDROM and the dos
|
||||||
|
partition.</para>
|
||||||
|
|
||||||
|
<para>An excellent book that explains Unix commands and utilities is
|
||||||
|
Abrahams & Larson, <citetitle>Unix for the Impatient</citetitle>
|
||||||
|
(2nd ed., Addison-Wesley, 1996). There's also a lot of Unix
|
||||||
|
information on the Internet. Try the <ulink
|
||||||
|
URL="http://www.eecs.nwu.edu/unix.html">Unix Reference
|
||||||
|
Desk</ulink>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Next Steps</title>
|
||||||
|
|
||||||
|
<para>You should now have the tools you need to get around and edit
|
||||||
|
files, so you can get everything up and running. There is a great
|
||||||
|
deal of information in the FreeBSD handbook (which is probably on
|
||||||
|
your hard drive) and <ulink URL="http://www.freebsd.org/">FreeBSD's
|
||||||
|
web site</ulink>. A wide variety of packages and ports are on the
|
||||||
|
<ulink URL="http://www.cdrom.com/">Walnut Creek</ulink> CDROM as well
|
||||||
|
as the web site. The handbook tells you more about how to use them
|
||||||
|
(get the package if it exists, with <command>pkg_add
|
||||||
|
/cdrom/packages/All/<replaceable>packagename</></>,
|
||||||
|
where <replaceable>packagename</replaceable> is the filename of the
|
||||||
|
package). The cdrom has lists of the packages and ports with brief
|
||||||
|
descriptions in <filename>cdrom/packages/index</filename>,
|
||||||
|
<filename>cdrom/packages/index.txt</filename>, and
|
||||||
|
<filename>cdrom/ports/index</filename>, with fuller descriptions in
|
||||||
|
<filename>/cdrom/ports/*/*/pkg/DESCR</filename>, where the
|
||||||
|
<literal>*</literal>s represent subdirectories of kinds of programs
|
||||||
|
and program names respectively.</para>
|
||||||
|
|
||||||
|
<para>If you find the handbook too sophisticated (what with
|
||||||
|
<command>lndir</> and all) on installing ports from the cdrom,
|
||||||
|
here's what usually works:</para>
|
||||||
|
|
||||||
|
<para>Find the port you want, say <command>kermit</>. There will be
|
||||||
|
a directory for it on the cdrom. Copy the subdirectory to
|
||||||
|
<filename>/usr/local</filename> (a good place for software you add
|
||||||
|
that should be available to all users) with:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
This should result in a <filename>/usr/local/kermit</filename>
|
||||||
|
subdirectory that has all the files that the
|
||||||
|
<command>kermit</command> subdirectory on the CDROM has.</para>
|
||||||
|
|
||||||
|
<para>Next, check <filename>/cdrom/ports/distfiles</filename> for a
|
||||||
|
file with a name that indicates it's the port you want. Copy that
|
||||||
|
file to <filename>/usr/ports/distfiles</filename>. (Create
|
||||||
|
<filename>/usr/ports/distfiles</filename> if it doesn't exist using
|
||||||
|
<command>mkdir</>.) In the case of <command>kermit</>, there is no
|
||||||
|
distfile.</para>
|
||||||
|
|
||||||
|
<para>Then <command>cd</> to the subdirectory of
|
||||||
|
<filename>/usr/local/kermit</filename> that has the file
|
||||||
|
<filename>Makefile</>. Type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>make all install</></screen>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>During this process the port will ftp to get any compressed
|
||||||
|
files it needs that it didn't find in
|
||||||
|
<filename>/usr/ports/distfiles</filename>. If you don't have your
|
||||||
|
network running yet and there was no file for the port in
|
||||||
|
<filename>/cdrom/ports/distfiles</filename>, you will have to get
|
||||||
|
the distfile using another machine and copy it to
|
||||||
|
<filename>/usr/ports/distfiles</filename> from a floppy or your dos
|
||||||
|
partition. Read <filename>Makefile</> (with <command>cat</> or
|
||||||
|
<command>more</> or <command>view</>) to find out where to go (the
|
||||||
|
master distribution site) to get the file and what its name is. Its
|
||||||
|
name will be truncated when downloaded to DOS, and after you get it
|
||||||
|
into <filename>/usr/ports/distfiles</filename> you'll have to rename
|
||||||
|
it (with the <command>mv</> command) to its original name so it can
|
||||||
|
be found. (Use binary file transfers!) Then go back to
|
||||||
|
<filename>/usr/local/kermit</filename>, find the directory with
|
||||||
|
<filename>Makefile</>, and type <command>make all install</>.</para>
|
||||||
|
|
||||||
|
<para>The other thing that happens when installing ports or packages
|
||||||
|
is that some other program is needed. If the installation stops with
|
||||||
|
a message <errorname>can't find unzip</errorname> or whatever, you
|
||||||
|
might need to install the package or port for unzip before you
|
||||||
|
continue.</para>
|
||||||
|
|
||||||
|
<para>Once it's installed type <command>rehash</> to make FreeBSD
|
||||||
|
reread the files in the path so it knows what's there. (If you get a
|
||||||
|
lot of <errorname>path not found</> messages when you use
|
||||||
|
<command>whereis</> or which, you might want to make additions to the
|
||||||
|
list of directories in the path statement in
|
||||||
|
<filename>.cshrc</filename> in your home directory. The path
|
||||||
|
statement in Unix does the same kind of work it does in DOS, except
|
||||||
|
the current directory is not (by default) in the path for security
|
||||||
|
reasons; if the command you want is in the directory you're in, you
|
||||||
|
need to type <filename>./</filename> before the command to make it
|
||||||
|
work; no space after the slash.)</para>
|
||||||
|
|
||||||
|
<para>You might want to get the most recent version of Netscape from
|
||||||
|
their <ulink URL="ftp://ftp.netscape.com">ftp site</ulink>. (Netscape
|
||||||
|
requires the X Window System.) The version you want is the
|
||||||
|
<quote>unknown bsd</quote> version. Just use <command>gunzip
|
||||||
|
<replaceable>filename</></> and <command>tar xvf
|
||||||
|
<replaceable>filename</></> on it, move the binary to
|
||||||
|
<filename>/usr/local/bin</filename> or some other place binaries are
|
||||||
|
kept, <command>rehash</>, and then put the following lines in
|
||||||
|
<filename>.cshrc</filename> in each user's home directory or (easier)
|
||||||
|
in <filename>/etc/csh.cshrc</filename>, the system-wide csh start-up
|
||||||
|
file:
|
||||||
|
<informalexample>
|
||||||
|
<programlisting>setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
|
||||||
|
setenv XNLSPATH /usr/X11R6/lib/X11/nls</>
|
||||||
|
</informalexample>
|
||||||
|
This assumes that the file <filename>XKeysymDB</> and the directory
|
||||||
|
<filename>nls</> are in <filename>/usr/X11R6/lib/X11</filename>; if
|
||||||
|
they're not, find them and put them there.</para>
|
||||||
|
|
||||||
|
<para>If you originally got Netscape as a port using the CDROM (or
|
||||||
|
ftp), don't replace <filename>/usr/local/bin/netscape</filename> with
|
||||||
|
the new netscape binary; this is just a shell script that sets up the
|
||||||
|
environmental variables for you. Instead rename the new binary to
|
||||||
|
<filename>netscape.bin</filename> and replace the old binary, which
|
||||||
|
is <filename>/usr/local/lib/netscape/netscape.bin</filename>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Other</title>
|
||||||
|
|
||||||
|
<para>As root, you can dismount the CDROM with <command>/sbin/umount
|
||||||
|
/cdrom</>, take it out of the drive, insert another one, and mount it
|
||||||
|
with <command>/sbin/mount_cd9660 /dev/cd0a /cdrom</> assuming
|
||||||
|
<hardware>cd0a</> is the device name for your CDROM drive.</para>
|
||||||
|
|
||||||
|
<para>Using the live file system—the second of FreeBSD's CDROM
|
||||||
|
disks—is useful if you've got limited space. You might try
|
||||||
|
using <command>emacs</> or playing games from the cdrom. This
|
||||||
|
involves using <command>lndir</>, which gets installed with the X
|
||||||
|
Window System, to tell the program(s) where to find the necessary
|
||||||
|
files, because they're in the <filename>/cdrom</filename> file system
|
||||||
|
instead of in <filename>/usr</filename> and its subdirectories, which
|
||||||
|
is where they're expected to be. Read <command>man lndir</>.</para>
|
||||||
|
|
||||||
|
<para>You can delete a user (say, jack) by using the command
|
||||||
|
<command>vipw</> to bring up the <filename>master.passwd</filename>
|
||||||
|
file (do not use <command>vi</> directly on master.passwd); delete
|
||||||
|
the line for jack and save the file. Then edit
|
||||||
|
<filename>/etc/group</filename>, eliminating jack wherever it
|
||||||
|
appears. Finally, go to <filename>/usr/home</filename> and use
|
||||||
|
<command>rm -R</command> jack (to get rid of user jack's home
|
||||||
|
directory files).</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Comments Welcome</title>
|
||||||
|
|
||||||
|
<para>If you use this guide I'd be interested in knowing where it was
|
||||||
|
unclear and what was left out that you think should be included, and
|
||||||
|
if it was helpful. My thanks to Eugene W. Stark, professor of
|
||||||
|
computer science at SUNY-Stony Brook, and John Fieber for helpful
|
||||||
|
comments.</para>
|
||||||
|
|
||||||
|
<para>Annelise Anderson, <email>andrsn@hoover.stanford.edu</></para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
</book>
|
|
@ -1,5 +1,5 @@
|
||||||
DOC= newuser
|
DOCS= newuser.docb
|
||||||
SRCS= newuser.sgml
|
INDEXLINK= newuser.html
|
||||||
|
|
||||||
.include <bsd.sgml.mk>
|
.include "../../web.mk"
|
||||||
|
|
||||||
|
|
844
en_US.ISO_8859-1/articles/new-users/article.sgml
Normal file
844
en_US.ISO_8859-1/articles/new-users/article.sgml
Normal file
|
@ -0,0 +1,844 @@
|
||||||
|
<!DOCTYPE BOOK PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
|
||||||
|
<book>
|
||||||
|
|
||||||
|
<bookinfo>
|
||||||
|
<bookbiblio>
|
||||||
|
<title>For People New to Both FreeBSD and Unix</title>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Annelise</firstname>
|
||||||
|
<surname>Anderson</surname>
|
||||||
|
<affiliation>
|
||||||
|
<address><email>andrsn@hoover.stanford.edu</email></address>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
<pubdate>June 30, 1996</pubdate>
|
||||||
|
|
||||||
|
<abstract><para>Congratulations on installing FreeBSD! This
|
||||||
|
introduction is for people new to both FreeBSD
|
||||||
|
<emphasis>and</emphasis> Un*x—so it starts with basics. It
|
||||||
|
assumes you're using version 2.0.5 or later of FreeBSD as distributed
|
||||||
|
by Walnut Creek or FreeBSD.ORG, your system (for now) has a single
|
||||||
|
user (you)—and you're probably pretty good with DOS/Windows or
|
||||||
|
OS/2.</para></abstract>
|
||||||
|
|
||||||
|
</bookbiblio>
|
||||||
|
</bookinfo>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Logging in and Getting Out</title>
|
||||||
|
|
||||||
|
<para>Log in (when you see <systemitem
|
||||||
|
class=prompt>login:</systemitem>) as a user you created during
|
||||||
|
installation or as <firstterm>root</firstterm>. (Your FreeBSD
|
||||||
|
installation will already have an account for root; root can go
|
||||||
|
anywhere and do anything, including deleting essential files, so be
|
||||||
|
careful!)</para>
|
||||||
|
|
||||||
|
<para>To log out (and get a new <systemitem class=prompt>login:</systemitem> prompt) type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>exit</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
as often as necessary. Yes, press <keysym>enter</keysym> after
|
||||||
|
commands, and remember that Unix is
|
||||||
|
case-sensitive—<command>exit</command>, not
|
||||||
|
<command>EXIT</command>.</para>
|
||||||
|
|
||||||
|
<para>To shut down the machine type:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/shutdown -h now</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Or to reboot type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/shutdown -r now</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
or
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/reboot</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>You can also reboot with
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>.
|
||||||
|
Give it a little time to do its work. This is equivalent to
|
||||||
|
<command>/sbin/reboot</command> in recent releases of FreeBSD, and is
|
||||||
|
much, much better than hitting the reset button. You don't want to
|
||||||
|
have to reinstall this thing, do you?</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Adding A User with Root Privileges</title>
|
||||||
|
|
||||||
|
<para>If you didn't create any users when you installed the system and
|
||||||
|
are thus logged in as root, you should probably create a user now with
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>adduser</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Don't use the <option>-verbose</option> option; the defaults are what
|
||||||
|
you want. Suppose you create a user <emphasis>jack</emphasis> with
|
||||||
|
full name <emphasis>Jack Benimble</emphasis>. Give jack a password
|
||||||
|
if security (even kids around who might pound on the keyboard) is an
|
||||||
|
issue. When it asks you if you want to invite jack into other
|
||||||
|
groups, type <userinput>wheel</userinput>
|
||||||
|
<informalexample>
|
||||||
|
<screen>Login group is ``jack''. Invite jack into other groups: <userinput>wheel</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
This will make it possible to log in as <emphasis>jack</emphasis> and
|
||||||
|
use the <command>su</command> command to become root. Then you won't
|
||||||
|
get scolded any more for logging in as root, and as root you'll have
|
||||||
|
the same environment as jack (this is good).</para>
|
||||||
|
|
||||||
|
<para>You can quit <command>adduser</command> any time by typing
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo>, and at
|
||||||
|
the end you'll have a chance to approve your new user or simply type
|
||||||
|
<keycap>n</keycap> for no. You might want to create a
|
||||||
|
second new user (jill?) so that when you edit jack's login files,
|
||||||
|
you'll have a hot spare in case something goes wrong.</para>
|
||||||
|
|
||||||
|
<para>Once you've done this, use <command>exit</command>
|
||||||
|
to get back to a login prompt and log in as
|
||||||
|
<emphasis>jack</emphasis>. In general, it's a good idea to do as
|
||||||
|
much work as possible as an ordinary user who doesn't have the
|
||||||
|
power—and risk—of root.</para>
|
||||||
|
|
||||||
|
<para>If you already created a user and you want the user to be able
|
||||||
|
to <command>su</command> to root, you can log in as root
|
||||||
|
and edit the file <filename>/etc/group</filename>, adding jack to the
|
||||||
|
first line (the group wheel). But first you need to practice
|
||||||
|
<command>vi</command>, the text editor.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Looking Around</title>
|
||||||
|
|
||||||
|
<para>Logged in as an ordinary user, look around and try out some
|
||||||
|
commands that will access the sources of help and information within
|
||||||
|
FreeBSD.</para>
|
||||||
|
|
||||||
|
<para>Here are some commands and what they do:
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>id</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you who you are!</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>pwd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Shows you where you are—the current
|
||||||
|
working directory.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in the current directory.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-F</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in the current directory with a
|
||||||
|
<literal>*</literal> after executables, a <literal>/</literal> after
|
||||||
|
directories, and an <literal>@</literal> after symbolic links.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-l</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists the files in long format—size,
|
||||||
|
date, permissions.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls <option>-a</option></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lists hidden (unless you're root) <quote>dot</quote>
|
||||||
|
files with the others.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>cd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Changes directories. <command>cd
|
||||||
|
<parameter>..</parameter></command> backs up one level; note the
|
||||||
|
space after <command>cd</command>. <command>cd
|
||||||
|
<parameter>/usr/local</parameter></command> goes there. <command>cd
|
||||||
|
<parameter>~</parameter></command> goes to the home directory of the
|
||||||
|
person logged in—e.g., <filename>/usr/home/jack</filename>.
|
||||||
|
Try <command>cd <parameter>/cdrom</parameter></command>, and then
|
||||||
|
<command>ls</command>, to find out if your CDROM is mounted and
|
||||||
|
working.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>view <replaceable>filename</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Lets you look at a file (named
|
||||||
|
<replaceable>filename</replaceable> without changing it. Try
|
||||||
|
<command>view <parameter>/etc/fstab</parameter></command>.
|
||||||
|
<command>:q</command> to quit.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>cat <replaceable>filename</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
|
||||||
|
<para>Displays <replaceable>filename</replaceable> on screen. If
|
||||||
|
it's too long and you can see only the end of it, press
|
||||||
|
<keycap>ScrollLock</keycap> and use the <keycap>up-arrow</keycap> to
|
||||||
|
move backward; you can use <keycap>ScrollLock</keycap> with man pages
|
||||||
|
too. Press <keycap>ScrollLock</keycap> again to quit scrolling. You
|
||||||
|
might want to try <command>cat</command> on some of the dot files in
|
||||||
|
your home directory—<command>cat
|
||||||
|
<parameter>.cshrc</parameter></command>, <command>cat
|
||||||
|
<parameter>.login</parameter></command>, <command>cat
|
||||||
|
<parameter>.profile</parameter></command>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
You'll notice aliases in <filename>.cshrc</filename> for some of the
|
||||||
|
<command>ls</command> commands (they're very convenient).
|
||||||
|
You can create other aliases by editing <filename>.cshrc</filename>.
|
||||||
|
You can make these aliases available to all users on the system by
|
||||||
|
putting them in the system-wide csh configuration file,
|
||||||
|
<filename>/etc/csh.cshrc</filename>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Getting Help and Information</title>
|
||||||
|
|
||||||
|
<para>Here are some useful sources of help.
|
||||||
|
<replaceable>Text</replaceable> stands for something of your choice
|
||||||
|
that you type in—usually a command or filename.</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>apropos <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Everything containing string <replaceable>text</replaceable>
|
||||||
|
in the <database>whatis database</database>.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>man <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The man page for <replaceable>text</replaceable>. The major
|
||||||
|
source of documentation for Un*x systems. <command>man
|
||||||
|
<parameter>ls</parameter></command> will tell you all the ways to use
|
||||||
|
the <command>ls</command> command. Press <keycap>Enter</keycap> to
|
||||||
|
move through text,
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>b</keycap></keycombo> to go
|
||||||
|
back a page, <keycombo><keycap>Ctrl</keycap><keycap>f</keycap></keycombo> to
|
||||||
|
go forward, <keycap>q</keycap> or
|
||||||
|
<keycombo><keycap>Ctrl</keycap><keycap>c</keycap></keycombo> to
|
||||||
|
quit.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>which <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you where in the user's path the command
|
||||||
|
<replaceable>text</replaceable> is found.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>locate <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>All the paths where the string <replaceable>text</replaceable>
|
||||||
|
is found.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>whatis <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Tells you what the command <replaceable>text</replaceable>
|
||||||
|
does and its man page.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>whereis <replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Finds the file <replaceable>text</replaceable>, giving its full
|
||||||
|
path.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
<para>You might want to try using <command>whatis</command> on some
|
||||||
|
common useful commands like <command>cat</command>,
|
||||||
|
<command>more</command>, <command>grep</command>,
|
||||||
|
<command>mv</command>, <command>find</command>,
|
||||||
|
<command>tar</command>, <command>chmod</command>,
|
||||||
|
<command>chown</command>, <command>date</command>, and
|
||||||
|
<command>script</command>. <command>more</command> lets you read a
|
||||||
|
page at a time as it does in DOS, e.g., <command>ls -l |
|
||||||
|
more</command> or <command>more
|
||||||
|
<replaceable>filename</replaceable></command>. The
|
||||||
|
<literal>*</literal> works as a wildcard—e.g., <command>ls
|
||||||
|
w*</command> will show you files beginning with
|
||||||
|
<literal>w</literal>.</para>
|
||||||
|
|
||||||
|
<para>Are some of these not working very well? Both
|
||||||
|
<command>locate</command> and <command>whatis</command>
|
||||||
|
depend on a database that's rebuilt weekly. If your machine isn't
|
||||||
|
going to be left on over the weekend (and running FreeBSD), you might
|
||||||
|
want to run the commands for daily, weekly, and monthly maintenance
|
||||||
|
now and then. Run them as root and give each one time to finish
|
||||||
|
before you start the next one, for now.
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/etc/daily</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation>
|
||||||
|
# <userinput>/etc/weekly</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation>
|
||||||
|
# <userinput>/etc/monthly</userinput>
|
||||||
|
<lineannotation>output omitted</lineannotation></screen>
|
||||||
|
</informalexample></para>
|
||||||
|
|
||||||
|
<para>If you get tired waiting, press
|
||||||
|
<keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo> to get
|
||||||
|
another <firstterm>virtual console</firstterm>, and log in again.
|
||||||
|
After all, it's a multi-user, multi-tasking system. Nevertheless
|
||||||
|
these commands will probably flash messages on your screen while
|
||||||
|
they're running; you can type <command>clear</command> at the prompt
|
||||||
|
to clear the screen. Once they've run, you might want to look at
|
||||||
|
<filename>/var/mail/root</filename> and
|
||||||
|
<filename>/var/log/messages</filename>.</para>
|
||||||
|
|
||||||
|
<para>Basically running such commands is part of system
|
||||||
|
administration—and as a single user of a Unix system, you're
|
||||||
|
your own system administrator. Virtually everything you need to be
|
||||||
|
root to do is system administration. Such responsibilities aren't
|
||||||
|
covered very well even in those big fat books on Unix, which seem to
|
||||||
|
devote a lot of space to pulling down menus in windows managers. You
|
||||||
|
might want to get one of the two leading books on systems
|
||||||
|
administration, either Evi Nemeth et.al.'s <citetitle>UNIX System
|
||||||
|
Administration Handbook</citetitle> (Prentice-Hall, 1995, ISBN
|
||||||
|
0-13-15051-7)—the second edition with the red cover; or
|
||||||
|
Æleen Frisch's <citetitle>Essential System
|
||||||
|
Administration</citetitle> (O'Reilly & Associates, 1993, ISBN
|
||||||
|
0-937175-80-3). I used Nemeth.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Editing Text</title>
|
||||||
|
|
||||||
|
<para>To configure your system, you need to edit text files. Most of
|
||||||
|
them will be in the <filename>/etc</filename> directory; and you'll
|
||||||
|
need to <command>su</command> to root to be able to change them. The
|
||||||
|
text editor is <command>vi</command>. Before you edit a file, you
|
||||||
|
should probably back it up. Suppose you want to edit
|
||||||
|
<filename>/etc/sysconfig</filename>. You could just use <command>cd
|
||||||
|
/etc</command> to get to the <filename>/etc</filename> directory and
|
||||||
|
do:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>cp sysconfig sysconfig.orig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
This would copy <filename>sysconfig</filename> to
|
||||||
|
<filename>sysconfig.orig</filename>, and you could later copy
|
||||||
|
<filename>sysconfig.orig</filename> to <emphasis
|
||||||
|
remap=tt>sysconfig</emphasis> to recover the original. But even
|
||||||
|
better would be moving (renaming) and then copying back:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mv sysconfig sysconfig.orig</userinput>
|
||||||
|
# <userinput>cp sysconfig.orig sysconfig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
because the <command>mv</command> command preserves the original date
|
||||||
|
and owner of the file. You can now edit
|
||||||
|
<filename>sysconfig</filename>. If you want the original back, you'd
|
||||||
|
then <userinput>mv sysconfig syconfig.myedit</userinput>
|
||||||
|
(assuming you want to preserve your edited version) and then
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mv sysconfig.orig sysconfig</userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
to put things back the way they were.</para>
|
||||||
|
|
||||||
|
<para>To edit a file, type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>vi <replaceable>filename</replaceable></userinput></screen>
|
||||||
|
</informalexample>
|
||||||
|
Move through the text with the arrow keys. <keycap>Esc</keycap> (the
|
||||||
|
escape key) puts <command>vi</command> in command mode. Here are some
|
||||||
|
commands:
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>x</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>delete letter the cursor is on</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>dd</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>delete the entire line (even if it wraps on the screen)</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>i</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>insert text at the cursor</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>a</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>insert text after the cursor</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
Once you type <command>i</command> or <command>a</command>, you can enter text.
|
||||||
|
<command>Esc</command> puts you back in command mode where you can type
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>:w</command></term>
|
||||||
|
<listitem>
|
||||||
|
<para>to write your changes to disk and continue editing</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>:wq</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to write and quit</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>:q!</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to quit without saving changes</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>/<replaceable>text</replaceable></command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to move the cursor to <replaceable>text</replaceable>;
|
||||||
|
<command>/<keycap>Enter</keycap></command> (the enter key) to find
|
||||||
|
the next instance of <replaceable>text</replaceable>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>G</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to go to the end of the file</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command><replaceable>n</replaceable>G</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to go to line <replaceable>n</replaceable> in
|
||||||
|
the file, where <replaceable>n</replaceable> is a number</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><keycombo><keycap>Ctrl</><keycap>L</></keycombo></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to redraw the screen</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><keycombo><keycap>Ctrl</><keycap>b</></> and <keycombo><keycap>Ctrl</><keycap>f</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>go back
|
||||||
|
and forward a screen, as they
|
||||||
|
do with <command>more</> and <command>view</>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>Practice with <command>vi</> in your home directory by creating
|
||||||
|
a new file with <command>vi <replaceable>filename</></> and adding
|
||||||
|
and deleting text, saving the file, and calling it up again.
|
||||||
|
<command>vi</> delivers some surprises because it's really quite
|
||||||
|
complex, and sometimes you'll inadvertently issue a command that will
|
||||||
|
do something you don't expect. (Some people actually like
|
||||||
|
<command>vi</>—it's more powerful than DOS EDIT—find out
|
||||||
|
about the <command>:r</> command.) Use <keycap>Esc</> one or
|
||||||
|
more times to be sure you're in command mode and proceed from there
|
||||||
|
when it gives you trouble, save often with <command>:w</>, and
|
||||||
|
use <command>:q!</> to get out and start over (from
|
||||||
|
your last <command>:w</>) when you need to.</para>
|
||||||
|
|
||||||
|
<para>Now you can <command>cd</> to <filename>/etc</filename>,
|
||||||
|
<command>su</> to root, use <command>vi</> to edit the file
|
||||||
|
<filename>/etc/group</filename>, and add a user to wheel so the user
|
||||||
|
has root privileges. Just add a comma and the user's login name to
|
||||||
|
the end of the first line in the file, press <keycap>Esc</>, and use
|
||||||
|
<command>:wq</> to write the file to disk and quit. Instantly
|
||||||
|
effective. (You didn't put a space after the comma, did you?)</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Printing Files from DOS</title>
|
||||||
|
|
||||||
|
<para>At this point you probably don't have the printer working, so here's a
|
||||||
|
way to create a file from a man page, move it to a floppy, and then
|
||||||
|
print it from DOS. Suppose you want to read carefully about changing
|
||||||
|
permissions on files (pretty important). You can use the command
|
||||||
|
man chmod to read about it. The command
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>man chmod > chmod.txt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
will send the man page to the <filename>chmod.txt</filename> file
|
||||||
|
instead of showing it on your screen. Now put a dos-formatted
|
||||||
|
diskette in your floppy drive a, <command>su</> to
|
||||||
|
root, and type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/mount -t msdos /dev/fd0 /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
to mount the floppy drive on <filename>/mnt</filename>.</para>
|
||||||
|
|
||||||
|
<para>Now (you no longer need to be root, and you can type
|
||||||
|
<command>exit</> to get back to being user jack) you can go to the
|
||||||
|
directory where you created chmod.txt and copy the file to the floppy
|
||||||
|
with:
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>cp chmod.txt /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and use <command>ls /mnt</command> to get a directory listing of
|
||||||
|
<filename>/mnt</filename>, which should show the file
|
||||||
|
<filename>chmod.txt</filename>.</para>
|
||||||
|
|
||||||
|
<para>You might especially want to make a file from
|
||||||
|
<filename>/sbin/dmesg</filename> by typing
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>/sbin/dmesg > dmesg.txt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and copying <filename>dmesg.txt</filename> to the floppy.
|
||||||
|
<command>/sbin/dmesg</command> is the boot log record, and it's
|
||||||
|
useful to understand it because it shows what FreeBSD found when it
|
||||||
|
booted up. If you ask questions on
|
||||||
|
<email>freebsd-questions@FreeBSD.ORG</> or on a USENET
|
||||||
|
group—like <quote>FreeBSD isn't finding my tape drive, what do
|
||||||
|
I do?</quote>—people will want to know what <command>dmesg</>
|
||||||
|
has to say.</para>
|
||||||
|
|
||||||
|
<para>You can now dismount the floppy drive (as root) to get the disk
|
||||||
|
out with
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>/sbin/umount /mnt</></screen>
|
||||||
|
</informalexample>
|
||||||
|
and reboot to go to DOS. Copy these files to a DOS directory, call
|
||||||
|
them up with DOS EDIT, Windows Notepad, or a word processor, make a
|
||||||
|
minor change so the file has to be saved, and print as you normally
|
||||||
|
would from DOS or Windows. Hope it works! man pages come out best if
|
||||||
|
printed with the dos <command>print</> command. (Copying files from
|
||||||
|
FreeBSD to a mounted dos partition is in some cases still a little
|
||||||
|
risky.)</para>
|
||||||
|
|
||||||
|
<para>Getting the printer printing from FreeBSD involves creating an
|
||||||
|
appropriate entry in <filename>/etc/printcap</filename> and creating
|
||||||
|
a matching spool directory in
|
||||||
|
<filename>/var/spool/output</filename>. If your printer is on
|
||||||
|
<hardware>lpt0</> (what dos calls <hardware>LPT1</>), you may only
|
||||||
|
need to go to <filename>/var/spool/output</filename> and (as root)
|
||||||
|
create the directory <filename>lpd</> by typing:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>mkdir lpd</></screen>
|
||||||
|
</informalexample>
|
||||||
|
Then the printer should respond if it's turned on when the system is
|
||||||
|
booted, and lp or lpr should send a file to the printer. Whether or
|
||||||
|
not the file actually prints depends on configuring it, which is
|
||||||
|
covered in the <ulink
|
||||||
|
URL="http://www.freebsd.org/handbook/handbook.html">FreeBSD
|
||||||
|
handbook.</></para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Other Useful Commands</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry><term><command>df</></term>
|
||||||
|
<listitem>
|
||||||
|
<para>shows file space and mounted systems.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ps aux</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>shows processes running. <command>ps ax</> is a narrower form.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>rm <replaceable>filename</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>remove <replaceable>filename</>.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>rm -R <replaceable>dir</></></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>removes a directory <replaceable>dir</> and all
|
||||||
|
subdirectories—careful!</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>ls -R</command></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>lists files in the current
|
||||||
|
directory and all subdirectories;
|
||||||
|
I used a variant, <command>ls -AFR > where.txt</command>,
|
||||||
|
to get a list of all
|
||||||
|
the files in <filename>/</filename> and (separately)
|
||||||
|
<filename>/usr</filename> before I found better
|
||||||
|
ways to find files.</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>passwd</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>to change user's password (or root's password)</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry><term><command>man hier</></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>man page on the Unix file system</para>
|
||||||
|
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist></para>
|
||||||
|
|
||||||
|
<para>Use <command>find</> to locate filename in <filename>/usr</filename>
|
||||||
|
or any of its subdirectories with
|
||||||
|
<informalexample>
|
||||||
|
<screen>% <userinput>find /usr -name "<replaceable>filename</>"</></screen>
|
||||||
|
</informalexample>
|
||||||
|
You can use <literal>*</literal> as a wildcard in
|
||||||
|
<parameter>"<replaceable>filename</>"</> (which should be in
|
||||||
|
quotes). If you tell find to search in <filename>/</filename>
|
||||||
|
instead of <filename>/usr</filename> it will look for the file(s) on
|
||||||
|
all mounted file systems, including the CDROM and the dos
|
||||||
|
partition.</para>
|
||||||
|
|
||||||
|
<para>An excellent book that explains Unix commands and utilities is
|
||||||
|
Abrahams & Larson, <citetitle>Unix for the Impatient</citetitle>
|
||||||
|
(2nd ed., Addison-Wesley, 1996). There's also a lot of Unix
|
||||||
|
information on the Internet. Try the <ulink
|
||||||
|
URL="http://www.eecs.nwu.edu/unix.html">Unix Reference
|
||||||
|
Desk</ulink>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Next Steps</title>
|
||||||
|
|
||||||
|
<para>You should now have the tools you need to get around and edit
|
||||||
|
files, so you can get everything up and running. There is a great
|
||||||
|
deal of information in the FreeBSD handbook (which is probably on
|
||||||
|
your hard drive) and <ulink URL="http://www.freebsd.org/">FreeBSD's
|
||||||
|
web site</ulink>. A wide variety of packages and ports are on the
|
||||||
|
<ulink URL="http://www.cdrom.com/">Walnut Creek</ulink> CDROM as well
|
||||||
|
as the web site. The handbook tells you more about how to use them
|
||||||
|
(get the package if it exists, with <command>pkg_add
|
||||||
|
/cdrom/packages/All/<replaceable>packagename</></>,
|
||||||
|
where <replaceable>packagename</replaceable> is the filename of the
|
||||||
|
package). The cdrom has lists of the packages and ports with brief
|
||||||
|
descriptions in <filename>cdrom/packages/index</filename>,
|
||||||
|
<filename>cdrom/packages/index.txt</filename>, and
|
||||||
|
<filename>cdrom/ports/index</filename>, with fuller descriptions in
|
||||||
|
<filename>/cdrom/ports/*/*/pkg/DESCR</filename>, where the
|
||||||
|
<literal>*</literal>s represent subdirectories of kinds of programs
|
||||||
|
and program names respectively.</para>
|
||||||
|
|
||||||
|
<para>If you find the handbook too sophisticated (what with
|
||||||
|
<command>lndir</> and all) on installing ports from the cdrom,
|
||||||
|
here's what usually works:</para>
|
||||||
|
|
||||||
|
<para>Find the port you want, say <command>kermit</>. There will be
|
||||||
|
a directory for it on the cdrom. Copy the subdirectory to
|
||||||
|
<filename>/usr/local</filename> (a good place for software you add
|
||||||
|
that should be available to all users) with:
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>cp -R /cdrom/ports/comm/kermit /usr/local</></screen>
|
||||||
|
</informalexample>
|
||||||
|
|
||||||
|
This should result in a <filename>/usr/local/kermit</filename>
|
||||||
|
subdirectory that has all the files that the
|
||||||
|
<command>kermit</command> subdirectory on the CDROM has.</para>
|
||||||
|
|
||||||
|
<para>Next, check <filename>/cdrom/ports/distfiles</filename> for a
|
||||||
|
file with a name that indicates it's the port you want. Copy that
|
||||||
|
file to <filename>/usr/ports/distfiles</filename>. (Create
|
||||||
|
<filename>/usr/ports/distfiles</filename> if it doesn't exist using
|
||||||
|
<command>mkdir</>.) In the case of <command>kermit</>, there is no
|
||||||
|
distfile.</para>
|
||||||
|
|
||||||
|
<para>Then <command>cd</> to the subdirectory of
|
||||||
|
<filename>/usr/local/kermit</filename> that has the file
|
||||||
|
<filename>Makefile</>. Type
|
||||||
|
<informalexample>
|
||||||
|
<screen># <userinput>make all install</></screen>
|
||||||
|
</informalexample>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>During this process the port will ftp to get any compressed
|
||||||
|
files it needs that it didn't find in
|
||||||
|
<filename>/usr/ports/distfiles</filename>. If you don't have your
|
||||||
|
network running yet and there was no file for the port in
|
||||||
|
<filename>/cdrom/ports/distfiles</filename>, you will have to get
|
||||||
|
the distfile using another machine and copy it to
|
||||||
|
<filename>/usr/ports/distfiles</filename> from a floppy or your dos
|
||||||
|
partition. Read <filename>Makefile</> (with <command>cat</> or
|
||||||
|
<command>more</> or <command>view</>) to find out where to go (the
|
||||||
|
master distribution site) to get the file and what its name is. Its
|
||||||
|
name will be truncated when downloaded to DOS, and after you get it
|
||||||
|
into <filename>/usr/ports/distfiles</filename> you'll have to rename
|
||||||
|
it (with the <command>mv</> command) to its original name so it can
|
||||||
|
be found. (Use binary file transfers!) Then go back to
|
||||||
|
<filename>/usr/local/kermit</filename>, find the directory with
|
||||||
|
<filename>Makefile</>, and type <command>make all install</>.</para>
|
||||||
|
|
||||||
|
<para>The other thing that happens when installing ports or packages
|
||||||
|
is that some other program is needed. If the installation stops with
|
||||||
|
a message <errorname>can't find unzip</errorname> or whatever, you
|
||||||
|
might need to install the package or port for unzip before you
|
||||||
|
continue.</para>
|
||||||
|
|
||||||
|
<para>Once it's installed type <command>rehash</> to make FreeBSD
|
||||||
|
reread the files in the path so it knows what's there. (If you get a
|
||||||
|
lot of <errorname>path not found</> messages when you use
|
||||||
|
<command>whereis</> or which, you might want to make additions to the
|
||||||
|
list of directories in the path statement in
|
||||||
|
<filename>.cshrc</filename> in your home directory. The path
|
||||||
|
statement in Unix does the same kind of work it does in DOS, except
|
||||||
|
the current directory is not (by default) in the path for security
|
||||||
|
reasons; if the command you want is in the directory you're in, you
|
||||||
|
need to type <filename>./</filename> before the command to make it
|
||||||
|
work; no space after the slash.)</para>
|
||||||
|
|
||||||
|
<para>You might want to get the most recent version of Netscape from
|
||||||
|
their <ulink URL="ftp://ftp.netscape.com">ftp site</ulink>. (Netscape
|
||||||
|
requires the X Window System.) The version you want is the
|
||||||
|
<quote>unknown bsd</quote> version. Just use <command>gunzip
|
||||||
|
<replaceable>filename</></> and <command>tar xvf
|
||||||
|
<replaceable>filename</></> on it, move the binary to
|
||||||
|
<filename>/usr/local/bin</filename> or some other place binaries are
|
||||||
|
kept, <command>rehash</>, and then put the following lines in
|
||||||
|
<filename>.cshrc</filename> in each user's home directory or (easier)
|
||||||
|
in <filename>/etc/csh.cshrc</filename>, the system-wide csh start-up
|
||||||
|
file:
|
||||||
|
<informalexample>
|
||||||
|
<programlisting>setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
|
||||||
|
setenv XNLSPATH /usr/X11R6/lib/X11/nls</>
|
||||||
|
</informalexample>
|
||||||
|
This assumes that the file <filename>XKeysymDB</> and the directory
|
||||||
|
<filename>nls</> are in <filename>/usr/X11R6/lib/X11</filename>; if
|
||||||
|
they're not, find them and put them there.</para>
|
||||||
|
|
||||||
|
<para>If you originally got Netscape as a port using the CDROM (or
|
||||||
|
ftp), don't replace <filename>/usr/local/bin/netscape</filename> with
|
||||||
|
the new netscape binary; this is just a shell script that sets up the
|
||||||
|
environmental variables for you. Instead rename the new binary to
|
||||||
|
<filename>netscape.bin</filename> and replace the old binary, which
|
||||||
|
is <filename>/usr/local/lib/netscape/netscape.bin</filename>.</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Other</title>
|
||||||
|
|
||||||
|
<para>As root, you can dismount the CDROM with <command>/sbin/umount
|
||||||
|
/cdrom</>, take it out of the drive, insert another one, and mount it
|
||||||
|
with <command>/sbin/mount_cd9660 /dev/cd0a /cdrom</> assuming
|
||||||
|
<hardware>cd0a</> is the device name for your CDROM drive.</para>
|
||||||
|
|
||||||
|
<para>Using the live file system—the second of FreeBSD's CDROM
|
||||||
|
disks—is useful if you've got limited space. You might try
|
||||||
|
using <command>emacs</> or playing games from the cdrom. This
|
||||||
|
involves using <command>lndir</>, which gets installed with the X
|
||||||
|
Window System, to tell the program(s) where to find the necessary
|
||||||
|
files, because they're in the <filename>/cdrom</filename> file system
|
||||||
|
instead of in <filename>/usr</filename> and its subdirectories, which
|
||||||
|
is where they're expected to be. Read <command>man lndir</>.</para>
|
||||||
|
|
||||||
|
<para>You can delete a user (say, jack) by using the command
|
||||||
|
<command>vipw</> to bring up the <filename>master.passwd</filename>
|
||||||
|
file (do not use <command>vi</> directly on master.passwd); delete
|
||||||
|
the line for jack and save the file. Then edit
|
||||||
|
<filename>/etc/group</filename>, eliminating jack wherever it
|
||||||
|
appears. Finally, go to <filename>/usr/home</filename> and use
|
||||||
|
<command>rm -R</command> jack (to get rid of user jack's home
|
||||||
|
directory files).</para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<chapter>
|
||||||
|
<title>Comments Welcome</title>
|
||||||
|
|
||||||
|
<para>If you use this guide I'd be interested in knowing where it was
|
||||||
|
unclear and what was left out that you think should be included, and
|
||||||
|
if it was helpful. My thanks to Eugene W. Stark, professor of
|
||||||
|
computer science at SUNY-Stony Brook, and John Fieber for helpful
|
||||||
|
comments.</para>
|
||||||
|
|
||||||
|
<para>Annelise Anderson, <email>andrsn@hoover.stanford.edu</></para>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
|
</book>
|
|
@ -1,4 +1,5 @@
|
||||||
DOCS= index.sgml
|
DOCS= index.sgml
|
||||||
SUBDIR= disklessx
|
SUBDIR= disklessx newuser
|
||||||
DOCSUBDIR= ddwg devel fonts mh multios newuser ppp
|
DOCSUBDIR= ddwg devel fonts mh multios ppp
|
||||||
|
|
||||||
.include "../web.mk"
|
.include "../web.mk"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [
|
||||||
<!ENTITY base CDATA "..">
|
<!ENTITY base CDATA "..">
|
||||||
<!ENTITY date "$Date: 1997-01-17 15:00:57 $">
|
<!ENTITY date "$Date: 1997-01-18 02:24:07 $">
|
||||||
<!ENTITY title "FreeBSD Tutorials">
|
<!ENTITY title "FreeBSD Tutorials">
|
||||||
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
|
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
|
||||||
]>
|
]>
|
||||||
|
@ -13,9 +13,8 @@
|
||||||
<a href="mailto:freebsd-doc@FreeBSD.ORG">freebsd-doc@FreeBSD.org</a>.</p>
|
<a href="mailto:freebsd-doc@FreeBSD.ORG">freebsd-doc@FreeBSD.org</a>.</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="newuser/newuser.html">For People New to Both FreeBSD <em>and</em> Unix</a>
|
<li><a href="newuser/newuser.html">For People New to Both FreeBSD
|
||||||
(<a href="newuser/newuser.ps">postscript</a>,
|
<em>and</em> Unix</a></li>
|
||||||
<a href="newuser/newuser-html.tar.gz">gzipd tar file</a>)</li>
|
|
||||||
<li><a href="mh/mh.html">An introduction to the MH mail software</a>
|
<li><a href="mh/mh.html">An introduction to the MH mail software</a>
|
||||||
(<a href="mh/mh.ps">postscript</a>,
|
(<a href="mh/mh.ps">postscript</a>,
|
||||||
<a href="mh/mh-html.tar.gz">gzipd tar file</a>)</li>
|
<a href="mh/mh-html.tar.gz">gzipd tar file</a>)</li>
|
||||||
|
|
Loading…
Reference in a new issue