780 124 26MB
English Pages 568 Year 1985
CltNiat PATHOLOGY SERVICE (113A) VA MEDICAL CENTER 4150 CLEMENT STREET
SAN FRANCISCO, CA 94121
,
v,\Cl'|
CUBICAL PATHOLOGY SERVICE (213V VA MEDICAL CENTER 4150 CLEMENT STREET SAN FRANCISCO, CA 94121
RECEIVE"' JUL
1
8 1985
Digitized by the Internet Archive in
2017 with funding from
Kahle/Austin Foundation
https://archive.org/details/unixforpeoplemodOObirn
UNIX A Modular
Guide
for People
to the
UNIX
Operating System:
Visual Editing, Document Preparation,
&
Other Resources
% *
%
i!:
' i'
i
t
*
I
I
^
-
q
UNIX ‘for A Modular
Guide
to the
People
UNIX
Operating System:
Visual Editing, Document Preparation,
Peter Patrick B.
M.
&
Other Resources
Birns
Brown
John C. C. Muster
Prentice-Hall, Inc., *
UNIX
is
a
Englewood
trademark
Cliffs, N.J.
of Bell Laboratories
07632
Library of Congress Cataloging in Publication Data
Bims.
Peter.
UNIX
for people.
Includes index. I.
UNIX (Computer
Patrick
U N
I
B
II.
operating system)
Muster. John C.
III.
I.
Title.
Brown. IV. Title:
X, for people.
OA76.6.B5725 1984 ISBN 0-13-937459-0 ISBN 0-13-937442-6 (pbk.)
UNIX
is
a
84-10678
()01.64'2
trademark of
Bell Laboratories
Editorial / production supervision: Barbara
H. Palumbo
Cover design: Celine Brandes, Photo Plus Art Manufacturing buyer: Anthony Caruso Page layout: Peggy Finnerty, Jill Packard, Toni Sterling Photographers: John C.C. Muster, Patrick B. Brown, Peter M. Birns Typesetting: Patrick B. Brown, Peter M. Birns, John C.C. Muster Illustrations: Kevin Daly and Dana Cuff
©1985 by
Peter
M.
Birns, Patrick B.
No
All rights reserx'ed.
Brown, and John C.C. Muster
part of this publication
may be
reproduced,
stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without
prior written permission of the publishers.
Printed in the United States of
10
9
8
ISBN:
7
6
5
4
3
America
2 ..
1
0-13-'t37MST-D
-13-T37MMB-b IPBK.I Prhntice-Hali. Internahonal. Inc., London
Prentice-Hall oe Austraita Pfy. Limited, Sydney Editora Prentice-Hall do Brasil, Ltda., Rio de Janeiro Prentice-Hall Canada
Inc., Toronto
Prentice- Hall of India Private Limited,
New
Delhi
Prentice-Hall of Japan, Inc., Tokyo Prentice-Hall of Southeast Asia Pie. Ltd., Singapore
Whitehall Books Limited,
Wellington,
New Zealand
D1
Contents
Foreword Preface
Hi
Introductory Modules One
How
Two
Accessing the
Three
Your
Four
Editing Files Using the Visual Editor
Five
Nroff Formatting
Six
File
Seven
Conceptual Overview
105
Eight
Advanced Visual Editor Commands
120
Nine
Advanced Formatting Commands The -ms Macros
142
Ten
A
to
Use This Book
UNIX
1
System
6 21
First File
Management
Stroll
Through
Commands with Shell
Commands
37 61 81
a
Full Production
Number
169
V
Modules Eleven
Twelve
The Line Editor Ex Special Search
177
and Substitution 203
Characters
\J
Thirteen
Truly Advanced Visual Editing
222
Fourteen
Communicating with Others
241
Fifteen
The UNIX Directory Structure
249
Sixteen
Account Management
272
Seventeen
Backgrounding
Eighteen
Parts
Nineteen
Phototypesetting with Troff
Twenty
Macro Construction
Twenty-One
Utility
Twenty-Two
Commands,
Activities
and Wholes
301
&
Troff -ms
Programs
355
and Directories: Paths, Bins, & Yellow Brick Modes Files,
Form
Twenty-Four
Special Formatting Topics:
&
A
Title Page,
Index
Twenty-Seven
404
A
Busboy’s Nightmare The TBL Pre-Processor
Setting Tables:
421
Equalizing Equations:
The EQN Pre-Processor Twenty-Eight
Troubleshooting
Twenty-Nine
Where
VI
392
Bibliographies and Footnotes:
The REFER Program Twenty-Six
366 382
Letters
Table of Contents,
\1
312 327
Twenty-Three
Twenty-Five
289
a Process
to
Now?
445
468 481
Command Summary
Section
Shell
488
Visual Editor
497
Format
.
507
Location of Material within the Book Index
518
Quick Access Chart
527
VII
aHr ‘•S*
€ t
}
i
4
«
t
V
•}
!?
n
Foreword
Why
Does Anyone Need a Book to Help Them Learn to Use UNIX? The UNIX computing environment enhances human pro-
No
ductivity. ity.
ing
other single reason can explain
its
growing popular-
Yet some would — be users have considerable how to use it, and others never learn to
Why
effectively.
is
this
so?
apocrypha nicely captures UNIX have
is
so
The
this
following
tap
power
its
of Bell Laboratories
paradox:
complicated
to teach the
bit
difficulty learn-
engineers
the
secretaries
how
to
use
it!
We
have observed similar activities in our own environments, so even if the quote is not a literal truth (and is a disservice to both secretaries and engineers), it is a useful illustration of the importance of the method by which one learns how to use UNIX, and learns how to use it effectively. The key here is that secretaries, and other people who need to use computers to get their work done, have the luxury of learning experientially — often in a supportive environment full of other users who have learned what they
know
in similar
fashion.
But there are problems with learning to use UNIX experientially. First, in the absence of a book like this, one must have access to the right kind of supportive environment, something difficult to find
outside
certain
institutions.
And
second,
the
experiential
It be self— limiting. is hard to develop, unilaterally, the requisite conceptual models which unlock the real power of the UNIX environment.
learning
Both
tends,
eventually,
experiential
One reason
to
learning and conceptual models are necessary.
analytically
inclined
would-be
engineers) have difficulty getting started ribly inefficient way of discovering the
is
users
(our maligned
that ‘‘analysis'’
skills
is
a ter-
necessary to be an L\
And
much
The problem with too much experiential learning is that, eventually, UNIX users come to the point where they enter a mere line of text and “mountains
effective
user.
move’*!
If
it
it’s
not
fun.
wasn’t the right collection of mountains, or they
didn’t go to the right place, experience rarely provides the explana-
here that an (analytical) model can help a user probe the process UNIX uses to execute his or her command, to reveal the source of the error. Lest the reader be intimidated by this, simple tion.
It’s
diagrams or a repertoire of well chosen examples can provide much of what is needed.
So most would — be UNIX users, especially ones who are learning how to use computers for the first time, need a good book — one that provides sufficient guidance for the experiential learning, and one which also helps consolidate the experience via the timely introduction of conceptual models.
Why UNIX.
This Book? It
This book addresses both barriers to learning provides guidance sufficient to allow computer — naive
users to learn
how
to use
so on their own, and
it
UNIX
experientially,
provides
how UNIX works, models
some of
necessary
for
even
if
they must do
the requisite models of
consolidation
of
the
The user “experiences” laid out fun and efficient. The experiences convey a
experientially acquired material.
by the authors are wealth of material, without seeming burdensome. Similarly, the models of editor— states, of the UNIX command interpreter, and of the hierarchical file system are clear, carefully pictorial, and essen-
They give the reader the confidence to engage moving with reasonable expectations for success.
tial!
in
mountain-
What Can Readers Expect To Be Able To Do Once They Complete It? Users who complete this book will be well on their way computing productivity. As the early focus is on word — processing and document preparation, readers begin getting real work done as soon as possible; and the exposition is sufficiently tool — oriented (again, tools are what one uses to get work done) so that readers will be able to learn to work in other arenas, such as program development and maintenance. The tool — building techniques illustrated are very general and are among the most powerful activities that UNIX facilitates. to
enhancing
their
Ultimately, the real power of
UNIX
methods it enables for getting work done with a computer. These methods are hard to articulate, computer scientists are struggling with them as we X
lies in
the
from examples. One of the strengths of this book is that its authors had to learn these methods, unconsciously, to complete their book. The book was a group effort resulting from the focus of different backgrounds on a single topic — how to teach people how to use UNIX. It has been field tested by students and staff, gone through numerous revisions and might never have been completed had it not been done using UNIX. Thus, the UNIX methodology is implicit in what the authors have done, and their real success is that they have communicated this experience to their readers. write,
but
they
can
be
learned
Mark
S.
Charles Michael
Tuttle
Woodson J.
Clancy
Computer Science Division
— EECS
University of California, Berkeley
March, 1984
XI
Preface
This book
UNIX. It was written over the span of two years, using a UNIX system. We began with the modest intention of providing our friends with some introductory, English language materials on how to text process with UNIX. It is a comment about the ability of the system to foster evolving group projects that our five page introduction grew into this book. One of Another modified and us wrote a few pages explaining how to. expanded the ideas. More was written, revised, combined, thrown out, synthesized, and rewritten— with the entire process taking place in one set of files in one UNIX account. is
a creature of
.
Our
desire
minimum
is
that
the
reader
of frustration learn
quickly,
how
to
.
efficiently,
and with
do what took us
a
collectively
over 10 years to discover concerning how to use UNIX. An understanding of the information presented here would allow you to create a product matching the detail and complexity of this book.
UNIX
is
a seductive beast.
We
several times, only to discover
mand, or had
a different
thought we had the text finished
some
way of looking
additional ideas, a at
new com-
the whole thing that just
be included. Because revisions are so easily accomplished with UNIX, we made the changes. to
What was
an introductory book on text processing and the visual editor (perhaps 200 pages at most) has grown into a more complete introduction to the entire UNIX Operating System. The expansion of our task was due largely to the feedback we received from students using drafts of the text in workshops and classes. Each group of students identified aspects of the system they wanted to know more about.
XU
originally intended as
We
computer
are not
educators.
We
scientists.
We
like
to
consider ourselves
selected and ordered the topics, wrote explanations,
and created conceptual maps with the goal of providing educationally sound, accessible material. Our objective was to remain truthful about how the system works and to present this information in an educationally effective way.
Three people— our respective partners — have made enormous con-
We
profoundly Without their support we could not have completed tributions
to
this
project.
are
in
this
their
debt.
book.
thousands who used this book in its various unpublished stages and gave us a chance to explore firsthand which parts of our efforts were effective and which needed additional work. Finally,
we
offer a sincere thanks to the cast of
Peter Patrick B.
M. Birns
Brown
John C. C. Muster University of California
Berkeley
'
V
# caog
Module One
How
to
wr
Use This Book
Introduction The UNIX operating system provides an effective and efficient way to compose papers, write computer programs, enter data, and maintain records. UNIX is a powerful system: there is virtually no what can be accomplished using and programs. Because it can do so much limit to
Due
its it
variety of is
commands
rather complicated.
complexity people have often found learning to use UNIX a frustrating and at times overwhelming experience. As a direct result of interacting with people as they learned UNIX and text processing we developed this modular, self-paced, ""low-jargon''' to
its
handbook.
Prerequisites None. It is assumed that the reader has no knowledge of computers, UNIX, or text processing.
Objectives The
objective of this
Module
is
to introduce
conventions and the modular format used effectively learn UNIX and text processing.
you
in this
to the essential
book so you can
1
The (a)
(b)
objectives of this
book
are the following:
Completion of Modules One through Ten will allow you to use the visual editor to prepare most research papers or reports and to enter and edit computer programs; Mastery of the individual Modules Eleven to Twenty-Nine will allow you to complete more advanced specific tasks, such as use special characters for searches and substitutions, send electronic messages to other UNIX users, create and easily
move among
several levels of directories, generate typeset
documents, access the UNIX preformatters which exist to help with bibliographies, equations, and tables, and write your own formatting commands (macros); and (c)
Completion prepare you
Modules One through Twenty-Nine will format a document or written project similar in
of to
complexity to
this
book.
Procedure (1)
Establishing an Account:
Make arrangements through your
super-
department, or system administrator for a UNIX account. Depending upon your location, you will need to obtain two or three pieces of information about your account:
visor,
(a)
you are located in a large organization in which there is a “network” of UNIX machines, you will be assigned to one of them and given a system name. You will need to know the name of the machine you are assigned. This information consists of a system name^ letter, or number,
(b)
Your account
(c)
Your account password.
If
login name',
and
Be certain you obtain the appropriate information about your account. Without this information you will not be able to gain access to UNIX.
(2)
2
How
People Learn:
has been our experience teaching courses and workshops in text processing that people: It
(a)
Learn
(b)
Learn best when they can about it;
Using
this
at different
Book
speeds; try
out each process as they read
(c)
Grasp ideas better
in
(d)
Remember more
effectively
self-contained units; if
they practice
commands and
procedures; (e)
Master complicated material most a “step by step” way; and
(f)
Better retain information
easily
when given
when
led
through
in
opportunities to review
recently learned material in self-diagnostic “quizzes.”
(3)
Using These Modules: Although we are firm believers in the educational value of getting lost and finding your way back home, UNIX can be a very unfriendly universe for someone who is off the path and unfamiliar with the rules. We suggest you allow us to hold your hand and lead you step by step through the basic procedures of the first ten Modules. Hundreds of people learning UNIX guided our design and revisions of the modular sequence and content of this book. You will find learning UNIX least frustrating if you study each section in order. Don’t skim over paragraphs, and be sure to try each procedure at least once. Avoid the pressure to hurry— relax and master each part. (a)
Each Module
(b)
Following the Introduction is a list of Prerequisites. you satisfy each prerequisite before proceeding.
(c)
The do
(d)
starts with a brief Introduction to set the stage.
you know what you completing each Module.
Objectives section lets
after
The Procedure
section
is
a
step by step
list
will
Make
sure
be able to
of actions you
should take and explanations you should read. (e)
Exercises,
reviews and self-check questions are an integral
part of the procedures.
Taking the time
them
ability to
will
improve your
you may surprise yourself with (f)
(g)
to
perform or answer
remember the material (and what you know how to do).
You
will
The
following conventions are used throughout this book.
be asked to type in text as you proceed through the book. Don’t begin learning text processing with a paper or other written material that is important to you! Practice with something you can afford to lose.
All
UNIX commands
are in boldface type.
When you
Using
this
are to
Book
3
supply information to a command sequence (such as your own password) the requested word\ will be put inside a box |
(h)
\
Be patient with yourself. There it
can be frustrating, but
it
is
a lot to learn
can be mastered.
about UNIX —
You
are better
few extra moments reviewing each section than rushing through the process. off taking a
(i)
(This
“types” in the crowd.) This book was written to be used with Bell Lab’s UNIX Version 7 with Berkeley enhancements (BSD UNIX). This material should be of use for instruction about any UNIX system that supports is
for the technical
the visual editor “vi.” currently available
— in
Due
many versions of UNIX to the many local variations in be some slight differences the
to
addition
implementation — there may between the procedures you should use and those presented in this book. These variations will be most pronounced when getting started or accessing the
UNIX system.
If so,
ask for
help getting “logged in.” (j)
We
have made every effort to insure that all suggestions are appropriate and command sequences correct. We have been through several drafts of these materials— and thousands of students have worked with many of the Modules — to eliminate errors and problems. Please be aware, however, that the sophistication and complexity of the UNIX Operating
System— coupled
—
with the various versions in use make the task of completely “bomb proofing” your experience essentially impossible. Before attempting to use a new procedure with your version of the Great American Novel or Nobel Prize-winning report you should first experiment with a prac-
Only then can you feel comfortable that the command or procedure will do what you want it to do. tice
(4)
file.
might be helpful (but is not necessary) to identify an experienced UNIX user (most college campuses have paid computer conIt
sultants, while in a business or office setting there will be familiar with the local UNIX system). Inform this
someone
individual of
your intention which logging
Two
4
to learn
UNIX with the help of
steps outlined in the are appropriate for your location.
Using
this
in
Book
first
book, and ask few pages of Module this
(5)
Modules One through Ten comprise the foundational core of the book and should be studied in the order presented. Each builds upon skills mastered in prior Modules. Modules Eleven to Twenty-Nine can be taken in any order, as long as all prerequisites are satisfied.
(6)
Proceed to Module
Two and
enjoy the learning process.
R,kett,
hungry
dtcides to
mr jmmortcdii/, ujrite his
autohiogruphy on the ^^processor.
Using
this
Book
5
Module Two Accessing the
UNIX System
Introduction In this
work
Module you
will
learn
how
to access
(logon) and finish
on your UNIX account. Four commands the kind of resources available on UNIX.
(logout)
to illustrate
will
be used
Prerequisites
You need through
to
have
a
UNIX account. An account can be established
contacting
administrator.
your
supervisor,
Depending upon your
department,
or
system
you will receive one, two, or three pieces of information about your account. If you are in a large organization in which there are several UNIX systems you will be assigned to one of them and given (a) a system name. At all locations you will be given (b) a login, a short name that the computer and you will use to identify your work. Most locations will also provide you with (c) a secret code password, which is used to protect access to your account. Before beginning this Module enter this information
in pencil in
(a)
My
system
(b)
My
login
(c)
My
password
Accessing the System
is:
_
is:
is:
location
the spaces provided here:
Although your login name will be available to anyone interested, your password should remain secret so that only you can access your account. Your password is like your instant cash bank card “secret” code number which is known only to you and the bank.
Objectives
# coos
After completing this
Module you should be
able to: tnr
(1)
Identify yourself to
UNIX and inform
it
you are beginning
work (logon); (2)
Inform UNIX you are quitting work (logout); and
(3)
Make
use of the UNIX of
commands
who
(a)
Present a
(b)
Give today’s date and time;
(c)
Provide a
(d)
Change
list
list
is
which:
currently logged in;
of correctly spelled words; and
the password to your account.
Procedure Module Two contains four sections. First you will learn how to logon and logout of your UNIX account. In the second section the Conceptual
Four basic
Map of the logging on and out process is discussed. commands will be used in the third section to illustrate The
the kind of resources available in UNIX.
final section consists
of a review of the material presented in this Module.
Logging onto UNIX: Gaining Access
to the
System
Many
people have found that logging onto UNIX for the first time can be a very frustrating experience. If you have not already done so, it might be useful to identify an experienced UNIX user in your
and ask which parts of the logging in procedures outthis Module are appropriate for your location.
institution
lined in
Accessing the System
1
may
Additionally, you
number of each (1)
activity
START, Turning (a)
this
find
helpful to put a check next to the
it
once you’ve completed
the Terminal
it.
ON:
Turn on the power to the terminal. On many terminals switch is located on the back, lower right. The terminal
may answer
with a beep.
Wait a few seconds.
(b)
Find the brightness dial— usually located either just above the top right of the keyboard or on the back, lower right near the power switch. Adjust the brightness of the screen to a comfortable level.
(c)
you are were given If
in a location
with several UNIX systems (and you
system name) you might have a small box with a switch or button attached to your terminal. a
your terminal has such a switch or button, push without a button, skip this Step and proceed. If
is
If you
make an
it
— if
it
any point in the logging in procedure you should turn the power to your terminal off and then back on and begin again.
(2)
error at
Locate Map A at the end of this Module. Two copies are included in this text. We suggest you remove one copy to place next to your terminal for easy reference as you proceed through this material.
We
will refer
to
Map A
throughout the next few
pages.
The
in— as pictured Mode. Once you are
objective of logging
box labeled Shell mands to perform such and print material.
in
to get to the
you can enter comtext, look up spellings,
there,
activities as edit
In the process of getting to the Shell
Map A — is
you may be stopped and
asked for from one to four different pieces of information, depending on how your system is organized. You may be asked only for your login (account name), or you may be asked for login, password, system name and even for the name of the type of terminal you are using.
Map A
is
a sketch of the trip
arrival in the Shell.
8
Accessing the System
from turning the terminal on
Consider yourself to be
at
to
the beginning of
Map A down
at
the
the place labeled Start.
path toward the Shell.
Now
imagine yourself traveling Map A we have indicated
On
between turning the terminal on and the Shell. If your system needs information corresponding to one of the stations, you are stopped at that station and asked for the appropriate information. Once you type in the needed information you are allowed to go on.- If information at a station is not needed, you are not stopped but passed on to the next station.
the four stations that
(3)
lie
System Name: If the word Request: appears on the The printing of screen, you have been stopped at Station 1. that you indicates Request: Station
1,
have the machine’s attention and it needs to be told your or letter, name, system number.
Type the number, or
name
UNIX
(lower case)
you
of the
were entered by
you
system
assigned [Item
letter,
(a)
in the Prerequisites section
above].
Press
the
RETURN
key.
your system name does not appear on the screen as you type it, you should push the button or turn the power to the terminal off and back on. Once Request: reappears, re-type your system name. You must enter the letter (s) of your assigned system within 15 If
seconds of the appearance of the word Request: or else the computer will not attend to your response.
Feeling
Depressed?
If
the
machine
upper case characters check that the not
locked
depressed
on.
Make
(perhaps
certain
administer
presenting
ALPHALOCK
that .5
is
mg
this
key
all
key is
of lithium)
is
not
by
ALPHALOCK
key to release it. Next re-start the logging in sequence by pressing the button or turning the power to your terminal off and back on. pressing the
Accessing the System
9
(4)
Station
Login Name: The
2,
printing of login: indicates that
you have been stopped at Station 2, and the machine is ready to receive your login name.
Type [Item
(5)
(b)
your in
login
name
Prerequisites.]
certain
to
use
letters
or
numbers,
spaces.
Press the
all
lower
case
with
RETURN
Be no
key.
Station 3, Secret Password: If the word Password: appears on the screen, you have been stopped at Station 4. You will not be allowed to go any further without entering the password that is associated with your account.
Enter
your
password (again, leave no spaces), and press
RETURN.
As you
type your password
it
on the screen, so that no one else can see what it is. It is, however, being registered by the computer. (A few seconds will will
not appear
now
pass.)
Error in Logging On:
your login or password was entered incorrectly the terminal says login incorrect and repeats the word login:. You must then re-enter both the login and password. Be very careful to enter both exactly as provided you. Remember to use all lower case letters or numbers with no spaces, and to press
RETURN
If either
after entering each.
(Note that if you make a mistake entering the password., you will be told login incorrect and you must properly enter both the login and password.) both the login and password were correctly typed and match with the computer s list of accounts, you are permitted to continue If
down
the path.
the screen
10
may
Depending on how your or
may
Accessing the System
not begin
filling
local
system
is
managed,
with dated news items.
1
(6)
Station 4, Terminal Type: If your terminal displays the words TERM = Terminal Type?\ you have been stopped at Station 4.
UNIX must be informed what type of terminal you are using. This will allow UNIX and your terminal to communicate without any misunderstandings. (Pardon my dialect, but I’m from the Bronx.) In the
most straightforward case UNIX will be informed automatically about what type of terminal you are using, and you will pass by this Station.
you are stopped at Station 4, your screen will probably display line that looks something like one of the following: If
TERM =
a
(tvi925)
or:
TERM = The
(z29):
parentheses are an abbreviation for the most comterminal at your location (e.g., tvi925 for Televideo 925 or
letters in
mon
You
need to determine whether you are using the type of terminal mentioned in the above line (inspect the terminal for a nameplate and/or ask someone near you).
z29 for Zenith 29.
If
the terminal
RETURN If
is
will
of the displayed type you need only press the
key.
the terminal
is
a different type,
determine the appropriate
abbreviation and carefully enter it then press knows what type of terminal you are using.
(7)
RETURN. UNIX now
you entered a terminal type that UNIX recognized, a Shell Prompt % appears on the screen (this should take a few seconds). Note: Alternate versions of UNIX use different characters ( %, $, or #) Whenever we display a Shell prompt in this
The Shell Mode:
book we
will
If
use the
%
Prompt, you have made
sign. it
When
the terminal displays the Shell
to the Shell.
Accessing the System
1
(8)
Logging Out: The appearance of the prompt means you have completed the login procedure and the computer is waiting for your next instructions.
You now know how
to log
munication with UNIX)
is
onto UNIX.
much
Logging out (ending com-
simpler.
Logout of UNIX by typing the command logout
and press RETURN. This command tells UNIX you are finished working on your account and want to terminate this session.
you were successful, one of several things probably occurred. Either the screen went blank or the screen displayed a written mes-
If
sage like ‘‘logout complete.”
you are not logged out and the terminal displays the words Command not found you probably mistyped the word logout. Retype the command logout and press the RETURN key. If
Conceptual
Map
As an aid to your understanding of how the UNIX system operates, we will be introducing a series of “Conceptual Maps.” Each Map present those segments and paths of the system with which you are working. You have been using Map A to logon to the system. will visually
(1)
Map later
Symbols: To utilize the rest of Map A and the other Maps in Modules, you need to know what the various symbols mean:
(a)
The boxes and
“locations” in UNIX and contain both a descriptive label for the part of the UNIX system being accessed and the function performed by that part of the system.
(b)
The arrows
circles are
reflect
commands used
to
used
when you
move from one
place to
another. (c)
12
The symbol
®
is
Accessing the System
to indicate
are to press the
RETURN
key (right-middle of most keyboards).
tion will be used throughout this
RETURN
Now
book
The
®
nota-
to indicate Press the
key.
you have logged out, log back in following your path on the Conceptual Map. Notice how the information you type (system, login, password) moves you from one location (Station) that
to the next.
logged on, logout. Repeat the logging in and logging out procedure until you feel comfortable with both processes.
Once
fully
Logout of your UNIX account and continue reading Module.
Do
not forget
to
logout
whenever you
UNIX session — if you neglect
this
are finished with a
your account will continue to accrue the hourly connection charge. In addition, some unscrupulous, dastardly, or generally ornery critter may discover your oversight and proceed to first use your account to perform his/her own UNIX tasks, then delete all your files and send nasty notes to your friends, thereby causing you untold grief and probably leaving you freight train
first
In
summary: be
little if
to logout,
choice but to leave town on the
you are even remotely honorable.
certain
you logout
after
each UNIX ses-
sion.
Four Shell Commands The appearance of the Shell Prompt % indicates “Shell Mode,” the main command center of (Find the box marked Shell on Map A.) Being that
you can issue
programmed
to
you are in the the UNIX system.
that
in
the Shell
means
a specific set of
commands which
The commands.
following procedure steps intro-
respond
duce four of these
to.
the machine
is
Each of these four resources can be accessed only from the Shell
Mode Mode
is
%
#
This is because the Shell programmed to perform a specific function in response to
(with the
or $ or
prompt).
Accessing the System
13
your entering each of these commands. The appropriate command is typed in and then the RETURN key is pressed. Until you press the the machine does not process what you have typed. Rather, it
®
®
you to indicate that you are finished typing instructions (which you do by pressing the RETURN key). Within quietly waiting for
sits
the Shell
Mode,
®
pressing the
key
is
interpreted to
mean “pro-
cess this line.”
(1)
Follow the Conceptual Map and log onto your account. If necessary, review the steps indicated in the prior section. Once you are logged in, and the Shell prompt is displayed, proceed to the next step. Note:
if
note “Command Try it again.
(2)
Who
one of the next commands you receive the not found” you probably mistyped the command.
after entering
on the System?
is
You
can request of UNIX a (what logins) are currently logged onto the system.
To
access this
command from
A
® as
of
who
the Shell type:
who Remember:
list
®
used above means press
the
RETURN
key.
of current users allows you to see if any of your friends are on the system and what terminal locations they are using. This list
prove useful once you learn how to communicate with them via UNIX. Notice that your login is included among the will later
several that are presented.
Two-Way Commands: Find the Shell on Map A. Locate command just used. Note that it is attached to an arrow
the
who
that has
heads on both ends (a two-way arrow). A two-way arrow with a command next to it indicates that by typing in the command you cause the computer to execute that command and then automatireturn you to the original mode. For instance, the command who is given from the Shell and will access the who system file. After performing its function (listing the logins of everyone logged onto the system) it will return you to the Shell Mode (your originating mode). cally
14
Accessing the System
(3)
What Time
Should you awake one day, forget to strap on your $7900 Rolex day-date wristwatch, log onto your UNIX account, and desire to know the current time and date, UNIX can Is It?
provide this information.
To determine
today’s date and time type:
date
(4)
How Do You
Spell
As
example
®
UNIX maintains an on-line spelling dictionary with a word volume somewhere between Webster’s elementary school version and the New Oxford Dictionary.
how ary
an
When
the
.
?
of
the
following.
prompt
Shell
appears type:
®
look egg
A
list
of
eggplant,
egghead,
egg,
most cases
In
word you might
the
know how
contained (the
be
will
etc.
displayed.
to
.
to access this dictiontry
%
.
to
the
in
like
spell
is
display
UNIX dictionary does
not contain definitions to
words, only the spellings).
You
enter the
first
few
of a word and UNIX displays
letters
all
the
words contained in its dictionary which begin with these first few Another example probably best explains how this works. letters.
The command
®
look psych
whole
ogy’.
produce Try this
that
amuses you.
will
The words porarily
a
command
will
halt
at a
rapid rate.
presentation
and psycholfew letters of a word
like psychologist,
again, using the
parade by
the
words
flock of
first
If
of words
you would press
temthe CTRL-S key like to
Accessing the System
15
down
marked CTRL and press the s key one time). Scrolling resumes when you press the SPACEBAR. (hold
(5)
the
key
Password: We have noted the importance of a password your keeping
My
Change
secret.
One
solution
is
to
never write it down. The only problem with not having it written
down anywhere
is
that
can be forgotten, especially
it
account
is
a
if
the password assigned to your
nonsense collection of random
letters.
one was not provided you, create one) to a “word” that does hold meaning to you. Your new password must be between five (5) and eight (8) characters in length, and should contain at least one letter and one number. Be careful to select a password that is not obvious: computer theft occurs with disturbing frequency. An obvious password provides no protection from any account snoopers who may inhabit your system. For instance, your birth date or the name of a spouse may not be good choices. A better choice would be some combination of several meaningful words {ml8ml8 if you like rabbits, or lOsnel if tennis is your hobby).
You
can easily change your password
To change your password
(or, if
type (from the Shell):
passwd After typing the passwd (a)
To supply your
(b)
To
type a
(c)
To
repeat your
command UNIX
® will
ask you:
old password;
new password; and
new password.
Be sure to remember the new password, as it will be your UNIX password from now until the next time you change it.
16
Accessing the System
A Note on Making It
is
easy to
make
Corrections
corrections within a single line because the Shell
does not process the line until you press the RETURN key. If you make an error in a line you may back up one or more characters by using the CONTROL-H key. Hold down the CTRL key and press the h key one time for every space you want to back up. If your terminal has a BACKSPACE key it may be used to accomplish the same thing. The characters can then be retyped.
Once you
press
RETURN
the line
is
“processed.’’
®
dote (typed incorrectly), then backspace
and
retype the correct Shell If
you experience
a
not
UNIX will then press found” and display another Shell prompt. Type the “word”
you mistype
“Command
command and
(1)
If
command
difficulty
reply
date.
using the
CTRL-H
or
BACKSPACE keys
does not backspace or the terminal beeps whenever you press these keys) you probably made an error when informing UNIX of the type of terminal you are using. Please see the section of Module Twenty-Eight: Trouble Shooting entitled Specifying Your Terminal Type. (perhaps
the
cursor
The Finale Without referring to prior sections of form the following actions:
this
Module
(a)
Logout of your account and turn the terminal
(b)
Log back onto your account.
(c)
Ask UNIX
Map
per-
off.
words
starting with the
Logout of your account and turn the power
to the terminal
to look
following letters: (d)
or the
up the spelling of
all
electr
off.
Accessing the System
17
When you
can perform the above actions without referring to sec-
tions of this
Module you have mastered
UNIX account. You files,
are
now
the ability to access your
ready to learn
which just conveniently happens
to
how
to create
your
be the content of Module
Three.
A PDP
18
11-70;
UNIX was
Accessing the System
own
originally designed to
run on
this
machine.
A
second copy of this
map
is
located at the end of the book.
Accessing the System
19
kJ-«
Module Three
Your
First File CDO
wr
3
•
Introduction In this
Module you
“file.”
A file
be using two important components of the UNIX system — the Shell and the Visual Text Editor vi—io create a is
will
the term used for a collection of characters that
stored together, such as the words in a letter or a paper, a
program, or a listing of data. together so you and UNIX can puter
work on
The
file
is
comkept
it.
generating process
often confusing at ing.
This information
is
Take
heart:
first
You
is
meet-
are not
Shell
know all about the and vi when you finish
this
Module.
expected to
Rather,
it
is
intended that you will gain experience you can build on in later Modules to understand the UNIX system.
Prerequisites His
You need
know how
first file.
your account (logon) and terminate work on the account (logout). If you are not sure how to accomplish these procedures, review Module Two. to
to access
21
Objectives Upon completion
Module you should be
of this
(1)
Create a
(2)
Append
(3)
Escape from Text Append Mode;
(4)
Quit working on a file, save the changes return to the Shell;
(5)
Display a
(6)
Have
file
for visual editing;
text to the
list
of
file;
all files
copy of your
a
able to:
in
file
made
in
the
file,
and
your account; and
sent to the printer.
Procedure The Procedure
Module
section of this
is
two
in
parts.
The
first
you through the process of creating and appending text to a file. The second section introduces the Shell commands to list the filenames in your account and to print a file. A brief self-quiz and a comprehensive command summary are placed at the end of this Module. A second Conceptual Map is included to help you chart your course through the paths of UNIX. section leads
Creating a
Appending
File,
Returning
Locate
(1)
Map B
again been included.
at
Text,
to the Shell
the end of this
Module— two
You should remove one and
your terminal to review as you complete your
Logon
(2)
learned in
to
it
22
is
First File
place
it
next to
activities.
logged on you are in the Shell prompt). Find this Mode on Map B; fully
(which usually has a % your home base in the UNIX
Your
copies have
your UNIX account following the procedure you
Module Two. Once
Mode
and
game of Hide and
Seek.
(3)
Starting Your First File: There are two steps to beginning your first file:
From
(a)
the Shell enter the following two words (which
must be
separated by a space): vi first space
I
Press the
(b)
RETURN
key.
Once you have entered the command sequence the
RETURN
key the screen
bottom of the screen saying “first"
New file.
Tildes
(~)
will clear
and a note
either “first'' will
vi first
No
will
and pressed
appear
the
at
such file or directory or
parade in a column
down
the
left,
Line numbers may also appear along the left border of the screen. This translates as: “OK, you’ve called for the file with the name./zrsr. It did not exist but is now being created and, at this moment, con-
and the cursor
tains
will
appear
at
left
of the screen.
no text.” you have
Let’s take a look at what
sequence (a)
the top
vi
vi first
means
is
that
in
two
just done.
The command
parts:
you wish
to
employ the UNIX y\sual
text editor,
and (b)
first is
the nanie of the
to be
worked on.
word you choose, within some limibe discussed later. (We are suggesting you title
The filename can be any tations that will
file
single
this hit first because, curiously,
it
is
your
® command
first file.)
on Map
The filename is in a box to indicate that you can substitute the name of whatever file In this instance, you have named this file you want for [filename} first. Recall also that ® included at the end of a command means Locate the vi
[filename}
B.
.
press the
RETURN
key after you enter the
command
sequence.
From Map B note that the command sequence vi moves you from the Shell to the vi Command Mode.
(4)
filename
®
Appending Text: “How can I add text to this file?” you ask. Although there are several ways to add text, we’d like to initially introduce one of the most useful commands. Your
First File
23
You
are in the Visual Editor
you want
tor that
not press the
Command Mode. To
to enter text, press this
RETURN
inform the edikey a single time (and do
key):
a
What happened? Nothing. How come this a didn’t appear on the screen? Because in the Command Mode, pressing the a key tells you want
add or append text to the file. After pressing the a key the visual editor will add anything you type to the file and at the same time display it on the screen. You are now in what is called Append Mode, because everything you type will be entered as text. vi
that
to
Type the following sentence:
(5)
/ anticipate a long
(6)
and harmonious
relationship with
UNIX.
Typing Suggestions:
PLEASE more
read this
we’d
typing, as
BEFORE
you begin any
like to
offer a couple of very important hints.
Short lines are most easily
worked with when using UNIX. You should press the RETURN key after each main idea or 5-8 words, and always after the end of each sentence. (Just like these lines.)
make
will
It
Your
editing
a
easier.
text should look like this section:
short lines, with
on
much
new
all
sentences starting
line.
After your text
is
formatted
(Module Five), the short lines will be joined together
form
uniform length. (Like the remainder of this text.)
to
lines of
Now
type the 16 short lines of text contained in Procedure Step 6 above. This is for practice, so don’t worry about mistakes.
24
Your
First File
Leave the typing errors alone— in a later Module you’ll learn how Just blast in the text. Don't bother with to easily correct them. corrections— ]\xsi type a line, press press
®
.
.
.
of text began
You
gin.
at
the
all
lines
left
mar-
of formatting will
that
specific
commands which
meet
in
Module
Five.
time you
will
insert
commands
to
indent
paragraphs, double space, and center
Whenever you
lines.
CSh^t
in
another
line,
text
you
should
not
attempt to format the material yourself— let UNIX do it for
lines are
most
easily
worked with when using UNIX.
You should after
press the
RETURN
keyj
each main idea
or 5-8 words, and
always after the end of each sentence. (Just like these tines.) It
enter
then type
did not indent para-
graphs or try to center lines or double space while typing in the text. UNIX possesses a set
you At
,
.
Note how
Finished?
®
will
Your
make
editing
much
easier.
text should look like this
section;
you.
(8)
Leaving the Append Mode: At this point you should now have 15 to 20 lines of text displayed on the screen before you. How do you now tell UNIX that you are finished adding text and want to do something else? Try typing these words: stop, finish,
getmeoutojhere, and pleaseletgoofmeiwantoutofthisthing
None of these words will move you out of the Append Mode (which you entered when you pressed the a key). You are finished, but everything you type continues to be What entered into the file.
you must do
is
tell
stop, finish, getmeoutofhere,
pleaseletgoofmeiwantoutofthisthing
the visual
move you out Append Mode and back to
editor editor to
of
Command Mode.
Your
First File
25
(9)
that
Look at Map B. What is the command written on the arrow moves you from Append Mode back to vi Command Mode?
THE WAY OUT OF APPEND MODE IS THROUGH PRESSING THE ESCAPE\y^ KEY your best vi friend — find it on the keyboard (usually near the top on the left), introduce yourself, and then gently, lovingly press it. Anything happen? Nothing appeared to happen, but you are now out of Append Mode and back in the Command
The
key
|ESC|
is
Mode. To be sounds,
certain, press the
[Em
key
a
second time.
If a
beep
simply telling you that you are already in Command Mode. Let us stress this point. In your trials and tribulations experienced while learning to use the visual editor you may find yourself a bit lost. While in the midst of entering text into a file VI
is
you may not be sure whether you are Mode. The ESCAPE key
When Mode
in
Mode
the
is
in
Command
or
Append
your path out of this confusion.
doubt about whether you are in vi Command or Append press the |ESC| key. Within the Append Mode the [esc key means. Move me into Command Mode.” Within the Command
ESC key means, ^Please beep.” When using the visual editor pressing the |esc| key will always leave you in Command Mode. You can decide from that point what it is you want to do. Trace the action you just now completed on Map B. Notice that the ESCAPE [ESC! key moved you out of Append Mode and back to Command Mode. Please review the information presented above. Knowing when to use the |£SC| key is the single most critical factor leading to successful editing with the visual editor.
(
10 )
__ Did
To it
insure you are in the Command Mode, press the lEsc] key. beep at you? The beep translates as, ”But Captain, you are
already in
From
Command Mode.” the
Command Mode
type this word:
duty 26
Your First File
What happened? The times, in fact.
(If
it
terminal should have beeped at you; several did not beep and the word duty appeared on
the screen, press ESC] and repeat this step.) !
Type the following:
(12)
aduty This time the word duty should appear on the screen. It appears because the first letter of the “word” aduty- was a and this a is the
append command. Therefore the a was interpreted to mean, “Move me from Command Mode into the Append Mode.” Thus, when you typed the next four letters they were entered into your file as text.
duty
Press the jESCj key.
(13)
You have
You
are returned to the
Command Mode.
had another real-life encounter with the a (append) and jESCj (escape) commands. just
Summary:
the a
command
text; the jESCj stops the
to
permits you to start entering
append process and returns you
Command Mode.
you have entered is now sitting on the screen staring at you and waiting for you to do something with it. Suppose you want to finish working on the file for nowleaving any typing mistakes you made in composing it uncorrected until later. You need a command which will tell the visual editor “Tm finished — save this text in a file for another time and bring me back to the Shell.” Looking at the Conceptual Map, what command moves you from v/ Command Mode back to the Shell?
(14) Returning to the Shell:
Go
The
text
ahead now and type (Upper Case):
ZZ If
the letters
Mode.
ZZ
appear on the screen you are
You must
first
move
to
in
still
Command Mode
Append this com-
the
for
mand to be properly interpreted. Press jESCj to move to the Command Mode and then type the ZZ command (hold the SHIFT key down and press the Z key two times). Your
First File
27
What happened? something
At the bottom of the screen appears the note
like:
'‘first*'
Below
20
lines,
the Shell prompt
568
characters.
%
which indicates you are back in the Shell Mode and that the system is awaiting your next Shell command (remember the Shell commands who, date, look, and passwd practiced in Module Two?). this
is
Examine
Ma p
y ou are in the Shell and enter the vi [filename\ you are moved into the ComB,
If
command ® mand Mode. The ZZ command moves you out of Command Mode and back to the Shell, and can only be executed when you are in the Command Mode (and not Append So a
(15)
or Shell
Mode).
you’ve written 15-20 lines of text and saved this material as named first (where it will wait patiently for your return.)
far
file
A
Second File: It would now be useful to through which you created your first file.
From
the Shell type the following:
second
VI \
As
practice the procedures
space
we put second in a box to indicate that you need not new file by the name second, but can use whatever name
before,
call this
you want. Trace the action you just completed on
row leading ind icates
into the
vi
Command Mode
Map is
a
Note that the arone-way arrow. This B.
from the time you enter the command vi \filename\ until you return to the Shell Mode, you are in ‘‘different world” where a different “language” is spoken. The t
hat,
commands
that the Shell can interpret cannot be understood by the visual editor, nor can the Shell properly interpret commands
meant
for the visual editor.
The commands
that are properly in-
terpreted by the Shell will be either misinterpreted or entirely not understood by the visual editor. Each Mode has its owm com-
mands.
28
Your
First File
(a)
In
what UNIX
Mode must you
be to use the vi second com-
mand?
(16)
(b)
After you enter the vi second you located?
(c)
What
Answers:
be the
will
(a) Shell
To append
(b)
name
of this
new
Command Mode
(add) text to the
must you enter? Press
command,
this
file
in
you are creating?
second
(c)
called second
file
what mode are
command
what
key (lower case): a
Again look at the Conceptual Map. (17) to what mode?
Answer: You
Now
are in the
Append Mode,
you are
that
in the
Pressing the a key
so text can
now
Append Mode,
be added to the
Write anything you want, but remember short and start all new sentences on new lines.
keep your
to
you should
6 to 8 lines,
are finished appending text, want this text saved in a to return to the Shell.
move
Refer to
Map
B;
is
from Append Mode to the Shell? reach the Shell you need to move in two steps:
From Append Mode
(b)
From
the
to
Command Mode;
Command Mode
lines
you and want
tell
file,
there a
directly
(a)
file.
type 6 to 8 short lines
of text.
Once you have entered these
moves you
vi
command
No.
to
In order to
and then
to the Shell.
You have been adding text, so at the moment you are in the Append Mode. Map B shows the command to move out of Append Mode and into Command Mode. It is the ESCAPE key.
Press:
Esc
You
are
now
in
the
Command Mode.
Your
First File
29
^
How
(18)
Map B
do you move from
indicates that
ZZ
Command Mode
the appropriate
is
to the Shell?
Again,
command. Type:
ZZ You should now be back
ZZ
appeared on the screen, you forgot to press the |ESC| key before the ZZ was the Shell.
at
(If
the
entered.)
Listing
Two more commands and (1)
and
Printing Files
Listing Files: Suppose you want to
your UNIX account. list)
Type the
Shell
know
The command
of the names of your
Is
the
names of
the
will call forth a list
files in {Is
—
files.
command:
®
Is
Did the filenames
Module Three.
you’re finished with
and second appear? The names of other files will also appear if you have created any others, or if your account is used by other people. The list command will work only from the Shell.
(2)
first
Line Printing Files: You might now like to produce a printed copy of one of your files. Look at Map B. Wh at comma nd is on the arrow from the Shell to the printer? The [filenam^ in the com-
mand any
Ipr [filename\
file
To
®
means
that
you can substitute the name of
you want printed. print out the
file first
you should
type:
first I
The
line printer {Ipr
Mne
space
printer)
command
is
only understood
by the Shell. For the terminally curious, the term line printer is derived from the fact that most early high speed printers printed one line of output at a time.
30
Your First File
You
can also send the
second to be printed with the
file
Ipr
second
command:
®
your printer is located away from your terminal.) Several moments after you have entered the Ipr [filenanw\ command sequence a message may appear on the screen informing you where your printed output (here, a copy of your file./7>5r) may be found. (This next point
is
relevant only
if
®
(If
(3)
down the name of box number displayed on the
appropriate) Write
number, and the need each to identify the
You
(4)
are
now
Module Three.
room you may
the building, screen, as
location of your printout.
finished with the on-line activities contained in
Logout of UNIX (from the Shell type the word
logout) and continue reading the last section.
You 've
Made
It
(Puff-Puff)
Module you are now text proCertainly there is much more to learn (otherwise we cessing. wouldn’t have written the next 400+ pages). Still, the fundamentals are contained in this section, and you’ll build on them in later With the knowledge gained
in this
Modules.
A summary text of this
A Quick
list
of the
Self-Quiz: Consider yourself finished with this Module
In
(b)
What must you
(e)
these questions:
what mode must you be
(a)
(d)
practiced follows the
Module.
when you can answer
(c)
commands you have
to start a
type to start a
new
new file
file?
to
be
named bonzol
command to add (append) text to a file? What is the command to leave Append Mode and Command Mode? What is the command to quit an editing session, What
is
the
Your
return to
save the
First File
31
additions and changes you
made
in that session,
and return
to
the Shell? (f)
What
is
the
command
to display a
list
of the filenames in your
account? (g)
What
is
the
command
to
have a copy of
a file printed
on the
line printer?
Answers: (g) Ipr
Note:
(a) Shell
(b) vi
bonzo
(c) a
(d)
[E^
(e)
ZZ
(f) Is
filename
If
you correctly answered question
(d)
you are awarded the
Houdini lESCAPEI Artist Award. Please turn to the last page of Module for your extravagant certificate, suitable for framing.
32
Your First File
this
Command Summary Visual Text Editing
Command a
ESC
zz
Commands
Function
•
Moves you
into
2idd text to a
file.
Append Mode, where you can
Append Mode and Command Mode. Escapes from
Quits working on the
returns to vi
writes changes
file,
made
in
an editing session, and returns you to the Shell.
Shell
vi
filename
Starts
a
flename Is
^
Ipr
filename
existing
file
named
for visual editing.
list
of
names
file
in
your account
(Is
list.
Has a copy of filename (Ipr
who
or retrieves an
file
Displays a
—
Commands
—
line
Presents a
printed on the line i^vinter
inter).
list
of
who
is
currently logged onto
your UNIX system. date
look
abc
Displays today’s date and time.
Looks
in
dictionary
for
correctly
spelled
words
beginning with abc.
passwd
Changes account.
passwo/d assigned to your UNIX (Remember your new password!) the
Your
First File
33
book.
the
of end
the
at
located
is
map
this
of
copy
B second
Map
A
35
oudini
i\
,
—
is given
^0
tkw
day
of
— in the year. for distinguish e'd
and
miraculous escapes executed from the Append tAode
Module Four
M
Editing Files Using the Visual Editor
O D U L E 4
Introduction
We
seldom express ourselves precisely in work. As a result good writing involves adding to our
first
attempts.
An
first
drafts of written
revising,
editing,
and
advantage of text processing with
and ease with which changes and additions can be made. words and paraLetters,
UNIX
is
graphs
precision
the
can
be
easily
or expanded, moved around. A copy of
replaced,
the
paper
(with
all
revi-
sions) can then be printed,
having to retype the entire manuscript.
without
Although there are dozens of UNIX commands availediting
text,
able
for
an
introductory
essential
this time.
set
and very
commands
will
More
only
of
versatile
be used
at
specialized
procedures will be included in later Modules.
One approach
to the editing process
37
Prerequisites To employ this Module you should be commands introduced in Module Three:
Command
able to use the following
Function
vi [filename
or
Starts
retrieves
moves you from Allows you
a
to
file
for
the Shell to
start
(Moves you from ESC
a
vi
visual
to
and
Command Mode.
appending text
Command
editing
to
the
file.
Append Mode.)
you no longer want to add text to a file. (Moves you from Append to Command > Mode.) Signals that
ZZ
Saves changes quits
made during an
work on the
file,
editing
session,
and returns you
to
the
Shell.
Objectives After completing this
Module you should be
able to:
(1)
Access an existing
(2)
Position the cursor on desired lines and words within a
(3)
Delete
(4)
Replace
(5)
Undo the effect of the last text change command entered; and Add more text wherever you want in the body of a file.
(6)
letters,
file
for editing;
words or
letters or
file;
lines;
change words;
Procedure This Module contains five sections. Files and filenames are considered in section one. Section two introduces several cursor moving
commands, while
The Visual Editor
text
changing
commands
are discussed
in
tion four.
The
you
section asks
fifth
appear
in sec-
your text editing several points throughout the
Self-check quizzes appear at
skills.
commands
Additional text appending
section three.
to practice
Module.
Log onto your UNIX account following the procedure you learned After the Shell prompt is displayed, proceed to in Module Two. the
section.
first
Files
From
(1)
the Shell
and Filenames
Mode, type
the
command
®
Is
which causes the Shell your account. (The
to display the
®
sary to
let
the Shell
The screen
will
including the
The
Shell
means
know you
press the
files
prompt
the
command.)
your account, {first and second). then displayed, indicating that the system is
names of the files you began in Module Three is
files
are finished typing a
display the
awaiting your next Shell
(2)
you have in RETURN key and is neces-
names of
in
command.
Recalling an Existing File for Editing: In Module Three you used The the command vi filename to begin creating a new file. filename you assign to the file (for instance, first or second) becomes the identification label used to let UNIX know which file you want to work with. Once the filename is assigned, you must
use the same filename to recall the
file
for further editing.
which you began in Module Three. To call the file up for visual editing you must type the following command sequence (two words):
We
suggest you edit the
file first
vi
first I
The beginning all
of the
tioned
at
file,
lines of the
space
appear on the screen (perhaps length). The cursor will be posi-
file will
depending on
the start of the
®
its
first line.
The Visual Editor
39
Yes, the
command
mand used
to reenter a file
is
exactly the
same
as the
com-
to start the file in the first place:
vi
filename
®
where you supply the filename.
Once you will
type vi filename and press the
®
key one of two things
happen:
(a)
the filename you type after the vi is the name of an already existing file, the Shell recalls that file for you to edit; or
(b)
the filename you type is not the name of an existing process of starting a new file with that name begins.
If
If
What happens
you want
if
incorrectly type the
to
name? The
work on an
existing
file,
file,
the
but
Shell will search for a
file with the filename exactly as you typed it. Because the name of the file is typed incorrectly, the Shell won’t be able to find a file with that name. Therefore, it will start a new file with the misspelled Jylename as its name. To stop the process of setting up a
and return (3 )
—
Locate
to the Shell, type the (upper case)
Map C
at
new ZZ command.
file
the end of this Module, and find the box
marked; Shell
Lo cate
the arrow leading downward from the Shell with the label vi filename\ (where filename is the name of the file you want to edit: in this instance it is the file named first). According to Map C, if you are in the Shell Mode and enter the
®
command
filename you are
The command mand Mode.
moved
into
vi
what Mode?
filename moves you from the Shell to vi ComIt is only from vi Command Mode that you can begin editing a file. Make sure you find that transition on Map C.
When
editing a
ular words,
vl
file
remove
a particular point.
you often need
to correct the spelling
of partic-
specific lines of text, or insert additional text at
With the screen full of lines of type, how can you tell vi which specific word or line you want to change or where you want to add more text?
40
The Visual Editor
The
cursor, or
moving
light rectangle, is central to
com-
municating with the visual editor and must be moved the word or line you want to alter.
Cursor Moving The Arrow Keys: The (1)
basic
Commands moving the cursor through These are separate keys on some
method
for
by using the arrow keys. and the h, and terminals
a
file is
Rmm R
to
k,
j,
and
1
keys on others.
Once you have called up a file for editing with the y\ filename command, the cursor should be at the first line of the file. If this line does not contain text, press the down arrow key until the cursor is on a line of text.
R
and Locate the key with the arrow pointing to the right press it. If you did not see the cursor move when you pressed it, press the arrow key again while carefully watching the cursor on the screen.
The cursor should move
the cursor does not
one character. few seconds. UNIX
to the right
move immediately
wait a
If is
time sharing system, which means that it shares its brain among you and the other users. UNIX may not be able to follow your every command as soon as you issue it. (If the cursor still does a
not move, depress the key marked ESC and then try again.) I
Try each of the four arrow
(2)
to
move
keys.
I
What happens when you
the cursor too far to the left?
Beyond the
try
text to the
right?
move the cursor up, down, right and left through the text. NOTE: If the four arrow keys don’t move the cursor, you may have made a mistake during the logging in process when you told UNIX what type of terminal you were using. If the You should be
cursor
is
not
Twenty-Eight:
able to
behaving
properly,
see
Trouble Shooting entitled
the
section
Specifying
of
Module
Your Terminal
Type.
(3)
the middle of the second line of text and, using the arrow keys, move the cursor to the beginning of that Select a
word
in
word.
The Visual Editor
41
W)
(5)
—
Press the right arrow |—»| key four should move four spaces to the right.
more
times.
The cursor
Augmenting the Arrow Keys: You can include the number keys (1 - 9) as part of arrow commands. The result is to move the cursor several lines or characters at once.
— — Now
For instance, try pressing the 4 key and then pressing the down arrow\^ key. Did the cursor move down four lines?
key.
press the
number
3 key followed by the
Again, the cursor should
move down
down arrow
[J]
3 lines.
Warning: Many terminals have an extra row of keys located directly above the number keys. These keys may be labeled FI, F2, F3, etc. These are called Function Keys and do not have the same action as the convenUonal number keys. Instead, they will cause much
grief
if
unintentionally struck.
Avoid them
for
now.
Try the 2 key followed by the up arrow, then 4 |—»| 3 Q] and Rather than repeatedly pressing keys tension releasing) to include
you want
to
Note
when you
that
move
it
is
usually easier (but not as
numbers preceding arrow keys when
the cursor several spaces or lines at once.
press the arrow keys the editor does what you request (moves the cursor) and then waits for your next command. You can issue cursor-moving command after cursormoving command without leaving the Command Mode. Find the
arrow key commands headed?
in
Map
C.
Are they
single
or
double-
These double-headed arrows represent the actions of two-way commands. These commands do not move you into another Mode, and do not require that you use the RETURN or
[e^
take effect immediately originating Mode.
You have probably
keys.
They
upon being typed, and you remain
in the
noticed that there are limits to where you can rnove the cursor on the screen. If you try to move the cursor past the left margin or to the right beyond the last character of your text. It does not move but instead you hear a beep. You cannot go
42
The Visual Editor
beyond the text which you have added. (Remember that blank spaces, whether between words or accidentally placed at the end of a line, are characters.)
(7)
Select another
word near the bottom of the
keys followed by arrow keys to place the cursor the word.
(8)
text. at
Use number
the beginning of
The Search Command: An easier way to move the cursor to a specific word in the text is with the search command. When you type (from Command Mode) ! specific the cursor will move to the word specific in the text. word somewhere near the top of the your screen of Move the cursor to the word you selected by typing
Select a
(9) text.
/ [wor3\
where word
is
As you enter
(10) text).
the word that you want the cursor to find. the slash and the target word the terminal displays
what you type
moved
in the
After you
specified
lower
left
Append Mode (and
to
®
word
press
in the text.
this display
®
the If
corner of the screen.
it
key,
is
the
You
are not
not entered into your
moves
cursor
does not, press |ESC| and
to
the
try again.
ESCAPE? The slash-search command is a vi Command Mode process and |ESC| makes sure you are in the Command— and not Append — Mode.)
(Why
press
another word and use the slash-search command to move the cursor to that word. The slash-search command is a powerful way to locate a word in your text. It is a two-way command— you are always returned to Command Mode. Select
(11) Finding Clones: If the word
you
select in this exercise
is
found
more than once in your file, the search command can go to only one of them at a time. Pressing the n key (for next) will send the cursor to the next identical word in your file. Repeat this process and the next instance of the and you will locate the next .
word.
When
.
.
.
.
the editor has reached the end of a
back to the beginning of the
file
.
file
it
will
loop
and continue the search.
The Visual Editor
43
No
(12)
doubt you used the word
the
more than once
in
your
file.
Type
®
/the
and move to the next the by pressing the n key. The n is a two-way command.
Two-Way (1)
Text Changing
command
Commands
Deleting Lines: Lines of text are easily deleted. To delete an entire line of text, position the cursor on any character on that line
and
type:
dd Blank lines
(as well as text lines)
can be removed with the dd com-
mand. Note:
You do
not press the
®
key.
As soon
machine does what is requested removed. The dd command is a two-way command.
struck, the line
(2)
is
second d is and ZAP!! The
as the
.
.
.
Undoing an Editor Command: It is possible to undo the effect of the most recent text changing command using another command, the undo
command.
Type the undo, or ‘T goofed” command: u
The
removed
should reappear on your screen. The undo command allows you to go back only one text changing command. You can only issue the undo command from the Command Mode just
line
of the visual editor.
Press u again.
(3)
What happened? Because u undoes
the preced-
command,
ing
pressing the u key a second time will have the interesting effect of undoing the previous undo. This will return
your
file
to the condition
command. 44
The Visual Editor
it
was
in
before you issued the
first
undo
Type
(4)
3(1(1
which
will
cursor
is
delete three lines starting with the line
located.
command.
Bring the lines back with the undo
(5)
Time
to Fill in the
What
(b)
Where must
(c)
What
is
is
(a)
the
the
Blanks! Consider the following questions:
command
(a)
Answers:
1(6)
on which the
to delete
one
line of text?
the cursor be positioned to delete a line of text?
command
dd
(b)
Deleting a Single Word:
to delete eight lines of text?
anywhere on the
It is
line
possible to
(c)
remove
5dd
single
words from
the text.
Move
the cursor to the
first letter
of any word and type:
dw The dw command stands
Nice disappearing
for delete word.
act,
isn’t it?
Now i(7)
bring the
Place the cursor in the middle of a
mand. Does
(8)
word back with the u command.
it
delete the whole
word and
try the
dw com-
word?
Position the cursor on the
first
letter
of another word and
press these keys:
3dw As with most
vi
used preceding the
Command Mode commands, numbers dw command
can be
to increase the effect of the
com-
mand.
The Visual Editor
45
(9)
Deleting Specific Characters: Select a letter someplace in the text and move the cursor to that letter. Delete it with the command (lower case): X
The X command It
(10)
is
deletes only the single character under the cursor.
the delete one character at a time
place an x over a character,
command.
and instead of leaving
(Now you can a
smudge, the
character disappears.)
What do you expect 6x
will
The space between words on
do? Try
a line
is
it.
a character just as are letters
or numbers.
Thus, the x can be used to delete unwanted spaces between words.
(11)
Another Quick Review: (a)
What
(b)
What command
(c)
What command
(12) (d)
is
the
command deletes
to delete
an entire
line of
your
file?
one word?
deletes the one character under the cursor?
Without referring to the commands, return to your current file and remove one more line, one more word and one specific letter.
Answers:
(a)
dd
(b)
dw
(c)
x
Replacing a Single Character: The
commands
dd, dw,
and x allow you to selectively delete lines, words and characters. At times what is needed is the substitution of one character for another. The r command replaces the one character located under the cursor with the very next character that you type. For instance, imagine the cursor is located at the w in the word two. If the r command were typed, followed by the letter o, then the w in the word two will be replaced by an o. The word two becomes too. This
46
may seem
vi
confusing, but the action we’re describing
The Visual Editor
is
not.
the
Move the command
cursor to a particular letter and replace
by typing
it
r
followed by the replacement character. with several other characters in your file.
That
Now
(13)
command
dogcatcher^s back.-ther&''s
Breaking
Up
a
a character
is
to
long what
is
really
making
it
Id
Like to
replace
Long Line: One of the handy uses of the replace break one long line into two lines. If a line is too
command dle,
Practice the r
two
needed
is
for a
RETURN
to be placed in the
mid-
lines, right?
Select a long line in your text.
Move
between two words near the middle of the
the cursor to the space line.
Type the
replace r
The Visual Editor
47
command and
then
press
®
the
You
key.
'‘space” character between the two words with a
move
the second part of the line should
works because the
®
is
to a
replacing
are
new
®
As
.
the
a result,
This action
line.
just another character to the visual editor.
One- Way Text Changing Commands (14) Substituting for a Single Character:
The
command
r
replace a single character with one other character.
allows you to
Often an author
programmer needs to substitute several characters for a single character. The s command will substitute for the one character under the cursor whatever you type until you press the lESCI key. or
Select a
word
in
your
you might like to word and type (lower
that
file
cursor over a letter in that
Type one or more characters, then press |ESC| mand, the s command must be followed by
.
Position the
alter.
case):
comwhen you are
Unlike the |ESC|
r
finished entering text.
The
difference between the r and s
command removes replace the
single
is
important.
single
new
Each
The r will The r com-
character in your text.
one character with a
mand makes to the
a
commands
character.
the single substitution and returns you automatically
Command Mode
You
two-way command).
(r is a
are not
Append; you do not use the |ESC| key. In contrast, the s command allows you to substitute as many characters as you wish for the one removed character. The s command moves you from Command Mode to Append Mode and leaves you there until you use the lESCj to return to Command Mode (s is a one-way command). left
in
(15) Substituting for a
Word:
exchange a specific word in your text for other words. Position the cursor on the first letter of a word. Type the command: It
is
also possible to
cw
The cw stands at
48
for change
the end of the
The Visual Editor
word
word being
.
A
dollar sign ($) will
replaced.
You then
now
appear
can type the
replacement text. Although the command removed only one word, you can replace that one word with several words, entire sentences, or pages.
Typing the cw
command removes
the one
word and moves you into the Append Mode; therefore everything you type will be entered as text until you press the ESC key (16)
Weird Characters on the Screen: A common mistake is to try to move the cursor, thinking you are in Command Mode, when you are actually in the Append Mode. A series of weird characters or "[A"[B"[D"[D) will appear on the screen (not unlike a Monty Python movie). If this happens, you are in the Append Mode, and those "K or "[A type characters are the control characters associated with the arrow keys. The visual editor is following your instructions and happily adding control characters to your file. Should this happen you need to press |ESC1 and use the x
command i(17)
to delete the control characters.
and cw commands allow you to subtext for a single character and for specific words, respecYou can also substitute for entire lines in your file.
Substituting for Lines: The stitute tively.
s
on any character in a line that is a likely candisubstitution and enter the command (lower case):
Place the cursor
date for
cc
Whatever you now type will be entered into the file in place of the one line that went poof! You are not limited to entering only one line, but can append any number of lines at this point. (18)
Append Mode/Command Mode: It is important that the function of the various commands be understood. Look again at Map C. Whenever you leave the Shell and enter the visual editor you are All this means is that the always placed in Command Mode. machine is programmed to understand and act on a limited number of specific commands. These result in moving the cursor, deleting or changing text, or moving into Append Mode. an append command is given (such as a to 2Lppend text or cw to change a word) the machine is programmed to move you out of
When
and into Append Mode. Once in Append Mode, every character you type will be put in the file as text and
Command Mode virtually
The Visual Editor
49
displayed on the screen.
ESCAPE
You remain
Append Mode
in
until
you
This means you must tell the editor you are finished adding text and want to return to the Com-
press the
when mand Mode,
|ESC| key.
regardless
of which
particular
command you may
Append Mode. The ESCAPE key Command Mode!
have used back to
When
to enter the
is
the
way
doubt about what mode you are in, press the ESC key. If you are in Append Mode (adding text) you will be moved to the Command Mode. If you are already in Command Mode, pressing the |ESC| key will do no harm. It will inform you that you are already in Command Mode by harmlessly “beeping.” in
I
Appending Text (1)
to
a File
Module Three you used the a command to append text when you initially started a file. The a can be used any time you want to In
add text
to the right of the cursor.
Pick a place in the text where you could add more text and move the cursor to the last letter of the word just before where you
make the addition. Then press the a key. You are moved to Append Mode and whatever you type will be entered as text. Add several words and then press ESC to return to Command want
to
Mode.
The
command
allows you to start adding text to the right of the cursor. But what if you need to add text to the left of the cursor (as the first character on a line, for example)?
(2)
a
Inserting Text: Select a place to add some text (such as the beginning of a line). Move the cursor to that place and use the 1
command to insert (i — insert) text. The moves you from Command Mode to Append Mode. Every character you type after typing the command will be entered as text in your file starting with i
i
the space to the
50
left
The Visual Editor
of the cursor.
(3)
Add
several words or lines
The way
of text.
to
indicate
you want to stop adding and return to vi Com-
that text
mand Mode ingly, with the
Figure
1
not
is, I
i
surpris-
a
I
Figure
ESC key
1
I
indicates
where the various Text Appending Commands
adding text relative to the position of the cursor: a appends text to the right of the cursor, and i inserts to the left.
start
(4)
and i keys. Position the cursor on your file, press either key, add a word
Practice using both the the a
the
first letter
of a word in
of text, and note where the
Opening
a Line Below:
already existing lines.
on
that line
It
new word is
is
placed.
add text between two
also possible to
Select a line,
move
the cursor to
some
place
and type (lower case): 0
The
(5)
0 stands for open a
new
line
below the cursor
line.
A
space
opens up for a new line between the line where the cursor is located and the next line in your file. [When you enter the o command on dumb terminals the line below a ppear s to be removed. Panic not — it will reappear when you press ESC and the screen is
The next line is not deleted, just temporarily make room for the new one (or ones).]
‘‘redrawn.”
over”
to
‘‘covered
can continue typing as long as you wish; you are not limited to t hat one line. As with all Append Commands, you must use |ESC| to let the machine know when you are finished adding text and want to return to Command Mode.
Add some new
Opening
text.
You
a Line Above: In addition,
above the line
in
which the cursor
any character on {\\q mand (Upper Case):
first line
is
of text
you can open up located. in
your
Move
file
a
new
line
the cursor to
and type the com-
O The
O
stands for Open a line above the cursor
line.
A new
above the cursor should open up and whatever you type
The Visual Editor
will
line
be
51
added at that point. Again, if the first line “disappears” it has not been removed. The O (Upper Case O) command is the easiest way to add text to the top of a file. As you have now discovered, it can be used to open a line for text above the first line.
As with
command, you can continue
the o (lower case o)
typing as
long as you wish; you are not limited to that one line. Because these two open a new line commands move you from Command to Append Mode, you must use the |esc| key to signal when you are ready to stop adding text and return to Command Mode. (6)
Summary
of
append
on
Append Commands: You now know how to the
text
cursor.
four sides of This ability is all
summarized
in
Figure
the
as
your
cursor
point,
i
inserts
2:
with
i
a
left;
appends to the right; O Opens the line above; and o opens the line below.
To make sure you
You
key.
Figure 2
are in
v/
as
it
can save the
Shell by typing the
a
I
starting
the
to
q
file
Command Mode now
is
press the [esc
written and return to the
command:
ZZ (8)
Time
to Fill in the
from Shell
to
Command
and
vi
Command Mode
finally
lowing questions on (a)
What
is
Blanks: Look
the
Map C and
at
to
Append Mode, then back
back to the Shell.
Map
follow the path
Locate answers to the
to
fol-
C.
command
to
move from
the Shell to
vi
Com-
mand Mode? (b)
What to
52
are four
the
commands
Mode where
to
text
(c)
what mode must you be arrows?
(d)
After entering an o or
In
The Visual Editor
O
move from can
to
be
vi
Command Mode
added?
employ the cursor moving
command, what Mode
are
you in?
What
(e)
command
the
is
appending text and want
(f)
What command
(g)
your
What What
(h)
the
is
command
Command Mode?
starting
new
a
file?
UNIX of com-
to leave the Shell, terminate the
Mode, where
a
new
set
understood?
is
What command do you use
(i)
begin
to
session, and return to Reality
mands
vi
saves the
command
the
is
to return to
are finished
new (and improved) version of memory of UNIX and returns you to the Shell?
the
file in
know you
to let the editor
to
add text
text
after
to the line
below the
cursor line?
How
(j)
Answers: editor
(d)
would
(a)
you
filename
vi
(b) a,
Append Mode
(h) logout
(i)
and enter the a
0
add
(e)
i,
o,
[ESC
(lower case)
(j)
O
(c) (f)
Command Mode
ZZ
(g) vi
place cursor
on the
word?
of the visual
filename last letter
of the word
command
Another Practice
(1)
particular
a
File
Mode. If you logged out, log back Once the Shell prompt appears you into your UNIX account. should start a new file which we will call experience. From the Shell
You should
still
be
in
the Shell
type:
In this
new
file
we’d
ing text processing
is
like
vi
experience
you
to describe
going.
® how
the process of learn-
Summarize what you have learned so
whether or not you are enjoying the process, and what suggestions you’d make about improving these Instructional Modules. Keep the lines short, don’t correct mistakes as you are entering the text, and just type away. Attempt to enter as much text as quickly
far,
as
you can.
The Visual Editor
53
Enter at
(2)
least
practiced in later
(3)
30 short
lines.
Forty lines
Modules more useful
make
will
the activities
to you,
Now
go back and make corrections to this text using the commands that were introduced earlier (the slash-search I word command, arrow keys change word cw command, etc.). A summary of the commands you have used is included as the final pages of this Module. Be sure to try each of them several times as you write your new experience file.
E
Examine what you have
(4) line;
open up
a line
above
that line
(5)
Find several places
(6)
Change one word
(7)
Delete one line and add
(8)
Remove
to
Move
the cursor to the
Return
add more text and do
so.
into another word.
the
to the Shell
Make a paper Shell command
new
text in
and save the
its
place.
(a)
file
using the
copy of the
(line printed)
of “Filling
mands append cursor’s
ZZ command. experience using
Blanks”:
— — "
What com-
cursor.
that
®
experience
Consider the rectangle in the diagram at right to be the
file
make
sequence: Ipr
Round Four
first
and enter an introduction.
the period at the end of a sentence and sentence longer with the s command.
(9)
(11)
written.
text to the
left, right,
above,
and below? (b)
You have now words and
54
practiced the
lines.
The Visual Editor
commands
You have
also
that delete characters,
used the
commands
that
substitute or change characters, words and lines.
mand
that substitutes text for
in the
appropriate box in the following chart.
five
one character
s
is
and
Fill in
The comis
printed
the other
commands.
Character
Substitute
Word
Line
s
Delete
Answers:
(a)
O I
i
a
0
(12)
Your
experience
Character
Word
Line
Substitute
s
cw
cc
Delete
X
dw
dd
file
Modules; add as much (13) Please
Module
read
be useful as you
will
to
it
the following
as
complete the next
you can.
command summary
before beginning
Five.
The Visual Editor
55
Command Summary Shell
Commands
Command vi
Function
filename
Starts
or
retrieves
a
named
file
filename for
\\sual editing.
Displays a
Is
Ipr
Has
filename
a
1/s/
of
file
names
your account.
in
copy of the specified filename printed on
the Vine printer.
who
Presents a
list
who
of
is
currently logged into
your UNIX system. date
look
Provides today’s date and time.
Looks
abc
in
and displays words beginning
dictionary
correctly
spelled
a
of
list
with
the
letters abc.
passwd
Changes the passwo/d assigned account.
Cursor Moving
#
(h,j,k,I keys)
Commands
Moves
cursor one line left.
arrows
Moves
#
/ word
Moves cursor forward through
Moves mand.)
56
Commands
or one space right and
n
The Visual Editor
cursor
to
your UNIX
(Don’t forget your new password!)
Vi Text Editing
BmmB-
to
number
next word.
up/down
of lines or characters. text to word.
(Used with /word com-
Text Changing
Commands
Two-Way Commands (Automatic Return
to
Command Mode)
Command dd
#Jdd
dw
# dw
Function
Deletes cursor line of text. Deletes
number #
of lines of text.
Deletes one word from text.
Deletes
number # of words from
text.
Deletes the one character under the cursor.
#
X
r[3
u
Deletes
number # of
characters
from
text.
Replaces the one character under the cursor with the next character typed c.
Undo: Reverses
change action.
last text
Append Mode Commands One- Way Commands (Leave
a
You
in
Append Mode)
Appends (adds)
text to a
file
to the right of cur-
sor.
i
0
Inserts (adds) text to a
file
to the left of cursor.
(lower case o) Opens a line below cursor line for
appending
text.
The Visual Editor
57
o cw
(Upper Case O) Opens a for appending text.
Change word: exchanges new in text that
cc
Change text that
S
line
it
text for
one word
exchanges new text for one removes.
line in
new
line in
line: it
it
line
removes.
Substitution: exchanges text that
above cursor
removes (same
text for
as cc
one
command).
Mode Changing Commands Command ESC
Function
Escapes from text Append v/
zz
Mode and
Command Mode.
Quits work on a ing
that
editing
file,
writes changes
session
into
the
The Visual Editor
made
dur-
memory
UNIX, and returns to the Shell Mode.
58
returns to
of
book.
the
of end
the
at O)
iosaJ O)
"^(g) ino3oi
oo
•O
o
~a
ZZ
B
located
1
® djnpdoojj IIlSOT
C/D
o
u
luwUaflJ' lA
L
AV3
0;
33
key
>
ed version of your
!
entered:
to re-encrypt
it
newname
instructs the Shell to overwrite the old encryptfile
with the
new encrypted
new nonencrypted version you may want to remove it.)
still
The Pack and Compact Commands: At many is
is
filename
and then wish
filename
forget that the
account
line
command:
crypt
The
symbol? will
have numbers
edit a particular file?
command
What
stop the Shell from overwriting an
Command Mode command
when you
(c)
will
when you use
file
displayed
you
command
Shell
existing
log into
remove the include
(until
editing
numbers
numbers? for any files that
you logoff)?
How
could you have numbers appear in every you logon to your account?
What command produces
a listing of
all
files
file
every time
your
in
Home
directory, including the dot files? (g)
How
could you have the word format interpreted by the Shell to mean nroff -ms [whatever file you enter] as an argument to format, and have the output sent to the page command?
Answers! (d)
setenv
the .login
(a) set
noclobber
EXINIT
file,
(f) Is
set
-a
number' (g)
.login file.
288
(b) set
Account Management
enter
number
(e)
(c) set
add setenv
nonumber
EXINIT
format 'nroff -ms \l*
set \
number'
to
page' into the
&
M O D U
Module Seventeen
L E
Backgrounding a Process
17
Introduction At various places in this book we have mentioned the concept of running a job in the background. Backgrounding a process refers to having a current Shell process (nroff, Ipr, etc.) run in such a way that the terminal
is
free to accept other Shell
commands. You
are
then able to work on one task while UNIX quietly completes a different Shell command sequence. This Module presents an introduction to the
commands
that affect
background processes.
Prerequisites Before starting this Module you should have completed the exercises through Module Ten. In particular, make sure you are familiar with the & backgrounding character introduced in Module Six.
Objectives After completing this (1)
Execute
a Shell
Module you should be
command sequence
work on some other UNIX
able to:
while you simultaneously
task;
289
(2)
Monitor jobs or processes that are running and
(3)
Terminate jobs or processes that are running ground.
in the
background;
in
the back-
Procedure The procedure steps for this Module are presented in three sections. The first section deals with running jobs in the background. The second section discusses how processes currently running in the background can be stopped and re-started (a feature available
on BSD
4.0,
4.1,
and
introduces the batch
UNIX versions
4.2
command— a
only).
The
final section
cheaper way to run a job
in the
background.
Running a Shell Command Sequence (1)
Log onto your UNIX account.
Select
one of your
for the exercises in this Procedure Section. lines
(2)
would be
Background
in the
A
file
larger text files
with 300 to 400
ideal.
The Ampersand: The &
character was introduced in
This creature allows you to background a Shell
To further explore how mand sequence: nroff
-ms
this
command
command works
[filename] |
Ipr
Module
Six.
line.
enter the
com-
&
Appending an ampersand to any Shell command line places the process into the background (where it is quietly but efficiently executed), and returns control of the terminal to you. (Kind of reminds us of the old tv series Outer Limits.)
You
can then attend to other
UNIX
activities,
without
having to wait sequence. Most
first
complete your requested command versions of UNIX will inform you when the process is complete by writing a brief message on your screen. At some locations you may need to periodically check whether the process has been comfor
to
pleted.
290
Backgrounding a Process
(3)
Waiting for Godot: The simplest way the background job is completed is
check on whether or not to use the wait command. to
Enter the Shell command:
®
wait
the job sent into the background has not been completed, this command will cause UNIX to pause until the backgrounded job is complete. Using the wait command returns UNIX to the state it If
would have been
in
if
you had not sent the job
into the back-
ground.
you get bored waiting for the process to finish or want to continue with another UNIX task press the DELETE key. This will If
delete the wait process, allowing the job to slip quietly back into the background.
(4)
Performing a Process Status Check: While UNIX is attending to a Shell Command sequence such as the one you entered in Step
Two, type the following
Shell
command:
®
ps
You should
receive a message which appears similar to the follow-
ing:
TT
12581
ia
STAT R
12438
id
R
PID
The ps command stands time to report
all
the formatter
TIME
COMMAND
:02
ps
:46
nroff -ms experience
and can be used processes submitted from your account. for i^rocess status
at
any
speedy (or if you sent a short file) the process status may not show that you are backgrounding an nroff process (as the process may have already finished). If this happens, submit a longer file to be formatted using the & to put the process in the background, then retype the ps command. If
is
particularly
Backgrounding a Process
291
your backgrounded process. PID means Vrocess Identification’, this is the “job number assigned by UNIX to the command listed under the heading Com-
Note the PID number assigned
to
mand. The other headings are not of interest
(5)
Killing
at this time.
Backgrounded Process: You can terminate
a
grounded process with the
kill
command. For example,
a
back-
to kill the
process identified as 12438 in the above sample process status check, you would enter the sequence kill 12438. Shell
Enter the following Shell
command sequence
where
[pYd]
is
abandon Note:
(6)
if
number found
the process
when you entered (kill)
the job
is
command
the ps
the
®
PID
kill
already completed,
background job
UNIX will with that number.
in the prior step.
associated
process
Shell
for your
it
cannot be
killed.
Quiz Number One: (a)
background the process the file named samneric and
What command would cause UNIX of locating misspelled words in put these words in a
(b)
named
What command can be used tiated in question (a)
(c)
file
How Shell
above
is
to
spellsam?
to see
if
the spell process
ini-
completed?
UNIX you’ve changed your mind about the process initiated in question (a) above and don’t wish to
could you
tell
have the process completed? Answers:
(a) spell
samneric
>
&
spellsam
(b) ps
(c) kill
PID
Stopping and Re-Starting Jobs (Available Only on
(1)
Versions)
Stopping a Foreground Process: Some UNIX systems will allow you to temporarily stop whatever process you are working on. In effect the process is placed in a state of suspended animation, while you are
292
Some
moved back
into the Shell
Backgrounding a Process
Mode
(microprocessor cryogenics).
one of your first
and
several lines of the
the
at
same time
practice files for visual editing. file
are displayed,
press the
Z
key once):
®
CTRL-Z
You should should now
Once the type (hold down CTRL
receive a note indicating Stopped and a Shell prompt appear. If those two events do not take place, your
system probably does not have these features, and you should proceed to the next section: Running Jobs through Batch.
you have stopped the job and are presented with a Shell prompt you can perform any Shell activity you desire— your stopped process will silently await your return. Perform some modest Shell command action (perhaps look up the spelling of all words beginning with the letters uni). Leave your file in suspended animation for another moment— you’ll soon learn how to re-call it. If
(3)
Checking the Background report
tems the
all
that
ps
The ps command will processes running on your UNIX account. Most UNIX syssupport the CTRL-Z command also offer an alternative to
command
for
for Processes:
checking
on
stopped
or
backgrounded
processes.
From
the Shell enter:
jobs
A
®
of backgrounded or stopped processes will be displayed for your edification. The jobs command is the quickest way to discover these processes (much quicker but less thorough than the ps list
command). (4)
Pulling a Stopped or Backgrounded Process into the Foreground: Any Shell command sequence which has been backgrounded or stopped can be brought back into the foreground.
The process you stopped
command)
is
still
in
command). following command: the jobs
few moments ago (with the CTRL-Z suspended animation (you just checked with It can be brought into the ioreg^round mXh the a
fg
® Backgrounding a Process
293
Voila!
editing process reappears,
Your backgrounded
continue work. with the
Write the
and you may
onto the disk and return to the Shell
file
ZZ command.
Warning: The following sequence of events (a)
Begin editing a
(b)
Make some changes
is
dangerous:
file;
to
it;
Stop work on the file with the CTRL-Z command, and perform some Shell task (such as look up the spelling of a word);
(c)
was placed in limbo, again enter the vi filename command and thus call up a new buffer copy of the file [as it was before you began this editing Forgetting that the buffer copy of the
(d)
file
session in step (a)]; then Start editing this
(e)
second version of the
file.
At this point, in addition to the disk copy, you would have two temporary copies of your file, one in the background and one in the foreground. Both copies are now different from the original disk copy and different from each other. If you write one file onto the disk, and then write the other, the second will overwrite the first, resulting in the loss of the editing performed on the first copy. Be certain to go back to files that are stopped rather than
up new versions of the file.
call
The backgrounding of you need
to look
editing processes
up the spelling of
some other file to write out a Just remember to bring file. rather than starting over with a
(5)
Killing a
word
especially useful
or
if
when
you want go
into
portion for inclusion in the present the
file
back into the foreground
new
edit
command.
Backgrounded Process with chkps: As you now know,
one of the uses of
number
a
is
a process status
assigned to your
check
command
is
to discover the process
so that you can
kill
that pro-
On most UNIX systems that support the CTRL-Z, fg, and jobs commands these two actions can be accomplished in one easy step. cess.
From
the Shell enter the
command
chkps
294
Backgrounding a Process
-iv
line:
®
This
command
individually
will
list
processes currently in the
all
background. You will be asked whether you would like to terminate any of the processes. If you want the job killed, enter yes (or y) and press the key. If you want the process to continue, simply press This Shell command sequence is a useful addition to your .logout file, as it will detect any unwanted processes which might continue to use computer time after you logoff. For
®
®
reason,
this
.
the chkps
command
is
noted
in
Module
Sixteen:
Account Management.
(6)
Review: (a)
you are editing a file named rhett and need to know how to spell the word butlet\ how could you find the word using the spell command, without ending your editing session?
(b)
Once you had
If
editing the
What
(c)
(d)
the correct spelling,
how would you
return to
file rhettl
command
Shell
could you use to see suspended animation?
stopped and
in
What
command
Shell
identifies
all
if
the
file
rhett
is
backgrounded Jobs and
permits you to decide whether each should be continued?
Answers: (d)
chkps
(a) First type
CTRL-Z, then look
but
(b) fg
(c)
jobs or ps
-iv
Running Jobs Through Batch While UNIX
designed primarily as an interactive operating system it is possible to run Jobs through the UNIX batch facility. Each batch Job is held by the system until UNIX has the resources necesis
one time. This contrasts with interacJobs, which are worked on in a piecemeal fashion. Although
sary to complete the Job at tive
batch
processing
is
usually slower then interactive processing,
it
does offer the advantage of allowing you to specify certain limits to the Job that cannot be done with interactive Jobs (e.g., run at night when costs go down or exit Job if it takes longer then a specified
Backgrounding a Process
295
amount of cpu
batch
In addition,
time).
is
often considerably
cheaper (and easier on the system) then running jobs interactively or in the background. Batch jobs can be run with a wide variety of options. We will present only the basic process. Additional information is available from the on-line UNIX Programmers* Manual.
Running Running
a Batch Job: a batch job
The a
is
batch facility
is
accessed from the Shell.
command same command lines
two step process:
(1) the Shell
you want followed (these are the you would submit from the Shell if you were running the job line(s) that
are entered into a
interactively)
commands is then commands are executed. Shell
file;
the
(2)
file
containing the
sent to the batch processor, where the
For instance, assume you have a text file named report2 that you want to format. The steps necessary to batch this nroff job would be:
(a)
First create a “script” file containing the Shell
be submitted to batch (in this instance, the would be nroff -ms report! Ipr); and to
command command
line line
\
(b)
Then submit ate Shell
the script
command
This general process
(1)
is
file
line (e.g.,
Just place the
the Shell into a
Use the
script
scriptfile).
file
in
this
command (s) you would
example
is
easily
normally use from
file.
visual editor to create a
contain only the following Shell nroff
batch
by entering the appropri-
described in the following steps.
Creating a Script File: The created.
to batch
-ms filename
new
file
Command
called script
which
will
line:
>
filename is the name of a file in your account that you would like formatted. The filename nfile is the name you would like given to the formatted version of this file. In this
command sequence
(Programmers can replace this line with the Shell command quence necessary to compile a program.)
296
Backgrounding a Process
se-
(2)
Submitting the Job: The following Shell command sequence will ask UNIX to process your batch job (i.e., have the command (s) you entered into your script file obeyed): batch
The
file
named
script
is
®
script
sent to be batch processed.
In response,
batch will do two things:
you the jobname being assigned scrip 17429, and
(a)
Tell
(b)
Create two
files in
file
(3)
will
use
it
is
the
line(s)
file
more
to-be-worked-on.
batch involves at least two
command(s) which
consists only of the Shell
the Shell to perform one or
mand
you
next Procedure Step.
one
file(s)
such as
batch. out.
as scripl 7429) as
The process of having jobs run through files:
this job,
your account: batch. err and
Note the assigned jobname (such in the
to
specific processes,
The
and the to-be-worked-on
file
instruct
and the other
containing Shell com-
file(s) are
not the same
file.
A
General Nroff Script File: It can be awkward having to go into the script file and change the name of the to-be-formatted file every time you want to batch (or botch) a formatting job. Much more useful is a script file that permits you to specify the to-beformatted file as you give the batch command.
To
create such a general script
line in
your
nroff
script file
-ms
$1
file
you should replace the present
with the following
>
line:
$2
>
With the nroff -ms
$1
the following Shell
command sequence
$2 line in your script
file,
to batch
you could use
process the
file
oldfile:
batch
The file oldfile named newfile.
will
script oldfile newfile
®
be formatted and the output placed
Backgrounding a Process
in
a file
297
and $2 are symbols interpreted by the Shell to mean: replace these characters with the first and second arguments that
The
$1
follow the
name
Consider sequence
another
of the script
named
in a file
with
example:
the
the Shell
script,
command line. above Shell command command sequence
batch Shell
in the
file
®
script experience n.exper
batch
named
and place this material into a file named n.exper. (Note: Arguments are discussed in Module Sixteen: Account Management.)
will
(4)
have batch format the
file
experience
you forget the batch job name otherwise check on the status of
Checking the Batch Que:
In case
assigned to your job or wish to your batch job you may enter the following Shell
command:
®
batq
inform you of the status of your batch job (along with any others being processed) whenever you enter the batq Shell
UNIX
will
command. (5)
Removing and then
a Batch Job: Occasionally you
realize that the job
processing.
Jobs
sent,
was not
but
not
(removed from the batch que).
may send
a job to batch
ready for the requested processed, can be cancelled really
you need is the jobname scripl7429) and the following
All
assigned to the batch job (such as
command. To remove command:
the job scripl7429, you would enter the following Shell
batrm In general, to
remove
-j
scripl7429
a batch job
®
you use the following
command
sequence
batrm where jobname
298
is
the
name
Backgrounding a Process
-j
[jobname
®
that batch assigned to
your job.
(6)
Additional
Commands: Two
additional Shell
commands should be
noted: (a)
batman, which summons forth an overweight and poorly conditioned middle-aged man who dresses funny and drives a very unusual car which closely resembles a 1963 Cadillac, and
(b)
robin, which will do
all
that
batman
will
do, but with
much
less self-confidence.
(7)
A
Final Review:
(a)
What
Shell
script file
and sent (b)
What
command sequence would you
named
script
to
have
files
place within the
formatted by nroff -ms
to the line printer?
command
would you use
have the
file
formatted and printed using the batch script script created in question (a)?
file
Shell
line
to
experience
named
Answers:
(a) nroff
-ms
$1
Ipr I
(b)
batch
script experience
Backgrounding a Process
299
Command Summary
Background
(Most Versions With Berkeley Enhancements)
Command &
Function
command sequence in the You are given a Shell prompt.
ground. wait ps
Pause
ps -g
until
Perform '.that
back-
Shell
Place
backgrounded job
is
complete
a process status check.
List processes
belong to you (your terminal).
Perform
process
a
status
check.
List
all
processes that belong to your account.
king] kill -9
g
batch
batq
batrm
Kill
jobs
number #.
process
Nuke named
process
Execute a Shell
number #.
script as a batch job.
Check the batch que.
Remove
(BSD CTRL-Z
named
4. 0,
a job
4. 1, 4.
Stop a process. List
all
from the batch que.
2 Only)
Immediately place into
Shell.
jobs currently stopped or running in the
background. fg
Bring a backgrounded or stopped job into the
foreground.
chkps
-iv
Perform
a
for a process
BSD
prompt command (not available on
process status check. kill
4.2).
MEDICAL CENTER 4150 CLCMENI
Vfc
300
Will
Backgrounding a Process
, .j
;
• coos
Module Eighteen Parts
and Wholes Mr
Introduction
When
we
writing a long or complicated paper,
usually focus
on the
development of only one part at a time. For instance, we may complete the problem statement or summary, and leave the remainder of the text alone. It is a waste of computer resources to have the entire paper formatted and printed whenever we want to examine only the part under construction. Conveniently, UNIX allows edited)
us to both separate parts as well
Additionally,
is
it
several separate
as join
files files
into
make commands
together to
possible to have Shell
files as if
(and
smaller
they were a single
more
easily
larger
files.
function on
file.
Prerequisites This Module
will
be most useful
if
you:
(1)
Have completed Modules One through Ten;
(2)
numbers displayed next to each a file (see the section on setenv EXINIT A ccount Management)
Have
line
when you edit Module Sixteen:
line in
(3)
Have the Shell command Module Sixteen); and
(4)
Have reviewed the process of working with directories cussed in Module Fifteen: The UNIX Directory Structure.
set noclobber in
your
.login file (see
as dis-
301
Objectives Upon completion Create
(1)
files
Add
be able
to:
editing;
from another
text
will
which contain blocks of text drawn from the
you are currently
file
(2)
new
Module you
of this
file
to the
file
you are currently
edit-
ing; (3)
Create a
(4)
Use
file
containing the contents of several
several special Shell characters to perform various Shell
functions
(e.g.
format and print text or compile and execute
programs on several (5)
Use several new or
files;
files
files
with one
command
line);
and
nrojf options to format selected parts of a
file
that are sections of a larger paper.
Procedure The procedural steps in this Module are presented in four sections. The first section reviews a method of breaking a file into separate parts while working in an editor Command Mode. The second section reviews several methods of joining files together from within an editor Command Mode. A new Shell procedure that accomplishes a similar task in a different way is also introduced. The
how you
can use filename expansion characters to perform Shell functions on several files simultaneously. The final section presents nroff Shell command options which can be used in the production of a paper or text. third section illustrates
Separating a File into Component Parts
(1)
Writing Out Text: To write out a block of text from your current file to a new file you need two pieces of information: (1) the line numbers of the first and last lines of the text you want to write out, and (2) a new filename for this material.
As an example suppose you and wish
302
Parts
to
save the
and Wholes
first
are visually editing the
seven
lines
of text
file
letter,
mom
(perhaps as an
introduction to your next bi-annual letter) as a separate titled
mom. start). From
vi
Command Mode
:7,
you would
(to
be
type:
®
w mom. start
7
file
The
lines specified by the line address (7,7) would be copied and written into a new file. The text would then exist in two places— in
you are currently you did not want this text the
file
to delete
(2)
editing, in
your
and
new
in a
mom
letter.
file,
mom. start. If you would need
file
it.
Various forms of the write
command
are
Command
summarized below:
Function
:J,6
w
newfile
Creates newfile copying text lines
:I,6
w
»
Appends copy of
:1,6
w! oldfile
oldfile
lines
Overwrites (replaces) lines
1
1
to 6 to
oldfile
1
to 6
end of
oldfile
with contents of
to 6
Note: These are visual editor commands. To use these from the ex line editor you would drop the colon (:).
commands
Joining Files Together from within an Editor
Two methods exist for editor Command Mode. (1)
(2)
joining
files
»
Writing out Text: The :1,6 w mand reviewed above can be used append it to another.
together while working in an
form of the write comtake part of one file and
oldfile
to
Reading in Text: To read another file into the one you are editing, you need two pieces of information: (1) the name of the file containing the material you wish to copy into your current file, and (2) the location (line number) in your current file after which you want this
new
material to appear.
Parts
and Wholes
303
Suppose you are visual editing a file named letter. mom and wish to send her a copy of the poem you created for your English CompoThis
sition course.
Command Mode
poem
is
contained in the poem
(while editing the
letter.
mom
file.
From
v/
you would type
file)
the following: :8 read
A
copy of the
following line
file
8.
®
poem
poem would be read into letter, mom immediately Once you read in this material it becomes a part
and may be treated like the rest of the text. copy was made of the originating file, and it is left unchanged. of your current
file
Joining Files Together (3)
From
A
the Shell
Copying Two Files to Create a Third: In an earlier Module you met the Shell cat command as one way of viewing files (the fly-by, catch-me-if-you-can approach). Additionally, cat allows you to merge the contents of two or more files. Cat (which stands for concatenate, a word which few people recognize and even fewer can pronounce) is an excellent tool for the task of combining files.
To have
the
poem, letter
file
file
poem combined with
enter the Shell cat
The sequence
poem
to use this
cat
sequence:
mom >
poem, letter
command I
file letter.
command
letter,
[filel
the
[file2\
in general
>
mom
into a
new
is:
[file3\
®
and file2 are the files to be combined, the > is the “larger than” right arrowhead (the redirect symbol), and fileS is
where
filel
name
the
selected for a
new
file
to receive the contents of files
1
Note: The contents of each file is not affected. The original filel and file2 will still exist, while a new filed has been created to hold a copy of both filel and file2.
and
(4)
2.
Beware!!!
Do
not use the
name
of an existing
file
to receive files
concatenated with a single arrow head (as demonstrated in the two examples in Step 3). At best you will be prohibited from executing the command, and at worst the existing file will be lost. If
304
Parts
and Wholes
your
does not contain the Shell following will occur: The cat command’s the
.login
file
following the
one
to cat
file
file
>
of
contents
its
(if
command
action
first it
has any).
into another using a single arrow
the loss of one of the
In this
files.
mand sequence would be
noclobber the is
empty
to
Thus, trying
head
will result in
manner, the following cat com-
disastrous:
cat paperl paper2
>
®
paperl
would first empty the file paperl then copy the empty paperl, leaving you without the first part of
In this instance cat
paper2 into
your paper.
The
cat sequence can be used to concatenate any
number of
files.
Thus, the sequence
>
cat filel file2 filed file4 filed
an enormous
will create
of file
1
®
megafile
{megafile) with copies of the contents
file
to filed.
Combining Two
Files:
It
is
also possible to cat
one
file
onto the end of another, without affecting the second.
command
The
Shell
line
poem
cat
will
directly
append
a
copy of the poem
The double arrowhead tents of the
first
file
» to
is
»
letter,
file at
the end of the
interpreted to
whatever
is
®
mom
in
file letter.
mom.
mean, “add the con-
the second, without
first
deleting the second.”
Due
to the ease with
good idea
which you can combine
down
files,
it
is
often a
and more easily managed files. These smaller files can be edited and revised separately. Whenever you want them re-assembled you can put to break a large file
them back together with the
cat
into smaller
command.
Before proceeding to the following review, log onto your account
and (a)
try the following:
Select
two
files
and cat them together into
Parts
a
new
third
and Wholes
file.
305
(b)
Visually edit the
you
file
command.
tions a divorce, using the :w (c)
From
the Shell add one
»
cat filel
(8)
file
to
command
another with the
line
file2.
Review Number One: Consider the following questions: (a)
What
command would you
v/
your current
file in
a
new
enter to place lines
named
file
1
to 33 of
debby.suel
(b)
What vi command will replace the contents of an existing named schubert with lines 29-200 of your current file?
(c)
What
(d)
What
will
append
onto the end of the
file
vi
magoo (e)
command
vi
current
command
will
read
in
tortie
holding the contents of
(a) :1,33
w
read magoo
debby.sue
(e) cat
File
The following
file
sarah peter
Name
lines are
r/c/c?
the content of the
file
named
file
named
file?
files
(b) :29,200
file
36 through 74 of your
named
command sequence would
Shell
(d) :40
lines
40 of your current
at line
What
Answers:
(1)
and give the two por-
just married
create a
named
w! schubert
new
sarah and
(c)
:36,74
peter^l
y/»rick
> tortie
Expansion Characters
an example
listing
of the filenames in one
of our directories:
modi mod2 mod3 mod4
This group of file
name
mods mod6 mod? mods
Parts
modindex
nmodl nmod2
names
smodl smod2 tmod4 tmod4
tmod4 vi-summary
be used to demonstrate the role of expansion characters in performing various Shell funcfile
tions.
306
mod9
and Wholes
will
9
All these files contain text relating to the Modules.
For instance, modi contains Module One, mod2 contains Module Two, modind contains an index to the Modules, smodl contains a list of words misspelled in Module One, vi-summary is the table of vi commands, and tmod4 contains a section of Module Four written out for testing a complex formatting command sequence. (Not to worry— you won’t be quizzed on this material!)
Bracketed Filenames: Sequential numbers or letters placed within brackets have a special meaning to the Shell. For instance, the Shell will understand the notation mod[l-9] to mean ‘‘act on all files from modi through mod9y You can also bracket individual (non-sequential) filenames. For example, mod[13569] will be interpreted to mean “act on modi, modS, mod5, mod6, and mod9y
Note
that the characters enclosed in brackets are not separated by a
space or
comma, nor
rootname
is
there a space between the brackets and the
(here, mod).
Suppose we wanted to list the files in this directory an entire Module. The Shell command
the
will list
names of
the
®
mod\l-9\
Is
files
that contained
containing entire Modules:
modi mod2 modS mod4 mod5 mod6 mod? modS mod Create four short (for
instance, call
files
them
should be very short. the
using the
same
root in their filenames
rootljoot2, rootS, and root4).
After
all
Each
are created, use the brackets to
file list
files:
Is
where
root
is
ruod#-#l
®
the root you used for your filenames, and
#-#
are
the alphabetical or numerical sequential labels.
Using
file
big deal
it
name expansion itself.
It
is
a
characters with the
good way
to test
what
Parts
Is
command
files will
is
no
be accessed
and Wholes
307
these characters to perform a more dramatic Shell action, however. This is demonstrated in the following step.
when you use
(5)
Format and Line Print
Files:
You
can use a filename expansion
For examformat and print Modules One through
character to sequentially format and print several
should we chose to
ple,
Four we would enter
this Shell
nroff
-ms mod[l-4]
sequence: Ipr
|
®
modi through mod4 would then be formatted and printed
Files
Page numbering
together.
(6)
Command
files.
will
be continuous.
Matching Any Set of Characters Is
would
yield this
list
of
file
(*):
mod*
The command
®
names:
modi modi modS mod4 modS mod6 mod? mod8 mod9 modindex matches any one or more characters. Thus the Shell command Is w* would list all filenames (regardless of length) beginning with the letter m. The Shell command Is *m would list all filenames (regardless of length) ending with the letter m.
The
(7)
*
Matching a Single Character: The command ? modi
will
generate this
list
of
file
®
names:
smodl nmodl
The
?
matches any
single character.
As another example,
the Shell
command Is
308
would
list all
letters
mod.
Parts
modi
®
filenames of four characters length beginning with the
and Wholes
Your
commands introduced you will name the component
effectiveness with the
can be increased
if
in this
Module
of a large
files
project filename 1 filename! filename! filename4 filename! where filename is the same root name (the above examples have used the
word mod). This root name obviously should have specific meaning to you. It could, for example, be the topic of your paper or series of programs.
(8)
Review Number Two: Consider the following questions:
What
(a)
Shell
command sequence
will
format the
files
named
format the
files
named
manic 1, manic!, manic!, and manic4‘l
What
(b)
Shell
command sequence
will
apaper, bpaper, dpaper, and tpaper? (c)
What files will be formatted with mand sequence: nroff city[l-!]
(d)
What
filenames could be listed with the
(e)
What
filenames could be listed with the following
Is
any
all
Is
com-
command?
tree*
command:
Ihead*
Answers: (d)
the following Shell
(a)
nroff manic\l-4]
(b)
nroff \abdt]paper
filenames beginning with the word
character
followed
by
the
word
tree
(e)
head
and
all
(c)
city I
city2 city3
filenames beginning with
finishing
with
any
other
character (s).
Summary
Character
Table of Filename Expansion Characters
Function
*
matches any string of characters
9
matches any single character
[]
matches any characters enclosed
[-]
matches any sequential range of characters
Parts
in
brackets
and Wholes
309
Nrojf Options Several options are available to structure
how
nrojf prepares the
copy of your paper. Options can be used to specify that only part of your paper is to be formatted. For instance, only page 9 would be printed using the following nroff command: final
nrofF -o9
The option (minus
filename
Ipr \
sign, lower case o, 9)
must immediately follow
the nroff command separated by a space.
If
you want
a file to
be given page numbers starting with page ten,
you (-nlO). This is very convenient if the file is actually the second section of a paper and the first nine page section has already been formatted.
another option
is
Each option formats and
inserted into the nroff Shell
is
available to
Command
line
which
The presence of an option is indicated to UNIX by the inclusion of a single minus sign (-) followed immediately by the name of the option. You can use more than prints
your paper.
one option (for instance both the option to limit output to specified pages and the option to halt after every so many pages). However, all options must appear between nroff and the filename, and there must be a space before each minus (-) sign in the command line.
The general
Shell
command
line for indicating a nroff
-option
A
filename
nr
option
is:
®
Table of Selected Nroff Options follows as the last page of this Module. Additional options exist and can be learned through accessing the on-line UNIX Programmer's Manual with the man nroff
command.
310
Parts
and Wholes
Selected Nroff Options
Option -
0#
Function (minus lowercase o) Limits output
#
pages indicated by the pages 3 through 5
.You
5
For example,
provided.
only would be indicated as -o3-
could ask for
the notation
to only those
-o-6
.
all
You
pages up to page 6 with
could ask for
after page 4 with the notation -o4-
case 0
,
4,
all
pages
{minus, lower
minus).
-n#
Numbers
-s#
Halts output every
#
For example, the option -nl4 would cause the first page of your paper to sport page number 14, with the second page as 15. the
first
on
a
#
pages.
.
The option
-si
is
you are producing your finished typewriter-like printer and wish to
useful in nroff
paper
page of text
if
hand feed individual sheets of high quality paper. Output resumes when you press SPACEBAR. Usually -s without an argument is set to be one page.
Parts
and Wholes
311
Module Nineteen Phototypesetting with Troff
Introduction
&
Troff -ms
*
The UNIX troff text processing system interprets formatting commands in files to produce typeset quality output, such as the text of this book. The content of this Module is intended as an introduction to typesetting. For a more detailed examination of the topic consult the Nroffl Troff User's Manual and A Troff Tutorial, available from
Bell Laboratories or
your favorite computer science book-
store.
Prerequisites
You
will
(1)
Have mastered
be able to use
this
Module once you:
the use of formatting instructions (Modules
Five and Nine);
312
(2)
Are acquainted with advanced Shell commands (Module and
(3)
Have
access to a phototypesetter on your
UNIX system.
Six);
3
Objectives Upon completion (1)
Use
troff or
of this Module you should be able troff
basic type size
and
to:
-ms formatting instructions to specify the style desired
when
document;
typesetting a
(2)
Determine type size and style for section headings and words or characters within a document;
(3)
Utilize special troff characters.
specific coo
Mr
Procedure The procedure first
tion
Module contains four
parts.
The
section provides an overview of the troff text formatter.
Sec-
two
describes
section of this
introduces
how
line length.
specific
troff
The
requests.
third
section
keeps track of such variables as point size and The final section considers how to use troff with the troff
-ms macros.
The troff
the
is
troff Text Formatter
a text formatter just as
commands embedded
is
nroff.
The
troff
system interprets
format text for a phototypesetter in the same way that nroff is used to format text for a line printer or terminal. When preparing a document for phototypesetting you employ the same basic formatting instructions that you have already used with nroff to specify paragraphs, spaces, indents, and centered text. In addition to the nroff formatting options you have already used to produce typewriter-like print, the phototypesetter has the ability to vary the size of type {point size), and style of type (fonts: Bold, Roman, and Italic) used in the printing of the formatted text. If
you include
in
a
file
to
troff instructions in a file, that file
nroff to be formatted for a line printer.
In
can
still
be sent to
most cases the
line
accommodate your type changing requests, so nroff simply ignores them. The troff system parallels the nroff system — printer cannot
both are text formatters,
troff
is
not a preprocessor to nroff (as are
and neqn). You do not send a other— you select one or the other. tbl
file
first
to
one and then the
Phototypesetting
3
1
Determining Type Characteristics This
how to determine commands without the
point size and
section will illustrate
first
font of output using troff
use of the -ms
macro package.
(1)
Point Size: The size of the typeface used in printing a document is measured in points. Most of the text in this book is set in 1 1 point type. A point is 1/72 of an inch: thus, six point type is 1/12 inch high, while thirty-six point type is V2 inch high.
Point Sizes Available on
The
point sizes usually available on trojf are:
6 point type: Six point type
7 point type:
is
of
little
Seven point type
8 point type: Eight points
is
is
use, except in advertisements for eye doctors.
not
much
people.
When
for
12345!#$%&
11
point type:
in the
When
.12345!#$%&
12345!#$%&
often used as book type, but
is
hard to read for
course of
in the
human
course of
events,
human
it
becomes necessary
events,
When
in the
human
events course
it
16 point type: The necessary course 12345!#$%&
point
type:
necessary course.
course. 1
4
Human
human events
human events
are
a
12345!#$%&
A
humane, necessary 12345!#$%&
20 point type:
3
became
12345!#$%&
14 point type: The course was a necessary event. 12345!#$%&
18
becomes
it
12345!#$%&
12 point type:
necessary
is
12345#$%&
12345!#$%&
10 point type:
necessary
of an improvement
a dull basketball quarter.
9 point type: Nine point type
many
troff
Phototypesetting
5
22
point
name 24
is
type:
Necessity,
thy
course.
point
human
type:
Are
coarse necessary?
events
12345!#$%& 28 point type: Hopefully not.
12345!#$%&
36 point type: We hope. 12345!#$%& (2)
Unspecified Point Size: The default point size setting for most troff systems is: 9 point type, which
is
the point size of this line; or
10 point type, which was specified for this
line.
Unless you specify a different value, the formatted text
will
be
in
the default point size.
(3)
Specifying Point Size:
To
specify a different point size for
some
portion of text, you must include a troff instruction as the line in
your file immediately preceding the line or lines of text you want formatted in a new point size. For example, if the following lines are included in a file, the .ps 14 will be read as a point size request and the lines which follow will be set in 14 point type.
Phototypesetting
3
1
.ps7^ This is the beginning of text set
at
14 point type.
All text will be printed in 14 point type until a
new
instruction for
some
different point size
is
included.
.ps77
This
the
is
The formatted
of type in the eleven point
first line
size.
typeset output will be:
the beginning of text set at 14 point type. All text will be printed in 14 point type until a
This
is
new
instruction for some different point size is included. This is the first line of type in the eleven point size.
To change
point size you place the
line preceding the text
you want
command
set in
|
.ps
number] as the
number\ point size type.
The change begins with the next line of the file. Whole lines are set in specified type sizes when you use the .ps number\ command.
When
using
Once you you
troff,
commands
point size
specify the point size,
instruct
otherwise.
all
commands.
text will be set in that size until
you
(If
are one-way
find
that
your
point
specifications are mysteriously cancelled at the start of each
paragraph you are probably using the -ms macros. read the -ms macros section of this Module.)
Changing Point Size Within
a Line:
You do
size
new
Be certain
to
not have to limit
yourself to specifying the text point size for entire lines of your
Should you need to make a change within a specific line (or even within a word) you place a \s number] in front of the character in the line where the change is to occur. file.
|
For example, consider: this
When
formatted, this appears this
3
1
6
dis\sl6play of te\sllxt
Phototypesetting
display
as:
of
text.
7
In the previous paragraph
we
played around with the point size in
the words: “within a line or even a word.” The following text line— with embedded commands— was used to format that line: .
.
within a line (or
.
e\s\^ve\s\\n
w/\s11As14/7/\s11/7\s11 a w\^\4o\s\(ird\^\\) you place
(5)
....
Spacing: In music, the notes which are played are essential — but so is the silence between the notes. In setting the type for a printed page, the white space between lines of type is as important as the size of the type used. This book is set with a vertical spacing of 13 point, because the text is 11 point. The vertical spacing of troff output can be changed. For instance, by includVertical
ing the instruction: .vs 9 in the text the amount of space between lines is reduced. The net effect is to put the type close together and make it difficult to read. Usually the vertical spacing is set to be two points larger than the size of the type selected for the text.
To change
the vertical spacing include the .vs
command:
number
Font Selection for Text The phototypesetter usually offers 3 or 4 separate text fonts, such as Times Roman (the standard or default typeface). Times Boldwhich includes Greek letters, mathematical symbols and other gems. As is the case with point size changes, font changes can occur either between lines or within a line (or word). face,
(6)
Times
Italics:
Italic,
plus
a
The rroj^command
special
to
character
change
font
fo/7t to Italics is:
.ft I
When
the
.ft
I
command
is
placed alone on a line in the text,
all
which follow are set in I/^7//c5. The .ft command is a one-way command. It remains in force until a new font specification is lines
entered. Phototypesetting
3
1
8
For instance: It is
when
easy to change fonts
typesetting.
.ft I
This text
be set in Italics. text will be in Italics
will
In fact
all
until a
new
.ft
font
is
selected.
R
After another font specification is
entered,
the text
When
the
file is
be set
font
(7)
set in the
is
new
font.
formatted the resulting output
easy to change fonts
It is
is
command
selected.
typesetting.
In fact all text will be
in Italics.
is
when
is:
This text will
in Italics until
After another font specification
entered, the text
is
set in the
new
a new
command
font.
Boldface: Likewise, to set type in Boldface employ the nroff one-
way command
B
.ft
(8)
Roman: To change
the type used to
following example demonstrates
B Here
the
command
is:
R
.ft
The
Roman,
all
three fonts:
.ft
.ft
feel bold,
I
here .ft
I
Italic,
R
here Roman.
The following formatted sentence Here
3
1
I
feel bold, here Italic,
Phototypesetting
reflects these various
here
Roman.
moods:
9
(9)
Changing Fonts within a Line: To change fonts in the middle of a word or sentence, enter one of the following commands ahead of the characters you want set in a particular type: \fl for Italic,
\fB for Bold, and
\fR for Roman. Place the change font instruction immediately preceding whatever
character
is
to
be set
in the
For instance, the following
new
font.
line in a file
\fBdis\fIease\fR
produces the formatted: disease. To interpret the example, the \fB instructs the formatter to shift to Bold type. It then sets d i s in Bold type. The \fl changes the font to Italics, thus the letters are set in Italics. The last \fR merely resets the font to Roman for whatever follows.
ease
Another example: \fBantidis\fIestablish\fRmentar\fBian\fIism\fR appears
as:
SLntidisestablishmQniansinism
Note:
When
remain
using troff without the -ms macros a font change
in effect until
you specify
a
new
will
font.
does not interpret the nroff command .ul to mean underline the next line of text. Rather, it will Text may be underlined with troff, italicize the next line of text. but it is a somewhat complicated task. Additionally, boxes can be
(10) Underlining
and Boxes:
troff
drawn around words or blocks of text using troff commands. It is also a difficult task. If you have the -ms macros available to you it is much easier to use the boxing and underlining capabilities of If you would like to learn how to draw lines tliat macro package. boxes using Nroffl Troff User 5 Manual.
or
format
troff
commands
alone,
refer
Phototypesetting
to
the
3
1
Determining Page Characteristics (1)
One-Way
troff Requests:
trojf keeps
track
of the specific line
and several other one-way commands which determine the formatting of your text. Every time it starts length,
point
size,
font,
formatting a line of text, troff checks point size, font, line length, etc.
its
memory
for the specified
troff begins with a
“default”
Roman
font etc.)
value for each of the variables (10 point type, which it will use until you specify otherwise.
Troff Requests and Default Values Input
Command
Default
What
it
Governs
.ps
#
10 point
Point size
.ss
#
12/36em
Size of space
character
.ft
F
Roman
Type font used
.pi
#
11 inches
Page length
.po
#
0 inches
Page offset printed
.vs
#
12 point
Vertical spacing
6.5 inches
Line length
.11#
Note on Table of Troff Requests and Default Values: The # symbol is never used in the commands. You substitute an appropriate value or
in
Em’s
inches (3.5i), points (38p), centimeters (11c), picas (22P), (3m) for the #. The F is the appropriate Font: B,R, or I.
When you
are using troff without the -ms macros, the values
any of these variables
you
remain in force until you specify new values. They are ordinary one-way commands.
set for
320
Phototypesetting
will
1
When you 12,
.11
enter a font, point size or line length instruction, (.ps 7.5/, or .ft B) troff stores the information in its memory.
Then, when
checks for the latest instruction as it begins formatting the next line in your file, it finds the new specifications for font, point size or line length. It will then use the new instructions as it formats the line.
(2)
Special
troff
typesetters
is
One
Characters:
their ability to
is
of the
more
useful
of
aspects
print characters not available
on
a
A
sample of some interesting characters available with presented in the following Table of Special Font Characters.
typewriter. troff
troff
Special Font Characters
Input
Character
Input
Character
\(sc
§
\(+-
±
\(cu
U
\(ib
c
\(aa 1
\(ga \(*a
a
\(if
oo
\(*b \(*g
/3
\(is
I
y
\(pt
oc
\(*D \C*H
A
\(es
0
0
\(br 1
\(*s
I
\(rh
wr
\(*W
n
\(lh
“IW
\(ci
o
\(->
\«-
\(ct i
\(ua \(da \(dg
.
\(bu \(14 \(12
• '/4
V2
Note on Table of Special Font Characters: Each of the characters listed can be used by including the input code as a “word'’ in the text where you want the character placed. The point size of these creatures has been changed to 12 to better highlight their appearance.
Phototypesetting
32
For example, the following It is
line in a file:
as easy as \ (*a
produces the following formatted It is
A more the
(3)
complete
list
Nroff! Troff User
5
as easy as
line
f3
y
.
of text:
.
of the special font characters
is
contained
in
Manual.
Obtaining Output: Because the troff system is a text formatter just like the nrojf system, you send a file to the troff formatter (for phototypesetting)
instead of the
You
quality output).
will
file
there
is
a
queuing system
File
Length
command
similar to
filename
at
your location you might use;
-Q
troff
typewriter
(for
to the phototypesetter:
troff
If
nroff formatter
normally use a Shell
the following to send your
(4)
a
\ (*b \ (*g
[filename
Most phototypesetting machines have the files which can be printed. A max-
for Typesetting:
maximum page length imum length of 35 feet a
to
(about 35 pages) is not unusual. Before longer than several, pages, be sure to inquire
sending a file that is about the page length maximum in effect at your location. You may wish to discuss submitting longer jobs or breaking a long file into smaller parts with the typeset operator.
(Note: typeset operators
are in fact real, flesh-and-blood, genuine people.)
Using troff with the -ms Macros to
Determine Type Characteristics
The most important and
-ms is font are handled. specified remains troff
difference between typesetting with troff alone the way the variables such as point size and type
the case with -ms.
322
Phototypesetting
When you
set the point size using troff,
in effect until
you specify
a
new
one.
the size
This
is
not
(1)
'2)
Paragraph Resets: (3 troff
on
you set the point size with a .ps 16 command command) you would expect all of the text from that point If
be set in 16 point type. This is in fact how troff alone will respond. With troff -ms, however, only the text between the .ps instruction and the next paragraph macro will be in the requested to
(16 point) type size.
As soon
as
an -ms paragraph macro
encountered, the point size the -ms number register associis
be reset to the size stipulated in ated with point size. We have noted in several places how the -ms paragraph macros have a lot of unexpected effects written into them (this topic is considered in some detail in Modules Nine: Advanced Formatting and Twenty: Macro Construction). The font, will
type size, and a host of other page management variables are reset to the values in the appropriate number registers every time you
invoke one of the -ms paragraph macros.
For instance,
where the .psl6 point
included
command
size
is
in
the case
in
the
text will be set in 16 point type, until the next paragraph
file,
the
macro
is
encountered, where the point size is reset to the default 10 point (unless you have specified otherwise). «
Every time an -ms paragraph macro is encountered, the formatter checks the number register named PS to see what point size is specified. Unless you have stipulated otherwise, the .nr PS register it
is
set for 10 point type.
sets the type in
After the formatter checks the register,
10 point.
If
you want
a different default point
you must adjust the number register to another value (such as 12 point). This way every time a paragraph calls for resetting the point size the value you set will be read. size,
To set a document number register to
command
as
you must change the point size read “12 point.” To do so include the following in 12 point type
one of the
first lines in
.nr
With
command
number Whenever the paragraph macros this
the
PS
a
file:
12
register
is
now
set at Voint Size 12.
reset the point size they will reset
to the value of 12 point.
Changing
Default
Values:
The
troff
-ms
formatting
process
begins with deciding upon the basic page and type size characteristics of your paper. You then enter instructions for the appropriate
Phototypesetting
323
and place this material at the beginning of the For example, suppose you want lines to be 5 inches long (for file. 7 inch paper with one inch margins) and a 9 inch page length, set in 11 point type with vertical spacing of 13 point. You would enter
number
registers,
the following
commands .nr
.nr .nr
LL PS VS
the top of your
at
file:
5/
11
13
.pi 9/
Note
that the page length control
is
the nroff instruction .pi and
not an -ms number register. There is no -ms number register associated with page length. Page length is a one-way /zro# command which is not reset by -ms paragraph macros.
Summary
-ms Number Registers Default
Function
Register
324
of
LL
Line length of text
6 inches
PO
Page offset
0 inches
FL
Line length of footnotes
5.5 inches
PI
Paragraph indentation
5
spaces
Ql
Indentation of .QP paragraphs
5
spaces
HM
Header margin
1
inch
FM
Footer margin
1
inch
PD
Vertical offset of paragraphs
Iv in nroff 0.3v in troff
PS
Point size of printout
10
VS
Vertical spacing
12
Phototypesetting
(3 )
Boxes Around Text: The -ms macros provide an easy way to box one or more words of text in your file. To box a single word you use the command .BX word with the word placed next to the command. For example, the following text in your file:
being drawn around the word
.BX
school
(perhaps reflecting the school yard.)
box being drawn around the word
will result in a
\school\
(perhaps
reflecting the school yard).
To box two
more words— or even entire paragraphs— you use the .B1 and .B2 commands. Place the text block within the commands .B1 (to begin the box) and .B2 (to end the box). The -ms macros
will
or
respond with a box of
text.
.B1 These will
lines
of text
in
a file
be boxed.
Note that the box commands precede and follow the to- be -boxed text.
.B2
These
be boxed. Note that the box precede and follow the to-be-boxed text.
(4)
lines of text in a file will
Underlining Text: The -ms macro package
will
commands
allow you to under-
You must individually underline each word, however. The command .UL word\ will underline one word at a time. To underline several words, you need to use the .UL word\ command line
text.
|
|
for each word.
This means that
.UL each .UL word .UL must .UL be .UL individually .UL underlined. Phototypesetting
325
The above display each word must be
illustrates the fact that,
with the -ms macros,
individually underlined.
This completes the introduction to phototypesetting with troff and Additional information is available in the Nroffl Troff troff-ms. User's Manual dind A Troff Tutorial, produced by Bell Labs.
The developer
326
Phototypesetting
for typesetting.
Module Twenty
•
Macro Construction wr-coog
Introduction In
Module Five you used
nroff requests) to instruct
Module Nine described macro
nrojf formatting
commands
(also called
how to format your text file. -ms macro commands (also referred to
nrojf about
the
which allow you
format your work with greater ease than is possible with nroff requests alone. Module Nineteen introduced the requests used to specify how troff should format more eloquent output for production on the phototypesetter. This Module illustrates how the -ms macros have been constructed from nroff requests. This information will start you on the road to understanding how to build your own macros to meet your indivias
calls)
to
dual needs.
Prerequisites Before starting
this
Module you should be
able to:
(1)
Use nroff requests (Module Five) and the (Module Nine) to have your file formatted; and
(2)
Use
(Module Nineteen)
-ms
macros
perform fancy formatting feats (suggested only for section two of this Module). troff requests
to
327
Objectives After completing this (1)
Module you should be
able to:
Describe the differences between an nroff request and a macro call;
(2)
Access macros and macro packages
(3)
Build basic macros tailored to
(4)
fit
in several different
your
own
ways;
needs; and
Determine the compatibility of nroff requests, the -ms macros and your own home-made macros based on the internal workings of the -ms macro package.
Procedure This procedure section is divided into five parts. The first section presents several simple home-made macros and demonstrates how macros are built by bundling nroff requests. The second section describes how UNIX accesses macros. The workings of a fairly complex macro are illustrated in the third section. The fourth section
examines how nroff
when commands inside a simplified
how
it
fills
are followed.
text
The
lines
and determines exactly
final section
presents a look
segment of the -ms macro package
to illustrate
works.
An
Important Review
an instruction to the nroff formatter about how your file is to be formatted. Macros (like those that make up the -ms macro package) are collections or bundles of nroff requests that can be called into action (hence the term macro call) with a single command (such as .PP). The -ms macro package is a set of macros designed to work together when used to format a file. Recall that an nroff request (such as .ul)
is
The -ms macros were created to make your formatting tasks easier. There may be instances, however, where your needs are not met by these pre-packaged formatting commands. The ability to create
own macros which
then perform complex, repetitious, or boring formatting tasks (and thereby saving you time and energy) can be quite helpful.
your
328
will
Macro Construction
Home-Made Macros (1)
Log onto your UNIX account.
(2)
When
the Shell prompt appears type: vi
This
new
{context)
file
will
®
context
be
the
practice
file
used
in
this
Module’s exercises. (3)
(4)
Enter three paragraphs of text into your new file. Make each paragraph 3 or 4 sentences in length, and write about anything you wish. Begin each new paragraph with the appropriate -ms paragraph macro call (.IP, .LP, .PP, .QP, or .XP).
A
Centered Heading Using nroff Requests: How about placing a centered title above the material in paragraph two? This is accomplished with the following four lines of text.
Place these four lines after paragraph one and before the para-
graph formatting macro for paragraph two: .sp .ce .ul
Paragraph Two
The above four
lines of text will space
the words comprising the centered
down, center, and underline
title.
In this case the centered
be Paragraph Two. If you want some other the line Paragraph Two with whatever text you want. title
will
When
(5)
all
four lines are entered, use the
write the buffer version of the
Enter the Shell
(6)
command nroff
-ms
file
and return
title,
replace
ZZ commands
to
to the Shell.
line
context
\
page
®
formatted version of context displayed on the screen. Paragraph two should appear with a centered title above it.
to
have
a
Macro Construction
329
The four lines necessary to create modest amount of work on your
the centered
title
required only a
you had a file which required 26 centered titles? One option would be to retype (or yank and put) the four lines all 26 times— a somewhat tedious task. This is where a home-made macro can do some of the work part.
But what
if
for you.
(7)
Your
Home-Made Macro:
First
Move with the
and open a new line above At the top of your file, enter the following
to the first line in
O
command.
your
file
6 lines exactly as they appear here:
.de
Ct
.sp
.ne 4.1v .ce .ul
These
six lines are interpreted as follows:
.de Ct
Indicates to nroff that the following lines,
up
to the next
two dots (..), define (.de — define) the macro Ct. The Ct was chosen to remind us of Cen-
line containing only
tered
^
t itle.
down one
.sp
Spaces
.ne 4.1v
Requests nroff to make sure that at least four lines are available on this page: if not go on to the next page;
.ce
Centers the next
.ul
Underlines the next
Concludes
These
line
of text;
line
of text; finally
macro.
from .de Cmo taken together define the macro whenever you have need of a centered title in this file
six lines
Now
Ct.
this
line;
.
.
macro .Ct can be used.
the
The
you would any other -ms macro call. The Ct macro calls for the centering and underlining of the next line in the file. Thus you first enter the macro call, then on the next line enter the text for a centered title.
330
.Ct
is
entered into a
Macro Construction
file
just as
(8)
Return
your context
to
of nrojf requests
entered them
in
At the moment you have
file.
preceding the
Procedure Step
text
.ce,
text for the centered
title.
and
centered
.ul
first
by
(You
two paragraphs and delete
which are located just before the
In place of those nrojf requests enter the a line
titles.
4.)
Position the cursor between the
the nrojf requests .sp,
for
a series
new macro
call
.Ct
on
itself.
Repeat
procedure for each centered title you placed in the file. Your file should now contain the 6 lines defining the Ct macro followed by the three paragraphs originally written. Additionally there should be one or more .Ct macro calls preceding the text for centered titles. For instance, if the centered titles are Paragraph Two and Paragraph Three, your input file should appear
something
this
like the following:
Macro Definitions .LP
Some
text that will be paragraph one.
.Ct (9)
Paragraph Two
.PP
Some
text that will be another paragraph.
.Ct (10)
Paragraph Three
More
When
text.
finished, write this
file
and return
to the Shell (with the
ZZ command). To view
the formatting effects of your nroff
-ms
context
new macro
page
type:
®
As the formatted version of your file is displayed on the screen note how the Ct macro acted on your paper (automatically spaced down, centered, and underlined each centered title). (Note: Some terminals are unable to properly display underlining on the screen. Your printed text can be appropriately underlined, even though on the screen
it
may appear
incorrect.)
Macro Construction
331
(11)
How
Uses Macros to Format: The process of employing macro definition and a subsequent macro call is quite complex: nroff
(a)
The macro
(b)
When
be read by nroff\
with
comprise the macro into the
file at
The
the
Your
macro
the
same
the
make up
nroff
your
requests
file
it
which
location;
the
new macro.
text then reflects the effects of this
Nroff
in
macro and have been interpreted and followed; and
nroff requests (that
macro
In the case of the Ct (a)
first
call
replaces
inserted) are (d)
must
nroff encounters a call for this
internally
(c)
definition
a
this process translates as:
-
read the 6 lines defining the Ct macro (which the top of the file) and store this information
will first
are located at for later use; (b)
When prets
it
macro (c)
Then
macro
nroff encounters a .Ct to
mean
definition
in
call
your
file
it
inter-
“insert the nroff requests located inside the
named Ct
nroff spaces
at this
down one
point;”
vertical line (.sp),
makes
certain
that there are 4.1 vertical spaces available (.ne), centers (.ce)
(d)
and underlines
(.ul) the
The very next
line in
appears as a centered
next input line in your
your
(following the .Ct
file
first
anywhere (12)
that a
macro defined
in that file,
macro
call)
home-made macro. Obvi-
ously macros of this type can be of great assistance.
remember
and voila
title.
You have completed and used your to
file;
at
the start of a
but only within that one
Naming Home-Made Macros: We named
It is
file
important
can be used
file.
macro Ct employing one upper case and one lower case letter. This “mixed case” convention is followed in naming home-made macros to avoid confusion with -ms (all upper case) and nroff (all lower case) formatting commands.
Macro
the
your Ct macro You could re-type the 6 definition lines which in several files? make up the Ct macro at the top of each file (a tedious and somewhat tacky choice) or you could create a permanent macro file and
(13) Creating a
332
File:
Macro Construction
Suppose you needed
to use
place the 6 lines in
with whatever
any
effective in
From
file
This macro
can then be processed along you are formatting, so that your macros will be
file
it.
you
select.
the Shell type:
file
mac
will
be the
name
®
mac
vi
The
file
of your
new
Insert the six lines comprising the Ct
your mac
for macxos.
file
macro
definition into
file:
.de Ct
.sp
.ne 4.1v .ce .ul
When
finished, write this
new
and return
file
to the Shell with the
ZZ command. up your context
Call
macro
file
Before investigating
(14)
for visual editing
definition contained in the
finished, write the
the
file
mac
file, it
and return
how
file.
When
to the Shell.
macros located examine how -ms works.
in
macro package you place calls .PP) in the body of your paper.
to
to
In using the -ms
various -ms macros (such as
What causes
lines of the
to get nroff to use the
would be useful
The -ms Macros:
first six
and remove the Ct
nroff to read the -ms
macro
definitions [analogous to
Step 11(a) above]?
This reading occurs before the process of formatting your paper is begun, and is initiated with the Shell com-
mand after
line
the
(nroff
-ms filename
command
nroff and
Ipr). \
before
By placing the -ms option the
name
of the
to-be-
you cause nroff to read the -ms macro package definitions before it reads your file. The -ms macro package file contains the definitions of each of the -ms macros (for instance PP). This information permits nroff to interpret the -ms macro calls placed within the body of your file. formatted
file
•
Macro Construction
333
To
ask UNIX to read your
how -ms
similar to
mac
read by the formatter before the
is
command
Enter the Shell
nroff
The
mac
file
file is
read.
line:
mac
-ms
How
do you before formatting contextl In a way
bring our discussion back to the current situation:
context
\
®
page
now
be read after the -ms macro package and before the file context. In the above command line nroff reads the file containing the -ms macros, then it reads the macro definition contained in your mac file. While formatting the file context, nroff file
will
refers to the definition of
when each macro
is
Ct as well as other -ms macro definitions
called for in the trailing context
file.
Did your macro definition and call work? If not, check sure you entered the commands exactly as demonstrated. (15)
to
make
Quote Paragraphs: The -ms quote paragraph call .QP brings the left and right margins in, but leaves the text spacing unchanged. Writers usually prefer to have quoted paragraphs single spaced. The following macro will do just that.
Append .de
the following 11 lines to the end of your
mac
file:
Qs
.sp .Is
.in .11
1
-\-10m
-10m
• •
.de .Is
.in .11
Qe 2
Y assumes
double spacing
is
wanted
—10m -\-10m
• •
These 1 1 lines define two quote paragraph macros and demonstrate how one-way macros are defined. The Qs {Quote start) macro will:
334
(a)
Skip one space (.sp);
(b)
Set the line spacing to single space (.Is 7); and
(c)
move
both the
in ten
ems
(an
left
em
Macro Construction
and right margins (.11 —10m) spacing unit used by nroff and troff).
(.in is
a
-\-10m)
The Qe (Quote end) macro
needed
is
to reset the line spacing to
double spacing and to restore the original left and right margins. You may find use for these two modest macros in simplifying your formatting chores. (16)
Using the Quote Paragraph Macro: Call up your context file for visual editing. With the following two additions, the second paragraph
appear formatted as a quote paragraph:
will
(a)
Replace the -ms paragraph macro used to format the second paragraph with a .Qs (place a .Qs before the first line of text in the second paragraph); and
(b)
Place a .Qe after the
(17) last
of that paragraph
line
— before
the
next paragraph macro.
Now
employ the
Shell
command
-ms
nroflf
mac
line:
page
context
Your text file will be formatted and you can new quote paragraph macro.
®
see the effects of the
Accessing Macros Thus
you have been introduced
far
two methods of accessing
to
macros: (a)
You
can place the macro definitions within the
done
in the earliest exercises in this
the procedure of choice in that are only used in (b)
one
file
was
(as
Module). This method is the case of special purpose macros
text
file;
or
You
can place the macro definitions in a separate file and have that file read during the nroff process (for example, page). This second method is most siminroff mac context |
lar to
A
third
how
the -ms macros are accessed.
method of
accessing
your
own macros
now
will
be
presented. (1)
The Nroff Source Command:
If
you regularly employ
designed macro package, there is an nroff request that save you time and impress your friends.
a
self-
will
both
Macro Construction
335
up your context
Call
as the first line of the
file
for visual editing.
file
mac
.so
where
mac
definitions.
name This command is
the
process— to place the mac (to source in the
mac
Insert the following
of
the
file).
nroff—^wnng the formatting
instructs
file at It
the beginning of your context
in the
file
Now
have your text
mac
include
-ms
context
formatted.
file
in the Shell
by nroff because of the context
this line
command
use the
nroff
to
file
has the identical action as naming the
nroffShtW command line. After inserting write the context file and return to the Shell.
mac
macro
your
containing
file
command
\
®
page
Notice
how you do
not need to
Your mac file will be read source command, located on line 1 of your line.
file.
Rethink — Remember Time: (a)
What nroff command named Xy ?
(b)
What
command
indicates the beginning of a
indicates
the
of
conclusion
new macro macro
a
definition?
Where would
(c)
the definition for a macro be placed to have
available only for use
(d)
anywhere
a set of
rnacros.
What
Shell
named
is
in a file
a file
david.waasl
named mynamed lillian
home-made macros and
What formatting command— located file
file
command would have
file— will have nroff access the
(f)
the
home-made macros
Suppose
formatted using only these
(e)
in
macro
as
the
it
first
nroffl
line
of a
definitions located in the
named my-macrosl
Suppose the
named
.so
kenny-Joyce.
kenny-joyce
file
command is the first line of a What Shell command line will have
my-macros
formatted using only the my-macros and
Macro Construction
file
the
nroff^.
Answers: (d) nroff
(a) .de
X}’
my-macros
(b)
lillian
••
(c) at
beginning of
my-macros
(e) .so
file
david.waas
(f) nroflF
kenny-joyce
The Workings of a Complex Macro Arguments Within Macros: Frankly, it is very easy arguments with macros— but avoid it. They always win. (1)
The following macro in
your
file
for
cally label the
you
will
leave a specified
amount of blank space
to insert a figure or diagram.
space Figure
1
the
first
time the macro
antics are possible because
automati-
will
It
ure 2 the second time, and Figure 3 the third time
Such high powered
to get into
it
is
used, Fig-
is
used,
etc.
macros accept argu-
ments.
Append .nr .de
the following 8 line Figure macro to your
mac
file:
Fg 0 Fg
.ul
.ce
Fg \\n{Fg-Fl Figure \\n{Fg .nr
.sp \\$1
When
finished, use the
this file
and return
ZZ command
to the Shell.
to save the
changes made
to
gem
be
(The workings of
this
will
explained shortly).
(2)
To
leave space for two figures in your text, append these 12 lines
(The commands should be entered exactly as are presented here; the text can be changed to suit your to the
end of your context
file.
interests):
.sp
The following pgure illustrates the of practice time on learning.
effect
.Fg 3.5i Clearly,
the
when a person
commands
they are
actually practices
remembered more
easily than
Macro Construction
337
when
the person attempts to just read the book.
.sp 2
If the preceding figure didn V convince you, this
one certainly
will.
.Fg 2.5i
which concludes
Use the usual
our argument.
(or precludes ?)
ZZ command
to write the
file
and return
to the
Shell.
(3) file,
Because the .so mac command you can enter the command: nrofF
-ms
the
is
context
first line
context
in the
page
\
your figure macros. When you feel comfortable using these macros read on and discover why they work.
Examine the
results of
Behind the Lines in the Macro War: The remainder of this Module explores aspects of nroff and macro construction which are rather technical.
Freak not— it
is
not necessary to master every
how macros work until you begin seriously writing your own macros. For now you should read through it to obtain an overview of how the break, no break, backslash, and title line commands work. You can give this material a second detail in the explanations of
(and third) reading later on.
(4)
Interpreting the .Fg Macro: to the role of
number
You were
registers in the
introduced in Module Nine
formatting process.
The -ms
macros use number registers to control overall formatting tasks such as line length and page offset. Number registers are also used internally, by nroff, to keep track of many things including the As you read the following line-by-line current page number. description of the .Fg macro note how number registers were used.
The process of using macros begins with and then including the definitions either text
file
nroff
or in a separate
file
must read the macro
the
first
internal
338
line.
All definitions of
memory.
Also
Macro Construction
at
definitions before
any
file
line
i
i
the beginning of the
it
by
In either case
reads the text line, starting
macros are transferred
commands
i
creating their definitions
consisting of macros.
In the initial reading, nroff reads the
\
not
inside
the
to
file.
from nroff
macro
i
'
i
definition are
number Later,
performed
in this initial pass
through.
(For instance,
registers can be set to specific values in this first reading.)
when
macros
nroffxs formatting the text, nroff will find calls for the in the text file (for instance .Fg 3.5i). At that point nrojf
locates the definition of the
macro
in
its
memory and
executes
those requests.
Annotation of Requests .nr
Fg 0
A number
appear
Fg Macro
named Fg and is set to This number register request
register
the value zero.
must
in the
is
outside
the
(which begins with the next that the
number
register
before the macro
is
macro
definition .de Fg), so
line:
Fg can be
set to zero
called during formatting.
read (and executed) by nroff only during Because nroff's first pass through the macro.
It
is
this
number
register
command
is
located out-
macro definition, it is not read when the macro is called (with the .Fg command) during the actual formatting of your When Fg is called, only the lines paper. between the .de Fg and the trailing .. are read. side
.de
Fg
of the
This begins the definition of the Fg macro.
.ul
Underline the next
.ce
Center the next
.nr
Fg \\n{FgFl
line of text.
line of text.
Fg translates as “set the number register Fg to whatever value follows the space character in this line.” If this line were .nr Fg 5, the number register would be set to However, what follows the Fg is not a 5. number but directions as to where the formatter can locate the needed number. (We are beginning a short game of Hide and Go Seek.)
The
.nr
The \\n( means
that the value the formatter
needs (to set the Fg number register) is not here either, but is stored in a number register, whose name follows these symbols.
Macro Construction
339
Fg + 1 identifies the number register, (namely itself, Fg) but the +1 stipulates ‘'read the present value in Fg, then add 1 to it.” Thus, whatever value is in Fg will be increased by one unit and then put back in Fg. Thus the numbers ascribed to each figure by the Fg macro will advance by one each time the macro
The
is
Figure \\n(Fg
called.
When
Fg macro call is located in your file, the word Figure and the number held in the Fg register are printed. The \\n(Fg prints the current value of the Fg register (7 the first time the macro is called, 2 the second time, etc.). Because the two prior requests in the macro definition (.ce and .ul) have been read, this line is centered and underlined (Italics in the
first
This line results in Figure
troff).
time the macro
called. Figure
is
1
the
first
2 the second,
etc.
.sp \\$1
This
last line
of the macro definition provides
the space for the figure in the formatted output.
If this line
always be
left
were .sp
Instead, \\$1 space
is
five inches
would
output for the figure.
the
in
5/,
called for.
When
nroff
reads a request followed by a \\$1 it interprets this to mean “insert the first argument to the
macro
call
of space the .Fg
here.”
You determined
when you
macro
call.
.Fg 3.5 for Figure
the
amount
attached the argument to
You
entered the
command
your file [in step (2)] and the resulting Figure 1 had 3.5 inches of 1
in
space in the output.
The
the argument for the .Fg
macro call. That argument is read into the macro because of the \\$1 request on this line. When you put the macro call for the figure macro in your text file [step (2)] you followed the first call with 3.5i and the second call with 2.5i. Each time nroff processes the macro call (whenever it appears in your file) it inserts the number you
Macro Construction
3.5
is
entered following the Fg in place of the \\$1. This gives you 3.5 inches of blank space for the first figure and 2.5 inches of space for the second.
Ends the
(5)
The Mystery
definition of the .Fg macro.
Double Backslashes: The characters that cause nroff to read in the first argument to your .Fg macro are $1. Note that references to both number registers (WnfF^) and arguments (\\$1) within an nroff request begin with two backslashes (\\ ). Why is one needed, let alone two?? of
the
To the nroff command interpreter, the \ The purpose of the nroff escape character
wh at the
I
fol lows as a
ESC key I
command and
nroff comes to a \ it characters as a command, it
the escape character.
is
to tell nroff to accept
not text.
(This
is
the
same
role
plays within the visual editor.)
When
which
is
removes
it
and interprets the following
unless the next character
is
also a \,
then leaves alone.
Commands
which have double backslashes are contained within macro definitions. If only one backslash were used, nroff would remove the backslash, interpret the command that followed and act upon it. As a result, nroff would interpret and try to act on the commands inside macros during its first pass through the macro — although in this first pass nroff is to only read the macro definitions
and store them
for use
when
called.
The second backslash is necessary to “conceal” the rest of request from nroff when the macro definition is first read.
the
For example, without the two backslashes in the line .sp \\$1, nroff would immediately act on the instructions. It would expect an argument to appear, though none would be provided. After all, this is nroff's first exposure to the macro, and is intended only to inform nroff of the existence of the macros and their definitions. You do not want nroff to act on the macro Instructions until after During the first reading it begins formatting the text of your file. of the macro
file
nroff
removes the
first \,
then finding another.
Macro Construction
341
moves on cute
(as
it
backslash the
quietly.
the
result
when
nroff returns to the
of a macro
call)
there will
This time through the backslash
left.
command
Later
is
Summary: The
macro
to exe-
be only one
is
removed, and
to
“conceal” the
exposed and followed.
role of the
second backslash
is
of the request from nroff when the macro definition is first read. This first backslash is “peeled off” at the time the macro is rest
initially
read so that the rest of the request can be interpreted and
acted on
when
the macro
is
actually
used.
This leaves a single
command when
backslash to identify this as a
the
macro
call
is
processed during the formatting of your paper.
(6)
A
Note of Caution: The macros introduced in this Module were carefully designed to work with the -ms macro package. Be aware that not all home-made macros will be compatible with the -ms macro package. The source of most problems is the way -ms uses internal number registers. The -ms paragraph macros reset various number register values in a multitude of strange ways. Unless you understand and anticipate their actions, your macros may not work as you expect. For example, the .RS macro trols
the
number
left
indent level.
call
resets a
number
All -ms paragraph
i
i
register that con-
macros check
this
determine the current indent level. This is why you can include one or more paragraphs between the .RS and the .RE and each paragraph will appear appropriately positioned on the page. Your home-made paragraph macros — unless given explicit instructions — do not access this register. Thus, they will be unaffected by a preceding .RS command. This means your homemade paragraph macro may not format text with the desired left register to
:
i
i
margin.
you want to use home-made macros in conjunction with the -ms macros (or whatever macro package you employ) it is advisable to test the compatibility of your home-made macros with the macro package you use. This notion of compatibility will become clearer once you complete the final sections of this Module. If
342
Macro Construction
\
i
i
A Look (1)
(2)
The Break Command: nroff starts a new line you might want
It is
at
Inside Nroff
sometimes necessary
some
point in your text.
produce output something
to
to
make
sure that
For example,
like:
For most people, nroff can be very frustrating. Although a very powerful formatter, it is difficult to learn for the
it
is
fol-
lowing reasons: (a)
There
is
a large variety of very specific
commands which
each other in strange ways, and (b) The effects of commands are not immediately observable.
affect
The above output was produced with
the following input lines:
For most people, ./
nroff
can be very frustrating. Although it is a very powerful formatter, it is
difficult to learn
for the following reasons: .br
(a) There
is
a large variety
of very specific commands which affect each other in strange ways, and .br (b)
The
effects
of commands are
not immediately observable.
The hxeak (.br) command requests that a new output line be started. The last line of text before the break appears is entered but not adjusted to meet the right margin. Even though there is in the output line for more words, the line will be still room printed as it is. The text will not be adjusted to stretch from the the right margin by adding additional spaces.
left to
Note
that a .sp
command
will
accomplish the same effect while
also skipping a vertical space.
Filling filling
is
and the Break Function: As mentioned
in
Module
Five,
the process of joining short input lines together to create
output lines of approximately equal length. form this function?
How
does nroff per-
Macro Construction
343
(a)
Starting with the
and places (b)
nroff collects this line
file,
memory.
in its internal
many
of the words from this input line as Usually all of the words will fit onto the first output line. from the first input line will fit on the first output line
Next nroff enters
we
(because (c)
it
text line in a
first
as
type short lines, right?!).
all
Nroff then reads the next input line. If it contains text, nroff uses the text to continue filling the first output line. Soon the At this first output line contains as many words as can fit. point there are frequently several words lected input line left over. in the current
(d)
(e)
line.
next input
line.
If this line
contains
memory, and
more
no room
is
last
to include
col-
them
It is full.
In this case, nroff stores these
in (f)
output
There
from the
text,
words
it
is
in
memory and
added
to the
reads the
words already
nroff starts filling the next output line.
however, nroff encounters a format command as the next input line it must decide what to do with the text left over from the last input line (or lines) which it has stored in its If,
memory. There are two (i)
(ii)
possibilities.
Nroff could enter the remaining text on the next output line and then perform the command function (i.e. if nroff encounters the .sp command, it could print the remaining text, then skip a line), or
Nroff could first perform the command function (enter a blank line), while holding the remaining text in its memory. Then after performing the command, nroff could collect the next text input line, add it to the text it had remaining when it encountered the .sp, and begin the process of filling the next output line.
The possibility noted as (i) above is what actually happens when nroff encounters a command that causes a break to occur. The remaining text is entered as an output line, then the .sp
is
executed.
the .bp, .sp,
.ce,
.in, .ti,
.nf,
and
cause a momentary break in the
The second choice
Macro Construction
(ii)
command itself, commands all normally
In addition to the .br
is
the
.fi
filling
process to occur.
“no break”
condition.
(3)
The Two Control Characters: In Module Five you were informed that the dot (.) character— when it is the first character on a linelets
nroffknov^ that a
The dot
control character.
The other
characters.
command is
follows.
actually
In this role the dot
a
one of two possible control
control character
is
the apostrophe C).
apostrophe is the no break control character. cause a break, while 'sp will not. (4)
is
As
The
a result, .sp will
A
Demonstration of Breaking and Filling: The nroff requests bp, sp, ce, in, ti, nf, and fi can all be preceded by the apostrophe as well as the dot. With the control character they do not cause a break. Consider the following twelve input lines. They will be formatted twice — first with the sp request using the usual dot (.) control character, and a second time with the no break character: '
O
What
IS
a break?
These examples should help this
that
illustrate
nrofffunction is
often confusing,
but also very important. .sp
Let 5
a few
of the break function, using the old familiar space command fsp j try
tests
with both the break to
and no break
control characters
see what happens.
This input produces the following output:
What
is
a break?
function that
is
These examples should help
illustrate this
nroff
often confusing, but also very important.
of the break function, using the old familiar space command fspj with both the break and no break control characters to see what happens. Let's try a
The same
few
tests
input, but with the .sp replaced by a 'sp, produces a
different output:
What
is
a break?
function that
a few
mand to
is
These examples should help
illustrate this
often confusing, but also very important.
nroff
Let's try
of the break function, using the old familiar space comf sp J with both the break and no break control characters
tests
see what happens.
Macro Construction
345
Note that the use of a the word important (the
.sp causes the space to occur directly after
word preceding the command) and, in addition, causes a break in the filling process. The 'sp, however, does not cause a break in the filling process. Nroff filled and justified the first output line and had the words function that is often confusing, but also very important in memory, when it encountered the 'sp nroff request. Because 'sp is a no break command the words in memory were not entered as a partial line but kept in memory as the space (blank line) was entered. After the blank line was in place nroff collected another input line, added the text to the words already held in memory, and constructed the next very important output line. Thus the words function that is .. last
.
begin the next line after the space. (5)
The nroff Three Part
Title Line Request:
the formatter include three part
title
lines in a
the following input line was included in a .tl
The
'
For example,
if
be:
Wogowon
The following
nroff request, placed
duce a three part
Word
Butler
anywhere
in
your
file will
pro-
title line:
r Word 2' Word 3'
be placed on the left. Word 2 placed against the right margin.
Word
file.
file:
upon formatting would
Winston
'
possible to have
is
Winston' Wogowon' Butler'
resulting output
.tl
It
1 will
The four apostrophes
separate the
in the center
title line
and Word 3
into three parts.
What
two apostrophes will be placed on the left. The string of characters between the second and third apostrophes will be placed in the center, and text entered between the third and forth apostrophes will be formatted on the right. ever
is
placed between the
A Look (1)
Top and Bottom the (.pi)
Macro
Inside Several -ms Like
Macros
Module Five you were introduced to page length command. At that time you were informed
that although
346
first
of Page: In
you can specify the page length, nroff \s unable
Construction
to
do
anything
the top and bottom of pages without the help of macModule Nine introduced the .nr and .nr number at
HM
ros.
registers
RF
.ds
and the
.ds
LH,
string definitions.
CH, .ds RH, .ds LF, .ds CF and These commands affect various registers .ds
and can be used with the -ms macros margins and title lines. This
is
to
produce header and footer
way headers and footers operate. an example of how you can instruct nroff to create top
section
Included
FM
introduces
the
and bottom margins (complete with title lines) using your own home-made macros. This example also illustrates how string definitions can be used with your own macros in much the same way as they are used with the -ms macros.
(
2)
Begin a new practice file which we will call pages. This file needs to contain at least 100 lines of text, with no formatting commands. If you do not have such a file you can copy one of your existing
files,
increase
its
remove
all
commands from it, and finally copy $ command. Once the file
formatting
length using the :1,$
100 lines long and void of formatting commands, you should enter the twelve lines comprising the he and fo macros is
at
least
exactly as they appear here at the top of the file. ter
used
in line six ('sp |7/) is
The following
[Note; the
charac|
the pipe character.]
nroff requests will (a) Define the page header
macro
he to include space and a three part title line, (b) Define the page footer macro fo to include a space and a three part title line, and (c) Set a “trap” to call the header macro into action at the top of each page and the footer at the bottom.
.wh 0 he .wh -li fo .de he
'sp .51
A\'\\*(\h'\\*(ch'\V(rh' sp
|li
.de fo
'sp .51
.tl'WMlf'WMcf'WMrf' bp
Macro Construction
347
These twelve
lines will
.wh 0 he
have the following meaning
This request
nroff to perform a
tells
when (when)
specific function
on
ticular position
to nroff.
a page
(sometimes called setting
The .wh request arguments. The
is
a par-
reached
a trap).
used with two
is
first
argument
(in
this case 0) indicates the position
a page
(The
where nroff is supposed 0 position
to act.
of the
top
the
is
The second argument must be a call for a macro page.)
specifies
what
do
to
at
on
(he)
that
that position
(when the 0 position on each page is reached). The fact that this second argument must be a macro call— and
—
not an nroff request is significant;it is the reason why you cannot instruct nroff about what to
do
at
the top and
bottom of pages without using macros.
.wh
-7/
fo
This call
.wh request the fo
(footer)
page position. The
instructs
macro
nroff to
the -7/
at
-7/ position
is
one
inch up from the bottom of the page.
Any (-)
position specified with a
number
is
a
relative
based on the page length.
minus
position
The
-7/
on a three inch page is two inches from the top, while on a ten inch page this position would be nine inches from the top. position
.de he
This
begins
the
definition
of
the
header macro that will be called at the top of every page. This automatic calling was specified with the .wh 0 he request.
348
Macro Construction
s
'sp .5/
The
first
action of the header
macro
be to space down one half of an inch. The no break control character is used so that text remaining in
will
nroff"
internal
printed
after
memory
be
will
the 'sp action
is
per-
formed, not before. Thus it avoids having a break before the top of each
new
The
page.
text
is
carried
into
the body of the next page. .tl
'\\*ilh'\\*(ch'\\*irh'
This
Because this title line is included in a header macro that is called at the top of every page it will produce the same header on all is
a title line.
pages.
To make
macro useful beyond
this
a
single paper the particular phrases to
be placed in each position have not been specified. Instead, characters such as \\*(lh in the left title position are included. The \\*( informs nroff that: (a)
A
two
string follows (b)
name
character
Somewhere
a
(.//?);
else
the
in
two character string (such as .ds
for
Ih
is
file
the
defined
Authors' Pets)\
and (c)
The two be
character
replaced
replace the
1
7/
This
A?
by
(Authors'
definition
'sp
name should the
string
Pets
will
//?).
request again uses the no
break control character to avoid causing a break before the top of each new page. The symbol can be used with any nroff lequQSi that includes a |
numeric value.
It
is
known
as
the
absolute position indicator and, in this
Macro Construction
349
case, informs nroff to space
down
to
the position one inch from the top of
page
the
one inch from
down
of spacing
(instead
the current position
on
the page).
This
..
the
indicates
end
of
the
he
definition. .de fo
This line begins the definition of the iooter macro which, in response to the .wh -li fo request, will be called whenever nroff reaches a position
one inch from the bottom of every page.
'sp
.5/
The
first
down
space
'\\*(lfA\*(cf'\\*(rf'
.tl
A
action of the fo a half of
title line will
macro
is
to
^
an inch.
be placed
at this posi-
on the page. The title line will consist of up to three parts: a left, To be center, and right footer. included in one of its three fields a string of characters must be specified as a string definition. Such string tion
definitions
macro bp
The is
are
placed following the
definitions in your
final action
after the title line
that the
file.
of the footer macro
cause a page
to
!
is
i
break to occur printed.
Notice
no break control character
is
i
i
used. I
This ends the definition of the fo
i
macro.
(3)
Using String Definitions With Your Own Macros: At this point you can use the .ds request to specify strings to be used in your header and footer title lines in much the same way as you do with the -ms macros.
350
Macro Construction
:
'
i
Enter something
like the following requests in
your pages file (place the following requests before any text but after your macro definitions):
(4)
.ds Ih
left
.ds ch
center header
.ds rh
right
header header
.ds If
left
.ds cf
center footer
.ds rf
right footer
footer
Testing the Page Control Macros: At test your new page control macros.
You can send your Shell command (do not
this
time you
may want
to
be formatted with the following include the -ms flag in your command to
file
line):
nroff
(5)
flenamel
\
The Strange Paragraph Reset Macro: macro package
page
If
(or read the material in
you regularly use the -ms Module Nine describing
these beasties) you have probably discovered that the paragraph
macros do a lot more than format paragraphs. In fact, all paragraph macro calls in the -ms system not only do what you expect (in the way of indentation and spacing) but also call a series of nroff requests that look something like the following .RT macro: .de
RT
.sp
.ne 1.1 .in
0
.ul
0
.ce 0 .ft
R
\\n(LL .ps \\n(PS .vs \\n(VS .II
The .RT macro all
-ms
is
known
paragraph macros.
as the It
ReseT macro and
turns off underlining
is
called
(.ul
Macro Construction
0)
by
and
351
centering (.ce 0), resets the font to Roman (.ft R), and resets the line length (.11 \\n(LL), point size (.ps \\n(PS), and the vertical spacing (.vs \\n(VS) to the values stored in the LL, PS, and VS
number
registers.
This
why
is
placed before a -ms paragraph
(#the
will turn
just set
a .ul request will
macro
call.
have no
effect
if
The -ms paragraph macro
request for underlining even though you have
to underline.
it
number
which controls the point size (.nr PS) request does not take immediate effect but must wait until after the next paragraph macro call. The change to the number register will not be read by nroff until it encounters the next paragraph macro. This is the reason why you must place a -ms paragraph macro call at the beginning of your file, after any number register requests that you use. That paragraph macro is necessary as it will establish the -ms defaults for these number registers. It is the initializing macro. Similarly, a
(6)
change
in the
register
Viewing the -ms Macros: For those of you who are interested, the -ms macro package is contained in a file with the following full path name: ! usr ! lib ! tmac ! tmac.s
To view
this file enter the
vi
If that
/
command:
command sequence
does not work enter the command:
whereis
Use the the
lair
®
usr / lib / tmac / tmac. s
tmac.s
®
pathname returned by the whereis command of the -ms macro package. full
to visit
Spend some time browsing through the -ms macros, and see if you can interpret how some of the commands actually perform their functions.
complex topic of macros. You may want to return to this Module after you have completed the remaining material in this book and give it a second reading. As you now know, the internal workings of macros decide how your formatted paper will appear. Your
The
352
quiz which follows concludes your introduction to the
Macro Construction
macro— and occasionally construct command does not exist— can make
ability to select the appropriate
your own when the necessary your formatting experiences both more effective and more
satisfy-
ing.
A
Final Quiz:
Describe the effect of the following nroff requcsi:
(a)
.tl
'jerry 'and 'meredith'
Consider
(b)
a
file
named
test,
which contains the following
six
lines:
Hi
.de .ce
\$1 • •
.Hi there
How
are
If this file
you?
was sent
to nroff to
be formatted, what would the
resulting output look like?
What
(c)
effect will the
command
'br
have
if
entered
in
a text
file?
Suppose you placed the following nroff xtquQsX at the top of a text file. What effect will it have on the resulting formatted
(d)
output?
.wh
Answers: and
in
(a)
A
bp
three pari
title line will
appear with the word
the middle, and mcredith against the right margin,
would not appear the
-1
macro
ing, as the effect.
in
(d)
on the
left,
The word “there”
the output, due to the presence of a \$1 instead of \\$1 in
definition; the line
break
(b)
./'em’
command
“How
are
you?” would be centered.
(c)
Noth-
with the no break control character will have no net
Nothing, as only macros can be used as arguments to the .wh
request.
Macro Construction
353
New Command
nroff Requests
Function
Begins macro
.de
Ends macro File will
XX
with two
macro name.
character
.so
Replace
^^finition.
named
definition.
file,
containing macro definitions,
be sourced into current
file.
Prints a three part Vt\e line.
.ti
\n(
XX
Reads
XX
Replace
XX
value stored in
in
with two character
number
register.
number
register
string
register.
name. \*(
XX
Reads
in
Replace
string
XX
stored
in
XX
with two character string register
name.
Reads
in first
argument
to
macro
Absolute position indicator.
No
354
Macro Construction
break control character.
call.
Module Twenty-One Utility
Programs
• CD02
nr
Introduction Through the
first
twenty Modules you have seen
how UNIX
can be
used to create and edit files, locate spelling errors, organize a directory system, communicate with other users, and line print or typeset all kinds of files. The remaining Modules will describe in some detail how UNIX can format form letters, tables of contents, tables, equations, and maintain a bibliography. The final Module briefly introduces several additional UNIX resources which can assist
with your editing, programming, or writing tasks.
What more can UNIX do? Quite you
will
meet programs which
a bit, actually.
will locate files,
In this
compare two
Module files to
they are the same, translate specific characters in a file into other characters, and sort lines alphabetically. And these are but a few of its various capabilities. see
if
Prerequisites To
utilize the
spell ‘‘utility”
information
in
this
Module you should be
and use the information presented
in
the
able to
first
eight
Modules Fifteen (The UNIX Directory Structure) and Twenty-Two (Commands, Files and Directories) are recommended.
Modules of
this
book.
Module Five
is
optional, while
355
Objectives of this Module you should be able
Upon completion (1)
Automatically remove
(2)
Sort a
(3)
Translate into a
new
file;
string or range of characters;
(5)
Compare two
all
redundant
common
Combine
a
occurrences of a string or range of characters
all
Remove
(6)
commands from
according to an alphabetic or numeric rule;
file
(4)
or
formatting
all
to:
files
lines
and find
from
a
file;
lines that are
unique
to either file
to both;
the above actions into useful ‘‘pipelines.”
Procedure This Module
will
introduce several
The format used
processing.
new programs
useful for text
to describe these utility
programs
will
from the approach used in other Modules, and will be similar to that used in the UNIX Programmer's Manual. The final section will present an example of how these programs can be joined differ
together to accomplish a complicated task.
deroff
NAME
(and function)
deroff
—
remove
nrofif, troff, tbl
SYNOPSIS (how command deroff
[
-w
]
is
and eqn commands
entered; brackets identify options)
filename
DESCRIPTION The
Shell
command deroff
will
output to the terminal a copy of filename, minus
instructions.
356
filename
Utility
Programs
all
formatting
To have the output Shell command:
not by lines but in single words, use the
listed
-w
deroff
filename
®
PROBLEMS remove
deroff does not always
subtle formatting constructs.
sort
NAME
(and function)
sort
—
sort a
file
SYNOPSIS (how command sort
[
-0 -d -f -r
]
entered; brackets identify options)
is
+posl
[
]
[
— pos2
]
filename
DESCRIPTION The
sort
program
will alphabetically
and/or numerically sort
lines
no +posl or -pos2 is specified) sort arranges the lines of a file in alphabetic and numeric order by comparing the first character of each line in a file. For example, the of a
file.
following
In
is
its
form
basic
(if
the contents of a
.nr
PO
file
named
test:
21
.LP This
is
file to
a be sorted
by the sort routine.
nf 11223 12133 13100 13101
•
Jt
Utility
Programs
357
The following
sequence would sort the above text and have the resulting output displayed on the terminal: sort Shell
sort
The
resulting sorted material
®
test
would look
like:
.LP .fi
^nf .
nr
PO
2i
11223 12133 13100 13101 Th is is a by the sort routine, file to
be sorted
Note the sorting order: symbols were listed first (periods), then numbers, followed by upper and then lower case letters.
Changes the
file
in
the sorting routine are possible.
named
test
and place the output into sort -0
The
output
The following will sort a file named output:
test
output to the file named as an argument to the option {output) instead of directing its output to the standard output. This command will accomplish the same -0 option tells sort to direct
its
result as:
sort
To
test\
>
output
sort only those lines beginning with a letter, digit, or blank
{dictionary order)
you would use the sort -d
Whatever
command
line:
flename
do not begin with a letter, digit, or blank will be placed at the bottom of the output. Thus the special characters, A/ro# requests, and macro calls would be removed from the sorting and placed as residue at the end. Utility
lines
Programs
“
If
both upper and lower case
letters
should be sorted together
{folded together), use:
sort -f
filename
®
The order of
sorting can be reversed (so that the line which would normally be sorted as the first line would instead be sorted last) by: sort -r
In addition,
the file(s)
character in each line.
filename
®
need not be sorted based upon the first Most lines of text or numeric data can be
considered as being composed of separate fields. A field is defined as a group of characters separated by white space (a word, a number, a series of letters, etc.). Thus the following line can be considered as consisting of six fields:
Name
Fido Nerfball Age 47
B.
The word Name
is
the
first field,
and Nerfball is the fourth and the number ^7 is the
field.
sixth.
B.
is
the second, Fido
The word Age
is
Suppose you had
is
the third,
the fifth field, a
hundred
line
with each line containing the same five fields of information (one line for each individual). You could sort the file according to
file
last
name
(4th field) with the
sort
The
-1-3
tells
command:
-1-3
filename
® and thus base the you wanted the sort to
sort to skip the first three fields
on the fourth and following fields. If be based only on the fourth field you would use the command:
sort
sort
This
command
-1-3
translates as,
ing the third field
filename
®
“base the sort on the
and preceding the
fifth field (the
field (s) follow-
fourth
field).
PROBLEMS sort
only sorts
lines.
It
cannot easily sort records consisting of
multiple lines based on a field
in
only one of the lines of the
record.
Utility
Programs
359
SEE ALSO comp
deroff, uniq,
NAME tr
(and function)
—
translate input characters
SYNOPSIS (how command tr
[
-c -d
-s
]
[
is
string 1
]
entered; brackets identify options) [
string!
]
filename
DESCRIPTION With the
command you
tr
into another.
characters.
can translate one string of characters The hyphen (-) can be used to specify a range of
For example the
A-Z
tr I
will translate all
command
space
a-z
filename
I
uppercase characters to lowercase.
SEE ALSO sed
uniq
NAME
(and function)
uniq
— remove
redundant
SYNOPSIS (how command uniq
[
-u -q
]
is
lines
from
a
file
entered; brackets identify options)
filename
DESCRIPTION Often when sorting or making an index you wind up with a file which there are duplicate lines. The uniq program will assist
360
Utility
Programs
in in
where there are several copies of identical lines. Note! duplicate lines must be adjacent when using uniq. If duplicate lines are not adjacent you should first sort the file and then use situations
uniq
to deal with duplicate lines.
To produce an output of
single copies of
which the second copy of any line is deleted) use the following Shell command. Output will consist of one copy of all unique lines and one copy of all duplicated lines: uniq
The
Shell
lines
(in
filename
command uniq -u
will
all
examine filename and
print
filename all
lines that
appear
in the file
only
one time (unique lines only). Output consists only of one copy of unique lines. Duplicate lines are ignored. Additionally, the
command: uniq -q
will
examine filename and
(duplicate lines only).
no matter how often no copy of all unique
find only those lines that are repeated
then print a single copy of each line, was repeated in the file. Output consists of
It it
®
filename
will
lines
and one copy of
all
duplicated lines.
SEE ALSO sort,
comm
comm NAME. (and
function)
comm — compare
two
SYNOPSIS (how command
comm
[
-
123
]
files
is
entered; brackets identify options)
file I file 2
Utility'
Programs
361
DESCRIPTION The comm program compares two
line
files,
by line and separates
the lines into three categories: (1)
Lines found
(2)
Lines found in file2 but not
(3)
Lines found in both
The
Shell
but not in file2
in filel
and
files.
command:
comm
file2
filel
perform the separation and then print
will
To suppress the printing of include the number 1 as a flag
comm This in
in filel,
will result in
both
files.
To
list
the
command
Those
lines
lines
found
in the
command
-1
in filel
and not
file2
sequence:
filel
filel
found only
common
in filel will
both
to
files,
not be printed.
use the -12
flag in
sequence:
comm
filel
three categories.
the printing of those lines found in file2 only or
only those lines
With the -23
all
flag the
-12
filel
comm command
(for instance the
names of
all
file2
will
produce a
students
who
list
of lines in
are in a doctoral
program) not in file2 (names of all students whose registrations were blocked). The resulting list are those names in filel not in file2 (students who are in the program but whose registrations were not blocked). Such a list would be created by:
comm
-23
SEE ALSO sort, deroff, uniq,
362
Utility
Programs
comp,
diff
filel
filel
An Example of the Wonders of Piping Not for Plumbers Only The
five utility
The
final step in this
programs introduced in this Module can be used together to transform a text file complete with formatting commands into a relatively short list of ‘‘unusual words.” process
compare
of words consisting of every word found in one of your files with a list of common English words. This second list of common English words exists on most UNIX systems in a file with the full path name lusrflibleign. The comm command introduced in this Module is used to compare the two files and identify all words found in one file but not in the is
to
a
list
Certain constraints must be met, however, before the two can be effectively compared with the comm command: (a)
other. files
Both each
files file
must be sorted should be on a
ascending sequence; (b) Every word in line by itself; (c) Every word in each file in
can occur only once; and (d) Because comm will treat a word beginning with a capital letter as different from the same word not capitalized, all characters must be translated into lower case.
(1)
The
actions necessary to
formed within
meet these constraints can
a single Shell
command
all
be per-
easier— and for many purposes more useful — to perform these actions in two steps, however. For these reasons, we will first illustrate the twostep method and then present the one-step method.
(2)
line.
It
is
Preparing the File of Common English Words: Before this file ilusrllibleign) can be compared to one of your files it must be sorted into ascending sequence. This is done with the following command sequence: sort
This
command
(containing
/
usd lib/ eign
> common
line will create a sorted
the
words) and place
one-hundred and
new common
®
copy of the /usdiib/eign
fifty
most
common
file
English
your current directory. (Later on this file can be expanded as you discover other frequently used words. Don’t forget to resort your common file after making additions, however.) this
file
into
Utility
Programs
363
(3)
Preparing Your Text File: Before your text file can be compared to your new common file several actions must occur. The file must be stripped of all formatting commands, and each word must appear on a line by itself. The words must be sorted into ascending sequence, all characters translated into lower case, and all redundant words must be removed.
The following command
line will
command
deroff
-w filename
line,
tr |
All formatting
but attempt to decipher
A-Z
sort
a-z
all
these actions and
(An explanation of each
do the actual comparison. the
perform
|
\
commands
in
uniq
|
comm
filename are
yourself
it
-23
first
-
step follows first):
common > unusual
removed by
droff,
then put the remaining words on individual lines (-w). The output from deroff will be passed on to tr, which will convert all upper-case letters to lower-case. (This step is required by the uniq program.) This material is passed to sort which will put these words into alphabetical order. The output of the sort program is passed to uniq, which will discard all redundant lines (words) and then hand its output to comm. The comm command then compares this output (or input, depending on your point of view) to
which
will
named common which contains a sorted list of the 150 most common English words. The output from comm (the words in filename that are not among the 150 most common English words) will be placed in a file called unusual. Whew!! the
file
The
file
named
unusual
will
of the words in filename of very common English words.
contain a
list
which were not in the UNIX list Such a list could be used to create a glossary or index (and was fact how the index to this book was generated).
(4)
The One-Step Method: The above two-step procedure can be consolidated into a single step by using the semi-colon
This special Shell character
is
to
be performed in sequence.
If
two
command
following Shell
command
sort otherfile
Utility
Programs
used to separate two
lines are separated
pleted before the second
364
in
>
one begins.
by a
;
the
(;)
character.
command
first will
lines
be com-
For example, consider the
line:
tempfile\comm -23
file tempfile
\
Here, sort
will first sort
put into a
file
name
then compare
will
the
tempfile.
file
named
Once
and place the out-
otherfile
this process
is
complete,
comm
file to tempfile.
This procedure has one potential drawback. You are left with a tempfile that you may never again use. You can avoid this problem through the use of two additional UNIX features. The first involves the use of the UNIX iemiporary directory. The full path name of this directory is
is
The
/tmp.
/tmp directory
periodically cleaned out by the
convenient place to deposit a
file
is
“powers
that
publicly accessible
Thus, it of only temporary use.
is
that be.”
The second feature is the $$ symbol. It can be used unique name to a temporary file. The command line sort filename
>
and is
a
to assign a
/ tmp/ %%
filename and place the output into a file with a numerical in the /tmp directory. (For those who are interested, this
will sort
name number (5)
With
is
the process ID of the parent Shell.)
as an
introduction, you are following Shell command
this
The features to work and accomplishes our finale.
We
display the
the sequence.
Do
not press
®
command
I
ready for the grand line puts all these UNIX
task
all in
one
step.
(Note:
two lines, owing to the length of This is, however, one continuous command line. until the entire command has been typed):
> comm
sort /usr/lib/eign sort
now
uniq
|
line as
/tmp/%%\ deroff -w filename -23 - /tmp/%% > newname
Utility
|
tr
A-Z
a-z
®
Programs
365
Module Twenty-Two
Commands,
Files,
and Directories:
or
Paths, Bins, and Yellow Brick
Modes
Introduction
We
have stated
in prior
UNIX
Modules
that
UNIX
stores information in
even your terminal. This is truly a remarkable feature, and one that allows you to and the standard input tie together (in conjunction with the pipe and output) Shell commands in an infinite number of combinations. This ability is what makes UNIX so flexible and powerful. files.
In practice
treats everything as a
file,
\
You have created and worked with your own files, but what about the commands that allow you to go about your UNIX tasks (vi, nroff, cp, page, and Ipr, to name but a few)? They also exist in files.
We
bins.
This trek
would
like to will
guide you into their lair—the UNIX storage
allow for a discussion of
how
one named page) can act upon another when you enter the command page filename). (like the
it
is
file
that a (as
file
occurs
Prerequisites To use
this
Module you should have completed
the material in
Modules One through Eight (Five optional). Fifteen: The UNIX Directory Structure (essential), and Sixteen: Account Management.
366
Objectives Upon completion (1)
Use
perform
Describe
how
a function);
be able
will
modes
permissions and
file
(able to (2)
of this Module you
to
make
to:
a
file
executable
and
directories, bins,
and search paths
affect
your
interactions with UNIX.
Procedure These procedure steps are presented in two sections. The first section explores modes, permissions, owners, and executable Shell scripts. Section two takes you on a tour of the UNIX command storage bins and discusses how the Shell “locates” a command.
coo
wr
Modes, Permissions, Owners, and Executable Shell Scripts
You need
to begin the exercises in this
directory.
To
insure that you are
Home
cd
Module of the
(1)
Fifteen: The
Home
Module from your Home type:
®
UNIX Directory Structure discusses the concept
directory.
Creating an Executable File: An executable file begins life the same as any other file. Begin a new file by entering the command: vi
(2)
22
facts
®
Place the following six lines in this,/^c/5
echo echo 'My current
directory
file:
is:'
pwd echo echo 'The files
in this directory are:'
Is
Commands d
Files
367
^
When
(3)
finished, write the
memory
into the
file
of the Beast and
return to the Shell.
From
(4)
the Shell type:
®
facts
What happened? You
receive a note stating:
facts: Permission denied.
facts This note lets you know that the Shell tried to execute the but found that it did not have “permission” to execute it. The file at this point is not executable.
the nature of this beast called an executable file? Well, the Shell program page is a good example of an executable file. The Shell can apply the contents of the page file to almost any file
So what
is
you have created, resulting
that
on the screen. The
ex
being displayed
also an executable
is
file.
executable, the Shell has been given permission to per-
If a file is
form the actions
As
line editor
in the specified file
UNIX
specified within the
file.
concerned the file facts is still only a nary, non-executable file. This will soon change ....
(5)
far as
is
Permissions:
File
From
the
List
the Shell enter the
sign, lower case
filenames
command
space
Shell
-1
(lower case
Home 1,
command
space,
Is
-1
will give
you
a long listing of the files
Among
other things, this long
like the following
files.
should be displayed on your screen:
total 9
drwx —rw —rw
—rw —rw 368
Commands &
minus
®
include the permissions attached to your
Something
s,
directory.
I
located in your current directory. listing will
your
1):
Is
The
in
plain, ordi-
Files
2
login
1
login
1
login
1
login
1
login
544 Nov 13 17:04 Study second 6100 Oct 12 11:32 1452 Sep 1 11:58 experience 1064 Sep 2 21:14 first 93
Dec 19 10:32
facts
Each
the long listing for one file or directory in your current Each long listing consists of several parts.
line
is
directory.
The
(a)
first
and
part
10 characters long {drwx
is
specifies the ‘‘permissions”
attached to each missions field.
The second
(b)
file.
We
The
(c)
the
part of the listing
number of links the moment.
(in this
The fourth
(d)
we have
case
also as i\\Q file
mode)
portion as the per-
number
a
is
just entered the
portion of the listing
and
file
the login of the
is
is
which of no
(7 or 2)
attached to the
third part of the long listing file
)
will refer to this
identifies the
concern for
(known
or (-rw
)
word
is
owner of
login).
the length of the
file
in
bytes.
The
(e)
date the
of the
The
(f)
last altered is
entry
is
the
file’s
2
#
Permission Fields
For the
in a
Listing
Nov 13
544
File’s
size in
Date of Last
Owner
bytes
Modification
the important feature
10 characters on the
Long
login
of
Links
moment
fifth part
name.
Information Fields
drwx
displayed as the
and
listing;
last
was
file
left
of each
line.
is
Study
1 7:04
Filename
the permissions
field:
the
Each of the 10 positions has
a particular significance.
The
first
tory, or
directory first
facts)
position indicates whether the listing
some other UNIX (i.e.,
a file), will
beast.
A
most often appear is
(—
file,
first
-
a direc-
for not a
in this position.
in
not a directory.
directory, as evidenced by the d in the
sions
for a
d for directory, or
character in the permissions field indicates that facts
is
the case of the
The
file
Study
The file is
a
position of the permis-
field.
The next nine
characters can be considered as three fields of three characters each. For now we need only concern ourselves with the
Commands d
Files
369
of these three fields following the directory character. three characters determine what you (the owner of the
first
directory) can
do with
These file
or
it.
of these three positions is filled with an r the owner has — read permission and can view the contents of the file. A (minus sign) indicates that the owner does not have read permisIf
the
first
sion.
the second of these three positions is a w the owner has yfrite permission and can make changes in the file. A minus sign in this position would indicate that the owner would not have write per-
If
mission.
The
third position indicates
whether the
file
can be executed.
An
X indicates that the owner has execute permission; a minus sign means that the file does not have execute permission. w, or x in a permission field indicates that the associated permission is granted; a — indicates that this permission is not granted. In
summary, the presence of
For now
named (a
-
a
r,
the permissions field associated with the file indicates that it is not a directory line -rw
let’s interpret
facts.
The
and that the owner (you) has both read and
in first position)
write, but not execute permission (rw- in positions 2-4).
Execute permission means that the file is a Shell script or a compiled program and that it has permission to perform its function. (An executable directory allows you to look for files in it.) Whenever you create a file it automatically has read and write — but not execute— permission. To add execute permission to a file you
must change (6)
its
Filemodes: You cutable. Type:
mode.
will
now change
chmod
the
mode
700 facts
of facts to
make
it
exe-
®
The command chmod stands for change mode. The number 700 gives the owner read, write, and execute permission for the file. The 700 can also be considered to have three fields (7 0 0). Again, we are only concerned here with the first field (the number 7), because this field determines what the owner can do with the file.
370
Commands &
Files
The number seven in the first field is actually a “composite” number (sum) constructed from the following “primitives:” (a)
1
grants execute permission
(b) 2 grants write permission (c)
4 grants read permission.
These primitives can be added together
to grant
any combination
of permissions.
The
basic permissions for the file’s
owner
are:
000 grants no permissions 100 grants execute permission only
200 grants write permission only 400 grants read permission only
The sum of 100 + 200
=
400 and execute permissions would -f-
all
700 would mean that read, write be granted.
300 grants execute and write permissions (100 + 200); and 500 grants read and execute permissions (100 + 400). The permission of 600 grants read and write permissions (200 + 400). These mode changing codes relate to permissions to the owner of the file. These three numbers (1,2, and 4) can be used to express the eight possible states involving combinations of these three binary conditions (yes or no for execute, write, and read permissions). As a point of interest, no other combination of three single-digit numbers yields this continuous and unique scale for binary combinations. Additionally,
To check on whether affected the filemode
the
facts enter the
Is
Note the presence of the in
So what does
-1
letter
the permissions section.
cutable.
command sequence chmod
this
x
command:
®
facts
in the position third
This x
700 facts
tells
you
that
./am
from the is
now
left
exe-
do for you?
Type: facts
® Commands &
Files
371
This lime you are treated to the display of the name of your current working directory, along with a listing of all files in your current directory. This information is the result of the two Shell commands placed within your facts file. No big deal (although it beats a poke in the eye with a sharp stick), but
any
file
owner must change (9)
With
You
commands
containing Shell its
made
can be
illustrates
it
how
executable: the
filemode to 700.
filemode of 700 a file becomes, in effect, a Shell command. can execute the contents of the file by simply typing its name. a
A
Second Executable File: As another example, you can create an executable file which will cause the Shell to first change directories to a specified sub directory and then start the process of visually editing a
(10)
file in
that directory.
sure you are in your Home directory. Once there you should create a file named go containing only the following 2 lines. (Substitute the name of one of your sub directories for directory
Make
and the name of
a
file
located in that directory for filename):
cd directory vi [filename
Return to the Shell and change the mode of the go Then from the Shell type:
file
to 700.
®
go
went according to plan you should be moved to the specified directory and filename should present itself for visual editing. If all
(12) (11) Creating a Bin: fully
more
You may
interesting)
wish
later to create additional
executable all
now. From within your
Home
facts into
Bin
sequence:
Commands &
Files
useful to create a files.
Let’s do this
®
your Bin directory.
mv 372
is
directory type:
mkdir
command
It
of your executable
directory (bin) to hold
Next relocate
files.
(and hope-
facts Bin
®
Use the following
Once
(13)
again enter the
command:
®
facts
The Shell replies “facts: Command not found” because it does not know where to look for the new facts command. In the next section of this Module you will learn how to include your own Bin in the search path followed by the Shell when looking for executable files.
Uses of Executable Files: The two example executable files presented here were designed to allow you to practice constructing files and changing their modes. In fact the tasks which these two files accomplished are more efficiently handled with the alias command. Executable files are normally used for more complex tasks not easily solved by an alias
(14) Yes,
(a)
command.
Another Quick Review:
What command
gives you a long listing of your filenames,
including the permissions attached to each (b)
What permissions missions
(c)
field (-r-x
file
(include the
What would had changed mission?
Answers:
(a) Is
the permissions field for a its
mode
(b) read
-l
chmod 700 filename
(d)
in
your
file
look like after you
to include read, write,
and execute per-
and execute but not write permissions
-rwx
Bins,
Log onto your UNIX account. you are located
to
mode number)?
UNIX Commands, Storage (1)
with the following per-
change a file’s permissions include read, write, and execute permission for the owner
of the
(c)
file
)?
What command would you use to
(d)
are granted to a
file?
Home
If
and Search Paths
already logged on,
directory.
cd
make
sure
Type:
® Commands
Files
373
(2)
In
Module
Fifteen you learned that
(dot dot)
..
is
the
UNIX name
your current directory. Ever wonder who or what exists above your Home directory? Here’s your chance to find out. Type:
for the directory located immediately above
cd
You
now
are
located one level above your
several deep breaths— the air
To determine
(3)
(now one
®
..
level
is
(4)
Root:
the contents of your current working directory
above your
Your
You
directory
Home
directory) type:
®
will
login will
need
among
be found
to use a
UNIX
‘'special
the
list.
character” for the next
move. Type: cd / space
The
(Take
of the other users of your UNIX system should be
logins
displayed.
directory.
pretty thin at these elevations.)
Is
The
Home
UNIX name
®
I
“root” directory (in addition to being the character used to separate directory and filenames when you use a full path name). Root is, curiously, located in the UNIX penthouse. All files and directories are located below root. /
is
What
(5)
the
files exist in
for the
the / {root) directory?
®
Is
The
Type:
of filenames probably does not look too exciting. the names listed should be the usr directory, however.
(6)
list
Change
directories to the usr directory.
cd
(7)
List the contents of the usr
usr
One
of
Type:
®
directory with the
Is
command.
Anything look familiar? If you are a UCBerkeley-type, your attention may be drawn to the directory named ucb. 374
Commands &
Files
To explore
the contents of the ucb directory.
List the filenames in this directory.
(9)
(10)
®
ucb
cd
Type:
Recognize any files? The names of Shell commands used to work with UNIX should now appear. (We told you this was pretty heady stuff.) If
the directory ucb did not appear, type: cd
The ucb
(or ucb/bin) directory
taining the files that are Shell
®
bin
is
one of the UNIX
commands. The
directories con-
directories
which
hold UNIX Shell commands are referred to (in UniJargon) as bins. The only difference between a bin and a garden variety directory is (11) that bins contain executable files. The term bin is derived from the fact that most of the executable files stored in these UNIX sys-
tem
directories are in a
To
find out
what
bitmy format.
a binary
file
®
page ex
You should
command:
looks like enter the
receive a note indicating:
(12)
ex: Permission
The commands
Denied
stored in the ucb directory are contained in
that are executable
but not readable.
commands you cannot
view the
files
Although you can use these
files that
contain
them
(this
is
part
of the UNIX security system).
For the next directory.
To
(13) Discovering
commands (known
you need to be located in your Home you are there enter the cd command.
activity
insure that
Your Search Path: You now know are
as bins).
actually
The
executable
files
stored
that
most UNIX
in
directories
bins that the Shell searches and the order in
Commands &
Files
375
which they are searched
named
variable
Sixteen)
used to
is
set
From
path.
is
The
determined by the setting of the Shell
command
set
used to control the search path in the the Shell variables ignoreeof and noclobber.
command:
the Shell enter the
set
Module
Shell
of the Sixteen).
®
command, used without arguments,
Recall that the set settings
Module same way it is
(introduced in
list
the
your account (see should look something like the follow-
variables
Your
will list
attendant
to
ing:
0
argv
cwd /pbjmpb/Book/Minis history
25
home
/pbjmpb
ignoreeof noclobber path (. /usr/ucb /bin /usr/bin) shell /bin/csh
0
status
term flOO user pbjmpb ignoreeof and noclobber variables should be familiar. For now note the information that follows the word '‘path,” as this is how your search path is currently set. When you enter almost any com-
The
exceptions are alias, set, and cd), the Shell will start its search for an executable file with that name in the first directory For example, suppose you type the listed in your search path.
mand (some
Shell
name of the executable file you created Module). The Shell will begin looking in the current If a file with that name (facts) is not found in the
command
earlier in this
directory
(.).
facts (the
current directory, the Shell will next check the /usr/ucb bin. If The last stop is still unsatisfied, the Shell goes to the /bin bin. /usr/bin. Each of these bin names is preceded by a / because they
more
below the root (/) directory. Finally, if the Shell cannot find the command in any of these locations (and it would not find facts with this search path) you will be greeted by the now familiar reply, ""Command not found.""
are
all
located one or
Commands &
Files
levels
377
command
can exist in several different forms, each in a file with the same name, but located in different These forms will be the command as it evolved over bins. different versions of UNIX. (The process of storing different files with identical names in separate directories was discussed in
On most UNIX
Module
systems
Fifteen.)
a
The most commonly used
bins for BSD
UNIX
are:
/usr/ucb, /bin, and /usr/bin. very important, because the Shell discontinues its search upon locating the first instance of an executable file with the right name. It does not matter, to the
The order
Shell,
if
in
which bins are searched
is
that filename also exists further
down
the path.
It
does,
however, matter to you. The search order can determine which executable file is found (and therefore used by you).
Your Path: Remember the file facts located in your Bin directory? An easy way to advise the Shell about executable files
(14) Setting
located in your Bin
is
to set
your search path to include a
trip
through Bin. Go ahead and advise the Shell of the existence of your Bin directory with the following Shell command sequence: set
=
path
" / Bin)
/usr/ucb /bin /usr/bin
(. I
space
I
j
I
your path the Shell may (15) be unable to find any Shell commands. Should this happen you "" Command not found"'' message upon typing in will receive the your Shell commands. Fear not— you need only logout and log back in again. Order will be automatically restored to your search Note:
If
you make
a mistake in specifying
path.
Now
type the
command facts
®
Did the Shell locate and execute the commands contained within If not, carefully reset your search path and this executable file? attempt this step a second time.
(16)
378
procedure step 14 has only a temporary effect — the Shell will forget about your Bin bin when you log out. You can permanently remind the Shell by inserting the above line in your .login file.
The sequence you entered
Commands &
Files
in
Double Warning: your
If
you
err in entering the following text into
you will continue to receive the ''Command not found'' message to your Shell commands. Logging out and back in again will not help. You will have successfully piloted your search path into a black hole, and you will need to perform the following three steps to escape from this situation: (a) Reset your path from the Shell (Enter from the Shell the set path command sequence noted in Step 14 above); (b) Re-edit your .login file to include the correct path; and (c) Again enter the source .login command. (a)
.login
file,
up your .login {dot login) appears on the screen find the Call
file
Once
for visual editing.
line
it
beginning with the words
set path.
(b)
append the following characters
Carefully
at
the end of your
search path (inside the right paren):
"iBin Without these characters added to your path
it
look simi-
will
lar to this:
set
path
=
(.
/usr/ucb /bin /usr/bin)
With these characters added to your path
it
will
look similar
to this:
set
(c)
Return Note:
path
=
to the Shell
If
and type the source
.login Shell
command.
the set path line does not appear in your .login
just insert the following line
set
path
=
somewhere
in
the .login
space
I
I
file
file:
^ ! Bin)
/usr/ucb /bin /usr/bin
(. 1
(17)
^ ! Bin)
/usr/ucb /bin /usr/bin
(.
1
and Modes: As you now know, the permissions attached to files and directories determine w'ho can do what with each file or directory. We have already discussed the
More on
File Permissions
role of the first four positions in a permission field: the first charac-
whether the file is a directory, and the next three characters indicate what the owner of a file can do with it. The second set of three characters determine the same permissions ter
indicates
Commands &
Files
379
and execute) for users in iht file owner’s group. Just who belongs to a group can be specified by the owner: see the UNIX Programmer’s Manual entry for newgrp. The final set of characters represent the permissions granted to everyone else (others). (read, write,
most cases these three permission groups (owner, group, others) will have the following meanings to you: In
owner’s permissions will determine what you can do with
The
(a)
the
files
you
create;
(b)
Group permissions will determine what people in your group can do with files. For instance, files containing Shell commands (such as the ex file— containing the line editor— that you attempted to view earlier in the Module), are executable but not readable to members of the file owners (root) group (everyone with an account on the UNIX system you are on); and
(c)
Others’ permissions will determine what other users can
with
the
files
you
create.
Normally
this
will
do
be nothing,
although you can specify otherwise. the topic of permissions interests you you might return to the
If
root directory and explore
some more. Try doing
a long listing in
several of the bins and interpreting the information supplied to
you.
In other words,
spend a few moments and “get lost,” but do
report back.
(18) Additional information about bins
and modes
UNIX Programmer’s Manual. To access
is
available in the
this material enter the Shell
commands: apropos
modes
®
or
apropos
(19)
A
bins
®
Final Quick Review: Consider these questions:
What
(a)
Shell
command
will
move you
directly to the root direc-
tory? (b)
What command would you use Shell?
380
Commands &
Files
to reset
your path from the
(c)
What
three steps woula you take to reset your path by modi-
fying your .login file? ( 1 ) (
2)
(
3)
Answers: (2)
(a)
cd /
append “set path
(b) set
=
(
path
=
new path )”
(
new path (3)
)
source
(c)
(1) vi
.login
login
Commands &
Files
381
Module Twenty-Three
Form
Letters
Introduction Multiple copies of a form letter can easily be generated on UNIX. This process requires only that you learn a few additional com-
mands.
Prerequisites Before starting (1)
Use the
(2)
Use both
this
Module you should be
visual editor;
nroff
able to:
and
and -ms macro commands
to
format
text.
Objectives Upon completion
of this
multiple copies of a form
Module you should be
able to produce
letter.
Procedure When
producing form letters you create two files: the first contains the basic form letter, complete with blanks to be filled in later; the second contains the list of whatever text (names, addresses) should be inserted in the blanks of the form letter.
382
(1)
Log onto your UNIX account and when the Shell prompt presented use the visual editor to start a new file called letter.
(2)
An Arc^Request in this
new
Reading Input:
for
is
Insert the following five lines
file:
.LP Dear .rd
.PP //ow’s
The
going
command
.rd
part of
it
your
letter
contain a
will
list
stands for read, and is
to
be
lets
The next
filled in later.
of names that
will
know
nroff
file
that this
you create
be inserted where the .rd
is
located. coo
Use the
(3)
ZZ command
to store this
file
and return
to the Shell. wr
Use the
(4)
(5)
visual editor to create another
Contents of the Input
new
file
called
list.
File:
Insert the following line in this
new
file:
Helen This line
the
is
name
to be
used to
fill
in the
blank in the form
letter.
Use the
(6)
(7)
The the
Shell
ZZ command
Command
to store this
Line
to
file
and return
to the Shell.
Read Input: From the
Shell enter
command: nroff
This
command
tells
-ms
UNIX
to
letter
7
/ /
(
Changing the Generic are,
of course, endless.
some
items, center
information.
.
.
Title Page:
You
entries
The
variations to this
theme
can change the vertical spacing of
and not center others, include other
.
The commands used in this section are described in the Command Summary Section at the end of the book. In addition. Module Five offers a more thorough description of each command. The keys
to successful title
page formatting are the
\& which
allow
you to format from the top of the formatted page, and the .bp 1 which begins the next page at page one. If those two commands are included in the file, whatever you do in between is up to you. (Try not to have the called for spaces add up to more than one page.)
Special Formatting Topics
395
Hermeneutical Homemaking
B.
Fido Nerfball
University of California, Berkeley
Fred Flintstone
Bedrock School of Mining
This research was
made
from the
396
Special Formatting Topics
Oil
possible through a grant
Foundation
Using the nroff Title Page title
to
page format
in a file that
add the following
(a)
An
initializing
to
-ms
you are using the nroff uses the -ms macros, you may need
in a
your
File: If
file:
macro such
as
.LP on
a line before the
\& com-
mand. (b)
A .ND graph
No Y^ate) command command to suppress the (for
.bp
1
(If
command.)
A A
printing of today’s date as the
you want the date on pages within the body add the command .DA to your file just before the
center footer.
of the text,
following the initializing para-
Title
Page Using
the
-ms Macros
of specific -ms macros can be used in place of nroff requests to construct a title page. The command sequences placed within a file to prepare a title page will first be shown. Notations series
describing each
command
A
sample title page, formatted according to these commands, has not been included. Rather, you are encouraged to create your own.
The Input
follow.
File:
.RP .TL Hermeneutical Homemaking
.AU B. Fido Nerfball
.AI University of California, Berkeley
.AU Fred Flintstone .AI Bedrock Mining College
.AB This article offers an ethnographic look at the daily existence of the
Wilma
Flintstone
Bedrock Retirement
and her
Facility, circa
associates at
2 Million B.C.
.AE As life,
any research purporting to examine prehistoric one must first consult J960*s era American cartoons
with
....
Special Formatting Topics
397
Interpreting the Input File: The following annotation of the -ms macro commands used in the above input file explains the function of each command. Following the annotation is a list of important constraints
on the use of the commands.
COMMAND
FUNCTION
.RP
Requests a separate cover sheet (optional).
.TL
Tells
UNIX
be the
title
that the next line(s) of text will
(must appear).
Place the Title
Information Here
.AU
The name(s) of
the author(s)
the next line(s). Type the as
you would
like
follow on
names
in exactly
them presented.
Author Information Here Place the
.AI
The author’s
institution
appears
on the
next line(s). Place the Institution
Information Here
.AB
An
abstract of the paper follows until the
.AE command appears
(optional).
Place the Abstract
Text Here
.AE
Marks end of .AB is used).
Begin the Text of Your Paper
Special Formatting Topics
abstract (must appear
if
the
Notes on the -ms Title Page: The above commands follow conventions that result in different outputs:
(a)
specific
With the .RP command included in the file, the title and author's institution will appear in two places: on the title page and also on page 1 of the paper. Without the .RP command a separate
cover page
will
not be prepared.
The
title
page
material will instead appear on page one with the text immediately following. (b)
The command .RP no used
in place
of the
.RP
will
suppress
the printing of the information on page one. (c)
The abstract will appear under a centered heading Abstract when the .AB request is included. To suppress this heading use the .AB no in place of the .AB request.
(d)
The commands related to author (.AU) and institution (.AI) may be repeated if there are several authors from different institutions (as
demonstrated
in
the above example).
Creating a Table of Contents
When
creating a major paper, there are two ways to collect and enter the list of entries which become the table of contents: (a)
You may produce
a draft of the paper, identify the pages that
each major section landed on, and then enter each of the entries into a separate section of your paper or, (b)
You may itself,
ask nroff to collect the entries from within the text noting the appropriate pages.
Each of these approaches
is
explained below.
Creating a Basic Table of Contents: The -ms system of macros includes a specific command to inform the formatter that an entry is the beginning of a Table of Contents. There is another command to identify intervening entries, and another for indicating the last
entry.
macros.
An
The
on the top of the next page uses -ms explanation of each macro call follows. input
file
Special Formatting Topics
399
.
The Input .XS
File:
1
Phenomenological Issues .XA 16 You,
Me, and Phenomenology
.XA 25 Tree-Frog Consciousness
.XA 32 5 Mocha Almond Fudge .XA 40 Suicide Brings on Changes
.XA 52
0
Finale-Husserl at Play
.XE .PX Interpreting the Input File:
An
annotation of the
command
lines
included above follows:
.XS
used to identify the first Table of Contents entry. The number which Is
1
follows (here, the
number of
the page
page
(here,
number
1
the
for
1)
first
indicates topic item
Phenomenological
Issues)
Phenomenological Issues
Next
.XA 16
is
You,
topic item will follow,
number
the page
and the 16
of that item.
Me, and Phenomenology
Next
.XA 25
is
topic item will follow,
number
the page
and the 25
of that item.
Tree-Frog Consciousness
.XA 32
5
Next is
topic item will follow,
the page
number 5
Special Formatting Topics
5
number of
tells
and the 32
that item.
The
nroff to indent this item
spaces to the right.
The indentation
vvill
remain
until
you inform nroff
to
return to 0 indentation (which follows).
Mocha Almond Fudge
.XA 40
Next is
topic item will follow,
number
the page
and the 40
of that item.
Suicide Brings on Changes
.XA 52
Next
0
is
topic item will follow,
the page
number
0
number of
tells
UNIX
margin to indented position).
that item.
The
to indent this item
0 spaces to the right left
and the 52
its
(i.e.,
return the
normal,
non-
Finale-Husserl at Play
•
XE
Marks the Contents.
.PX
Tells
last
This
entry of the Table of
command must
appear.
nroff to print this material as a
Table of Contents formatted. This
when
the paper
command
is
must
appear.
The Formatted Table sent
to
the
When the above input file is Shell command line nroff -ms
of Contents:
formatter with
the
filename, the following results:
Table of Contents
Phenomenological Issues
1
You, Me, and Phenomenology
16
Tree-Frog Consciousness
25
Mocha Almond Fudge
32
Suicide Brings on Changes
40
Finale-Husserl
at
52
Play
Special Formatting Topics
401
Collecting Entries from within the Text: The entries for the Table of Contents do not have to appear together as a set in the file (as was the case in the previous example). Instead, they may appear within the text of your paper on the pages they refer to. UNIX can be instructed to collect the entries and assign the appropriate page numbers for your table of contents. The Table of Contents generated in this
way
will
appear identical to the one created
in
the
prior example.
An example tion of a
.
.
.
of this alternate approach would be the following por-
file.
and he spoke as
Leader of the Pack.
the
.sp .ce
Mocha Almond Fudge .XS
Mocha Almond Fudge .XE .sp
This brings us into historical realism
The .XS and .XE
and
....
are entered into the text
file
wherever sections
you want included in the contents. In this case, Mocha Almond Fudge is a section title. Right after the section title The is entered, an entry for the Table of Contents is included. .XS and .XE surrounding the second Mocha Almond Fudge in the file will cause Mocha Almond Fudge to be an entry in the Table of are located that
You can not you do not know what Contents. ting.
The formatter
will
enter a page
number
page the entry
for the entry because
will fall
on during format-
enter the appropriate page
entry after the formatting
is
number
for the
completed.
Informing the Formatter: When generating a Table of Contents using the above approach you must include a .TC command at the end of your file, so UNIX knows to collect your topics and assemble a Table of Contents. The .PX command, which is included when you enter the Table as a unit, is not employed when the formatter collects the entries.
Special Formatting Topics
Creating an Index
The procedures employed
having the formatter create a Table of Contents can be used to create an Index. The process is the same; make all entries in the file using the .XS and .XE commands. in
The .TC will have the formatter collect all the entries and prepare them as a Table of Contents. Since this is to be an Index, you will need change the name of this list to Index.
Special Formatting Topics
403
Module Twenty-Five Bibliographies and Footnotes:
The REFER Program
Introduction I don't
bibliography .
.
.
writing the paper, but / can't stand typing the
mind .
.
.
underline
this,
put
in
periods,
commas
Then there are the
does the date go before the city?
footnotes. Yuk.
the above statement reflects your attitude toward bibliographies, then the UNIX refer bibliographic formatting package is for you. If
prompts you for the necessary information, then formats and alphabetizes your bibliography while you sit back and
Refer
first
smile.
In addition,
when formatting
place footnotes at the
a paper
bottoms of pages or
at
it
will appropriately
the end of the paper,
given just part of a citation.
Prerequisites Bibliographic entries and
UNIX system knowledge. (I)
404
You should
modification
call
for
basic editing
and
Specifically:
be able to edit text using the visual editor; and
(2)
Because
Module
this
phy, you
consists largely of creating a bibliogra-
need to have available either a more books and articles or their bibliographic will
author, date, journal,
series of 10 or citations
(title,
etc.).
Objectives Upon completion (1)
Use the
of this
refer
Module you should be
able to:
package to format a bibliography, including
annotations; (2)
Have your bibliography
(5)
annotations;
(3)
Correct citation entries
(4)
Alter the prompts that refer presents to meet your
in
printed both with and without the
the bibliography;
own
needs;
and
Use
refer
formatted footnotes
to create properly
in a written
Q D
work.
Procedure
L E
The procedures
will
consist of seven sections.
The
first
section
discusses the use of the refer prompts to enter citation information into a
file
covered
prompt
named
database.
Formatting and
citations. in
section three.
field
Section two describes getting
a
copy of a
and describes how
Section six discusses
the refer system.
The
to create
(1)
how
to
to edit the
bibliography
is
your own prompt is
explained
in
list.
section
to cite references in papers using
final section
Using Prompts
how
Section four considers the entire refer
Entering bibliographies without abstracts five.
M
contains a sample bibliography.
Create a Basic Bibliography
Log onto your UNIX account. When the Shell prompt appears enter the command (Note; the ® means press the RETURN key): addbib
database
® The REFER Program
405
25
If
the refer pre-processing package
is
available
on your system the
query Instructions ?
will
Answer by
be displayed on the screen.
®
yes
(2)
The addbib database command you process and
is
addbib
is
(a)
two
in
typing:
just entered initiates the refer
parts:
the Shell
command
that tells
UNIX
enter bibliographic information using the refer (b)
database
is
be placed.
we (3)
you want package, and
that
to
which the information will While you can name the file whatever you want
the
will refer to
name it
of the
file in
as database.
presented on the screen. Go ahead and read through them, but don’t worry if everything is not clear. The instructions will be covered in some detail in the next few pages.
Instructions will
now be
through the addbib process we suggest you not enter the information from an actual reference citation, but rather make up quick answers to each query. You will have a chance to
On
this first pass
enter a real citation in a
(4)
moment.
The prompt Author should appear on name, such
as your
the screen.
Type an author’s
own, or
Sigmund Freud After you have entered the author’s name, press
®
.
normal order (i.e., don’t enter surname first). When the file is formatted your bibliographic entries will be alphabetized by the first author’s surname. The output will then be printed surname first, resulting in: Freud, Sigmund Enter the
(5)
name
406
®
Pressing
the
author’s
name.
request for
in
Title is
key
indicates
The Author
you have finished entering the prompt then disappears and the
displayed on the screen.
The REFER Program
(6)
Enter a
title
such
as:
Psychoanalysis and the Couch
® and
Press
(7)
prompt gives way
Title
to Journal.
Continue through the prompts, answering those that you want, leaving others blank until you get to Abstract. After each entry press
(8)
the
® to
move
to the next
prompt.
When
the prompt Abstract appears, start entering comments about the mythical book you are citing. Since abstracts are invariably longer than one line, refer is designed so that the key now
®
works
in the
normal fashion, opening up
not shifting to the next prompt.
comments
You
a
new
line for text
and
can enter several lines of
in the Abstract field.
How
do you
since
®
is
refer
let
acting in
know you
are finished
normal way?
its
the abstract you enter the
When
making comments, you have completed
command: CTRL-D
(While holding
down
the
CTRL
key, press the d key one time.)
The prompt Continue? should appear on
(9)
the screen.
You have
two choices: (a)
If
you are finished entering
citations
and want
to return to the
Shell type no or quit\ (b)
If
you want
new (10)
continue adding citations, you can Author prompt by pressing the key. to
with a
start
®
You have now worked through
the fundamental process of enter-
ing bibliographic information using the refer system. There are several things to keep in mind while entering citations into refer. (a)
Mistakes: Don’t worry about mistakes, as they can
easily be
edited later; (b)
Irrelevant fields
Prompt
Fields: Simply pass over (with a
which do not pertain
ignored
when
to
your
citation,
®
and they
)
those
will
be
the formatting takes place;
The REFER Program
407
(c)
dealing with multiple authors, enter which will call the name of the first individual, then press the up the Title prompt. Instead of typing the title, enter This procedure will bring tninus sign ( ) and then press can up another Author prompt. The names of several authors
Multiple Authors:
When
®
®
—
in this fashion.
be entered (d)
.
•
Titles: Titles are often too long to
Lengthy
Because of
this users will often enter
most of
fit
on one
line.
a title and, see-
near the right edge of the screen, press They then find themselves facing the next prompt entry is instead of a new line to finish entering the title. If an enter a too long for one line (such as a long title of an article)
ing that the cursor
®
is
.
backslash (\) as the last character in the line before. pressing the new line, but key. The cursor will move to the start of a (because of the backslash) that line will be considered part of
®
the previous line. (e)
Terminating a Citation: If while you are entering a citation you must quit (or you have totally messed it up) just pass until through the remaining prompt fields by pressing the you reach the Abstract: prompt. The CTRL-D will bring up the prompt: Continue? At that point you can either bail out or when you start a new cycle with a new Author prompt. Later,
®
edit the
(II)
To
learn
file,
how
you can remove any aborted
to edit, format,
and
partial citations.
print the bibliography
you will Use the
entered into your database file. to enter the information for at least four published works. Use journal articles or books, but avoid articles written by one author and located in a book edited by someone else, as we’ll
need several refer prompts
-
citations
get to that later.
Editing the File
(1)
have entered your last abstract and have been presented with the Continue? prompt, enter the command:
When you
vi
This permits visual editing of your database file. You can only enter the visual editor when addbib presents the Continue? query.
408
The REFER Program
(2)
(3>
Once you have entered
the visual editor, examine the file. It should look similar to the database file located at the end of this Module. Note that the citation information begins with %T
%A
%J
and the abstract material
etc.,
%A
The
%T
and
field.
at
the end of each citation.
characters which begin each line are the refer
codes placed in the
other data
is
by
file
Your
each Author, Title, or complete entry should look something
refer
first
to identify
like:
%A %T
Sigmund Freud Psychoanalysis and the Couch
%J The Vienna
%D %V %X
Circle
1897 2
Brief account of criteria for selection
of couch for office: not too hard, nor sleep inducing.
When
the addbib program prompts you with Author, it places the in the file, followed on the same line by whatever you type,
%A
®
you press The interactive process of incorporating the prompt with the data you enter is how each field {Title, Journal, until
Date)
is
.
created.
Because you entered vi when you were presented with the Continue? prompt, you can now visually edit database as you would any file. The visual editor may be used to correct spelling errors, modify each abstract, or delete aborted citations. Notice that there is a blank line between each full citation. The blank line is used by refer to keep all the information concerning
one
citation
Do
together.
not delete these blank
lines.
They are
essential.
When
%T)
be certain all the prompt abbreand the blank lines are still in their
first citation
(your mythical article by Freud) and
finished editing the
viations (such as
%A
or
file
proper places.
Remove make any
the
other corrections you wish.
ZZ. The
When you
are finished edit-
ZZ command
does not take you back to the Shell, but rather to the Continue? prompt in refer. At this point to continue adding reference citations, or enter no you can press ing, type
®
to return to the Shell.
The REFER Program
409
Returning to the File: When you type no in response to the Condatabase file tinue? prompt you are returned to the Shell, and the storage. What if you want is written onto the disk for permanent addbib database. to add more citations to the file? You simply type When you use addbib with an already existing file, the new citations are appended to the end of the file.
Formatting and Producing a Copy of the Bibliography addbib database you started the process of creating a file called database into which all bibliographic The database file is placed in_ your UNIX entries were made. account (just like any other file) and can be formatted and line
When you
entered the
command
printed.
(1)
A
Screen Display: To get the
file
database properly formatted and
displayed on the screen enter:
database
sortbib
(2)
Line Printed Copy: To send
page
roffbib
a formatted
|
copy of the bibliography
'
to the line printer enter:
database
sortbib
Without Annotations:
If
roffbib
Ipr 1
you want the bibliography printed out
without the annotations a -x option
is
included with the roffbib
command: sortbib
With Page
Offset: If
r,
roffbib -x
Ipr |
you want the bibliography printed with
(a
larger
left
command: sortbib
410
a
one
margin), a -rOli option (minus, upper case O, one, eye) is included with the roffbib
inch page offset
lower case
database
The REFER Program
database
roffbib
-rOli
Ipr 1
i
,
i
1
Explanation of Commands: The
command
lines just presented can
be interpreted as follows: (a)
The
sortbib, sorts the entries in the
file
database by author
(and by date); (b)
The
next sent to roffbib which converts the %A %T %J prompts into specific formatting instructions and then formats
the (c)
file is
file.
Finally,
depending upon what you specify, the
file
is
sent
either to the screen (default) or the line printer.
Use of Fields Not Included (1)
in the
The addbib program does not prompt you
Prompts
with
all
the possible
For instance, if a citation is an article in a book edited by someone else, you are not prompted for Editor?, although that prompt does exist. The following is a complete list of fields that the roffbib program recognizes: fields.
%A %B %C %D %E %G
Author’s name
book in which article is located City where published Date of publication Editor of book which contains the article being Title of
%H
Government order number Header commentary which is
%I
Publisher (Issuer;“P”
%J
Name
is
cited
printed above citation
taken by “page number’’)
of journal
%K Keywords used to locate reference %N Number of issue within the volume %0 Other information or commentary %P
%Q %R
Page number (s) Corporate or foreign author (name Report number
%S
Series
title, if
book
is
one
is
not reversed)
part of such a series
%T Title of book or article %V Volume of the periodical %X Abstract The REFER Program
41
(2)
There are three ways to include fields in your file database which are not in the prompts that refer automatically provides you: (a)
You
can place additional field identifiers and field information directly into the file using the visual editor. First type the usual vi database Shell command sequence. Next, enter the appropriate refer code (such as %E) followed by a space and the necessary information. The
Entering Additional Fields from
v/:
order that you include these fields is not important; refer will Be sure to place all information in an established order. include a blank line between citations. (b)
Entering Additional Fields Using addbib: When you have typed as Title?) all the information for one of the prompts (such key. enter a backslash as the last character. Then press the
®
I
i
For instance: Title: Psychoanalysis
Instead of a
new prompt, you
and
will
the
Couch\
®
be presented with a new
Enter the refer code and appropriate information. Then press RETURN. The next prompt will now be presented.
line.
(c)
Entering Additional Fields by Changing the Prompts'. The third way to use the other refer codes is to change the prompts
presented you to include the set you want. This approach
;
i
will
next be discussed.
(3)
have addbib provide additional prompts (such as %E for Editor of a book), or if you want to eliminate those which you do not use, you must set up your own
Changing the Prompts:
prompt
If
you wish
to
;
list.
addbib present only those prompts that you select yo\x must create a file named prompts which will include the screen prompts you want displayed along with the associated refer codes (%A %B %R %S or whatever). Each line of the prompt file must contain the
To have
following:
(a)
The prompt
(b)
A
(c)
The
itself is
positioned against the
left
single [Tab] character follows each prompt; refer
on the
412
j
code (drawn from the
line.
The REFER Program
list
above)
margin;
and is
the final entry
i
!
;
i
Each subsequent line separated by a [Tab]
will also
include a prompt and
its
refer
code,
.
Note: ITABI means Press the [TAB key. (If you do not have a [TAB key on your terminal, press CTRL-I.) With each [TAB] the cursor may or may not move, and no character will appear on the screen. Because the invisible |TAB| character can be confusing, it is possible I
to
have
on the screen
a character appear
where you
to indicate
entered each ITABI character.
From the Command Mode command (don’t forget the
of the visual editor, enter the following colon):
:set list
Your [Tab]
When
will
now
appear as the
"I character.
you want the [Tab] characters
to
no longer appear
in the ter-
minal output, enter the command: :set nolist
(4)
The prompt
file
which would result
in all fields
prompted would look
like the following display.
Named
Contents of File Author? ITabi
''Prompts'*
%A
Corporate or Foreign Author? [TAB] Article/Book Title? [Tab] %T Edited
Book
Title? |Tab|
%0
%B
Journal? |Tab| %J Edited by? |Tab| %E Title of Series? ITABI
%S
Volume? ITabi %V Number? [TAB] %N Report Number? ITABI
%R
Page(s)? [Tab] %P Publisher? [TAB] %I City? [TAF] Date? [Tab]%D
The REFER Program
413
Government Order Number Header Commentary? |TAB|
|TAB|
%G
%H
Other? [TabI %0 Keywords? |TAB| Abstract?
(5)
%K [TABl %X
established a prompt
Once you have
activated (whenever
the following Shell
you want
file
in
your account,
it
is
to enter citation information) with
Command:
addbib -p I
prompts
database
space
-p prompts included in the above command line instructs addcurrent bib to use the prompts listed in the prompts file in your
The
directory, rather than the standard set.
and print your database file, the sorting (sortbib), formatting (roffbib), and printing (Ipr) com-
When
the time
comes
to sort, format,
mands are the same as described earlier. They the method you use to create the database file.
are not affected by
Entering Bibliographies without Abstracts information without entering abstract comments. The Abstract? prompt will not be presented if you include the -a option with the addbib command:
You may want
to enter bibliographic
addbib -a space
All
prompts
will
database
I
now be used
except Abstract:.
Citing References in Papers
(1)
Incorporating Footnotes: The refer pre-processor not only creates bibliographies which can be appended to a paper, but also takes care of the
414
messy job of footnoting.
The REFER Program
For example,^ the footnote at the bottom of this page was produced by including the following lines in this file: For example, .[
Tuthill 1982 .1
the footnote at the bottom of this
You do
not have to include the entire citation
text; just
(the (2)
name
enough
to
let
refer
identify
page was
.
.
.
point in your
at this
which reference you want
of the lead author and the date
will usually
be enough
to allow refer to access the correct citation).
(3)
Obtaining Formatted Footnotes The
default option in refer is to have footnotes placed at the bottom of the page.
numbered and
Page Bottom Footnotes: When it is time to format and print a file and you want the footnotes placed at the bottom of the page, use the following Shell
command
sequence:
(4)
refer -p
Here database
database the
filename
nroff
-ms
Ipr |
®
of citations and filename is the text file that has the footnote calls embedded in the text. (The -p indicates that you are using the database in your current directory— your t^rivate database instead of the system database.) is
file
—
Listed Footnotes:
The
package will also place footnoted referthe end of a chapter, instead of at the bottom of
ences together at each page. The Shell prints
your paper refer -e -p
'
Bill
refer
command sequence
in this
form includes the
database
filename
Tuthill, Refer-A Bibliographic System,
fornia, 1982.
Computing
line
which formats and
-e option:
nroff
-ms
|
Ipr
®
University of California, Berkeley, Cali-
Services.
The REFER Program
415
With the wherever
-e option footnotes will not in the text
be placed on each page, but
you place the following three
lines;
.1
$LIST$ .1
(5)
Science citations such as this one numbered [Tuthill, 1982] are also possible in place of superscript footnotes. You enter the same footnote marker: Social
Bracketed Citations:
.1
partial citation .1
same manner, but use a different Shell command paper. The Shell command line which formats your
in the text in the
to
format the
paper must include the refer
-1 I
I
-p
-1
(“minus ell")
flag:
nroff
filename
database
-ms
1
Ipr
space
option the senior author’s name and publication date are bracketed at the appropriate text locations.
With the
(6)
-1
Use with Other Pre-Processors: pre-processor (perhaps
Command
tbl
If
and neqn)
you are using more than one for a paper, the correct Shell
sequence would be:
refer -p
database
filename
tbl
I
neqn
nroff 1
-ms
Modification of the Programs the bibliography produced with the refer package is useful for most paper and report writing activities. It does not, however, comply with the specific style requirements of many pub-
The format of
lications (such as the
APA
Psychological Association).
Manual published by the American may be necessary for you to modify
Style It
the refer and roffbib programs punctuate and order the elements of the bibliographic citations. Although such modifications
how
beyond the scope of this edition, the interested reader is prior page. referxtCi to the Tuthill monograph footnoted on the
are
This is an excellent source of information about the refer preprocessing package and describes how to modify these programs.
416
The REFER Program
7
A Sample The following
list
of citation information
which was used the end of this Module: database
%A %A
Bibliography
file
to
is
the contents of the
produce the bibliography located
at
Joel Kies Bill
Tuthill
%T UNIX
Text Formatting Using the -ms Macros
%I Computing Services, University of California
%C
Berkeley, California
%D 1983 %K software document preparation %X All commands and conventions
of -ms are explained for use with the Berkeley system, including table of contents and other fancy features.
%A
Bill
Tuthill
%T
Refer — A Bibliographic System %I University of California
%C
Berkeley, California
%D 1982 %0 Computing Services %X The most complete source refer program.
%A %A %T
A
must
W. Kerninghan Dennis M. Ritchie The C Programming Language Brian
%I Prentice-Hall %C Englewood Cliffs,
%D 1978 %K software %X This the is
%T %I
New
Jersey
handbook for programmers the C language. The rules of the classic
who work in game are carefully
%A
if
of information about the you intend to use refer extensively.
explained.
Joseph F. Ossanna Nroff/Troff User’s Manual Bell Laboratories
%C
Murray
%D
1976
Hill,
New
Jersey
The REFER Program
4
1
%K %X
software document preparation All the specifics of nroff and troff are included
in careful detail, including options,
%A %A %T
Neil
arguments
etc.
Postman
Charles Weingartner Teaching as a Subversive Activity
%I Dell Publishing Company %C New York
%D 1969 %X The classic if
book
for
assisting people to learn to think Heady with new
The bibliography on file is
anyone interested
skills,
is
of interest.
od a
Rhett decider to
the next page results
in teaching,
when
the above database
sent to the sorter and formatter with the following
line:
sortbib
418
table...
The REFER Program
database
roffbib \
Ipr |
command
BIBLIOGRAPHY
Kerninghan, Brian W. and Dennis M. Ritchie, The
Englewood
Prentice-Hall,
This
the
is
language.
classic
The
Cliffs,
Programming Language,
New
Jersey, 1978.
for
programmers who work
handbook
rules of the
C
game
in
Bill Tuthill,
C
are carefully explained.
UNIX
Text Formatting Using the -ms Macros, puting Services, University of California, Berkeley, California, 1983.
Kies, Joel and
the
Com-
of -ms are explained for use with the Berkeley system, including table of contents and other fancy features.
commands and conventions
All
Ossanna, Joseph
New
F., NrofflTrojf User’s
Manual,
Bell Laboratories,
Murray
Hill,
Jersey, 1976.
All the specifics of nroff
and
troff are
included
in careful detail,
including
options, arguments etc.
Postman, Neil and Charles Weingartner, Teaching as a Subversive Publishing Company, New York, 1969.
The
classic
book
learn to think Tuthill,
Bill,
is
for
anyone interested
in teaching, if assisting
people to
of interest.
Computing
Services.
The most complete source of information about if
Dell
Refer-A Bibliographic System, University of California, Berkeley,
California, 1982.
must
Activity,
you intend
the refer program.
A
to use refer extensively.
The REFER Program
419
Module Twenty-Six Setting Tables:
A
Busboy’s Nightmare
The TBL Pre-Processor
Introduction Text processing often requires that information be presented in columns or tables. Merely the thought of having to tediously count the needed spaces, divide by 2, center, backspace, etc., is enough to convince all but the most determined writer to seek
some
alternate
contains
tbl to
way
to present the information.
Fortunately UNIX
help with this task.
Prerequisites In writing this section,
that
(1)
Use the
(2)
Use the basic nroff commands words, and skip lines; and
(3)
Use
visual editor to
Shell
commands
line printer.
420
we assume
to
you are able
add and change text
format a
to
file
center
to:
in a file;
lines,
and send that
underline
file
to the
Objectives Upon completion (1)
Module you should be
able to:
Properly format multicolumn tables which contain numbers,
words or (2)
of this
text entries.
Systematically
troubleshoot
when
do
tables
not
work
as
planned.
Procedure The following introduction to table formatting starts with a two column format and, by adding commands, demonstrates some of the more complex forms which are possible. These procedure steps are grouped
The first simple two column
into four sections.
section presents instructions for formatting a
Section two describes how to send a file containing a table to the formatter. The third section builds upon the simple table by adding more columns and different kinds of data. The last section table.
coo
includes examples of boxes and the use of different sizes of type. mr
A An Example
Table for Two, Please
The following two column display was proUNIX tbi program. This table will serve as the the more complex tables to be presented in later
Table:
duced using the starting point for
sections of this Module.
produce
An
explanation of the
commands used
to
this table follows.
The TBL Program
421
Table
Equipment
Cost
Hammer Radial Arm Saw
14.95
389.50 39.50 69.95
Tool Box Electric
A
Sander
Work Bench
179.
Gasoline Chain
Saw
166.80
How
Tables are Formatted: Tables are formatted by giving specific instructions as to how each row and column are to be presented. Columns are the vertical, up and down units in a table; rows the horizontal, across units.
For example,
in Table
Column One
Cost
Hammer Radial Arm Saw
14.95
389.50 39.50 69.95
Tool Box
Sander
Work Bench Gasoline Chain
A
row
is
the two columns are:
Column Two
Equipment
Electric
A
179.
Saw
166.80
‘‘sliced” horizontally.
The
Equipment and the second row
The TBL Program
row of Table A
Cost
is:
Hammer
422
first
14.95
is:
and nroff
be able to format the display of a table you must provide specific instructions as well as the data to be entered. For all tables you must indicate:
For
tbl
(a)
The number of columns of information (in Table A there are two columns);
the table will contain
(b)
How
to
to
the information in each
column
is
whether each entry should be centered against a
left
or right
numbers, adjusted (c)
The
actual
column margin,
be displayed
in the
or,
column, pushed
the information
if
relative to a decimal point);
information
(data)
you
(i.e.,
want
is
and
placed
in
each
column.
Using the |TAB| Key: The directions were entered as follows:
for
Table
A
using the [TAB
.TS c c 1
n.
Equipment
Cost
.sp
14.95 Hammer Radial Arm Saw
Tool Box
389.50
39.50
69.95 Sander 179. Work Bench Gasoline Chain Saw .TE Electric
What
is
tricky with this
166.80
example
is
that in looking at the
above
you would never know the |TAB| key was used to separate the entries for each row into two columns. For instance, there is a TAB! entered between Hammer and 14.95 in the first row of data. There usually is no apparent symbol. (A |TAB| character tends to be quite secretive.) This is due in part to the fact that the [TAB] key does not adjust your screen display in the same way as the [TAB] key on a typewriter affects the typed page. display
Defining a [TAB] Character: Because the ITABI key can be very confusing to use when setting tables (and is almost impossible to demonstrate here) we recommend defining some other character
The TBL Program
423
which
will
show up on
following table instructions
above, only the plus sign In this
ter.
ded
(
+
)
is
defined as the separation charac-
example the separation character can be seen embed-
in the instructions.
.TS
Instructions for Table
(+)
tab
column entries. The produce the exact same Table A seen
the screen to separate
A Using
the Plus Sign
;
c c 1
n.
Equipment + Cost .sp
Hammer + 14.95 Radial Arm Saw+389.50 Tool Box + 39.50 Electric
Sander -1-69.95
Work Bench
-I-
179.
Gasoline Chain
Saw
-I-
166.80
.TE
(1)
Log onto your UNIX account. Select one of your practice files (such as the musty first file) to use with these exercises. As you read through the following examples, enter the format instructions at
some
interesting point in your
file.
you should follow the format instructions that we present. You could easily change the data to whatever content amuses you, however. In entering the tables into your
file,
Explanation of Instructions for Table This section
will
A
describe the function of each of the above Table
Format instructions used in setting Table A, beginning with the first command line. As you read the following, examine the effect of each command on the formatted Table A. .TS
Indicates that a Table Starts with the next line of text.
It is
one-way command and is paired with the Table Tnd (.TE) command (which must be the last command in the
a
424
The TBL Program
table).
The
entire unit,
from .TS
to
a separate file or placed in a text
where you want the formatted tab( + );Informs the
sign character
(
file at
+
)
in
the exact location
table to appear.
program formatter
tbl
.TE, can be located
that
you
will
use a plus
column
instead of a [TAB] to separate the
program will look for [Tab] characters. The semicolon (;) at the end of this line indicates that the options are concluded and that Without
entries in the input line.
the
actual
column layout
semicolon must appear c c
Instructs
the
first
(a)
(c)
instructions
will
follow.
The
any options are selected.
concerning how you want data entries placed row of the table, namely that: tbl
there are two symbols, therefore the table
matted (b)
if
this line the
in
the
first
(c)
and,
the
centered
be for-
to
two columns,
entry for the
first
column should be
centered
column should
also be
entry for the second
first
is
in
(c).
(These entries
will in fact
be the column
heads.) 1
n.
how
the data in the second row
be formatted. The first entry is to be placed against the left (1) margin of the first column. The second entry is to be one number (n) arranged in the second column so the decimal points are aligned. The period must be included at the end of whichever is the last line of table formatting commands. The period indicates that the formatting instructions are Indicates
is
to
over and that the data to be included in the table will start on the next line. Without the period, the table is not set, and no dinner
most Data
The
will
be served.
common
Failure to include the period
is
the
table formatting error.
actual table information
is
then entered, line by
with a plus sign (-f) separating the column entries. data entry for the first row of the table is:
line,
The
Equipment + Cost
+
move on to the next column. Thus, in the formatted output. Equipment will be in the first column, and Cost in the second.
The formatter reads
the
sign as
The TBL Program
425
When
the
®
RETURN
of the table has been entered the pressed. The next line is then typed,
line
first
key
is
followed by the next, until
all
the data has been entered.
Each row is a separate line in your lines would look like the following:
file.
These remaining
Hammer + 14.95 Radial Arm Saw + 389.50 Tool Box + 39.50 Electric
Sander + 69.95
Work Bench + 179. Gasoline Chain Saw + 166.80
When
.TE
the entire table has been entered you
the conclusion with the
must
indicate
.TE command.
Relationship Between Instruction Line and Data Line: Look back The first line of the format Table A. at the instructions for instructions (c c) and the first line of the data (Equipment + Cost) are both needed in order to format the first row of the table. The formatting instruction consists of two characters, c c which indicates that there will be ter
is
two columns. The
fact that the first charac-
a c indicates that the first piece of information
is
to be cen-
column. The scond c indicates that the data for the second column should also be centered. The first line of data provides the two pieces of information needed for the first row. They are separated by a plus sign ( + ). tered in the
first
The second
line
of instructions and the second line of data—
—
both the data and format instructions for the second row in the formatted table. In this row, the first entry for the first column is to be formatted left, and the second column entry lined up by its decimal point. The last instruction line (1 n.) is then used with all remaining data lines to format all remaining rows in the table. together
Having a Table Formatted
A
General Process Comment: The formatting commands and the table information are both entered into a file just like all other content and formatting commands. The only difference is that if a file
426
The TBL Program
contains a table, it
is
it
must
first
be sent to the
sent to the regular nroff (or nroff -ms,
tbl if
pre-formatter before
you use the -ms mac-
ros) formatter. (1)
A
copy of the formatted table can be displayed on your terminal screen by entering the Shell command line: (2) tbl
(3)
To produce mand line:
filename
tbl
page
|
®
a line printed copy of the table, enter the Shell
filename
tbl
The
nroff \
pre-formatter
table instructions
is
nroff |
Ipr |
a pre-processing
com-
®
program that takes your
and converts them into commands that the nroff
format program can understand. Once tbl is finished, the output must be sent (with the pipe command) to nroff (or nroff -ms) |
where the
table
is
finally
formatted.
Setting
Would
A
Amy
Different Table
Vanderbilt Approve?
There are innumerable variations to the ways tables may be set. A table can be centered on the page or spread out to full page width; entries can be placed differently in the layout; several columns can be created; entries can span columns; and text can be included in addition to words or numbers. Each of these will be demonstrated by making changes in the command structure of the sample Table A you have already examined.
(1)
Locating a Table on a Page: Table A was printed against the margin of the page. Additional choices exist, however.
The TBL Program
left
427
following set of instructions produces a formatted
The
which
is
centered
on the page:
Instructions for Table
.TS tab
(
+
)
Table B,
B
center;
c c 1
n.
Equipment + Cost .sp
Hammer + 14.95 Radial Arm Saw + 389.50 Tool Box+39.50 Electric
Sander + 69.95
Work Bench + 179. Gasoline Chain Saw + 166.80 .TE
The above
instructions result in the following centered Table B:
Equipment
Cost
Hammer Radial Arm Saw
14.95
389.50 39.50 69.95
Tool Box Electric
Sander
Work Bench Gasoline Chain
179.
Saw
166.80
Notice that the only difference between the instructions for Table
A and
Table
the tab
(
+
)
B
is
the inclusion of the
word
between Without the
center inserted
and the semicolon on the second
line.
center instruction, tbl defaults to placing the table against the left
margin, as
(2)
The
did in Table A.
expanded to the with the word expand.
table can be
ing center
Try making.
428
it
first
full
width of the page by replac-
centering and then expanding the table you have been
The TBL Program
(3)
Number Data Placement:
Center, Right, Left, and
In the preced-
examples the column headings were centered over the column, the items (first column) were placed against the left margin, and prices (second column) were lined up according to the decimal ing
points.
We
format the table with both the headings and the content pushed to the right margins. This is effected with the following set of formatting instructions for can just as easily instruct
Table
C
tbl to
:
.TS
Instructions for Table
C
tab( + ) center; r r r r.
Equipment +Cost .sp
Hammer -1-14.95 Radial Arm Saw-f-389.50 Tool Box -1-39.50
Sander -1-69.95 Work Bench -1-179. Gasoline Chain Saw -1-166.80 .TE Electric
The formatted and centered
Table
C
appears as follows:
Equipment
Cost
Hammer Arm Saw
14.95
Radial
389.50 39.50 69.95
Tool Box
Sander Work Bench Gasoline Chain Saw Electric
(4)
The only
B
differences between
179.
166.80
the instructions for
Table
C
and
which appear in Table C, replacing the c c and 1 n formatting instructions. Each set of instructions contains 2 characters, corresponding to the 2 Table
are the two
r
r
lines
(lines
3
and
4)
The TBL Program
429
columns
in
each
table.
The
r
calls
for the
column entry
placed against the light edge, while c formats to the center, the
left
1
to be
against
edge, and n adjusts numbers according to decimal points in
the respective columns.
r, 1,
(5)
Try various combinations of the column entry instructions n, and c.
Headings: Often
it
is
useful to have a table entry act as a
title
or as
This requires that the title be written {spanned) across more than one column. Try the following instructions for a sub-heading.
Table
D
:
.TS
Instructions for Table
tab( + ) center; c s c s c c 1
n.
Table
D
.sp 2
House Building Equipment .sp
Equipments- Cost .sp
Hammer -b 14.95 Radial Arm Saw-f 389.50 Tool Box4-39.50 Electric
Sander +69.95
Work Bench + 179. Gasoline Chain Saw + 166.80 .TE
430
The TBL Program
D
The
above
Table
D
produced
instructions
the
headings
following
in
\
Table
D
House Building Equipment Equipment
Cost
Hammer Radial Arm Saw
14.95
389.50 39.50 69.95
Tool Box
Sander Work Bench Gasoline Chain Saw Electric
The
179.
166.80
command
entered for rows one and two means center and span. Thus, the entry is spanned across both columns of the table. c s
Table Entry
The options
for specifying
Option
Command Summary
placement of table entries
are:
Function
r
Places the entries against the right edge of the column.
1
Places the entries against the
c
Places the entries in the center of the column,
n
Adjusts
s
Spans the previous entry across
all
left
edge of the column,
entries so that the decimal points are lined up. this
column.
The TBL Program
431
(6)
Try using each of the Table Entry Commands to vary the placement of the headings and data in your table. When finished go ahead and eat lunch — you deserve to eat from a table (considering how many you have set). There is more to come. .
.
.
Waiter, a Table for Four, Please
(7)
tables are created by: (1) changing the instructions to indicate the number of desired columns to be used as well as how
Multicolumn
you want the information placed needed table data.
in
them, and
(2)
including the \
Table
E
demonstrates
formatted Table
how
E follows
to create a four
tab(H-) center;
csss csss c c c c
n 1 r. Table E 1
.sp 2
House Building Equipment For Sale .sp
Equipment + Cost + Color -h Condition .sp
Hammer4-14.95 + brown + Beat up Radial Arm Saw + 389.50 + blue + New Tool Box + 39.50 +green 4- Fair Electric Sander + 69.95 + mauve + Untouched
Work Bench + 179. +grey + Bad news Gasoline Chain Saw + 166.80 + red + Trouble .TE
The TBL Program
table.
on the next page.
Instructions for Table
.TS
432
columned
E
The
Table E
House Building Equipment For Sale Equipment
Cost
Hammer Radial Arm Saw Sander Work Bench Gasoline Chain Saw Electric
(a)
The
The
Beat up
389.50 39.50 69.95
blue
New
green
Fair
179.
grey
166.80
red
mauve
Untouched Bad news Trouble
Instructions Resulted in Table
E
each instruction line has four characters means that there will be four columns;
in
fact that
csss) (b)
Condition
brown
14.95
Tool Box
How
Color
first
line
of instructions
should be formatted:
csss
tells
how
means
the
first
it
(such as
row of the
table
center the first (and only) data
entry across all four columns;
The
corresponds with the first line of data: Table E. Therefore, Table E is centered across all four columns. (c)
first
instruction
The second
instruction line
spanned across
all
(csss)
one entry
be four columns: House Building Equipment For also calls for
to
Sale. (d)
The
third instruction (c c c c) calls for centering of information in
each of four columns. Therefore in the third data line there must be four entries separated by the plus + character: Equipment, Cost, Color, and Condition; and (e)
The fourth
line
of instructions
(1
n
1
r.)
tells
the computer
how
format each of the remaining rows: \eft, number, \eft and Tight. Because all of the remaining rows of data will follow this format, the instruction line does not have to be repeated. The period (.) must follow the last character in this line. to
The TBL Program
433
Changing
(8)
In constructing a table
the Setting in
it
may be
Mid-Meal
necessary to change the format
Perhaps a sub-heading or related but different data must be entered. For instance, assume the house building equipment in our example is available at two
after
some of
different times.
the data are entered.
The following
table could
convey
Instructions for Table
.TS tab(-l“) center;
csss csss c c c c
n 1 r. Table F 1
.sp 2
House Building Equipment For Sale .sp
Equipment + Cost "H Color + Condition .sp
Hammer + 14.95-Fbrown + Beat up Radial Arm Saw+389.50+blue + New Tool Box + 39.50 -hgreen-l- Fair .T&
csss 1
n
1
r.
.sp
Available After June 30 .sp
Sander + 69.95 -F mauve -F Untouched Work Bench + 179.+grey 4-Bad news Gasoline Chain Saw + 166.804-red + Trouble Truck -F 1200 -F white + 200K miles .TE Electric
434
that information.
The TBL Program
F
The resulting table— with format middle— follows:
instructions
changed
in
the
Table F
House Building Equipment For Sale Equipment
Cost
Hammer Radial Arm Saw
Color
14.95
389.50 39.50
Tool Box
Condition
brown
Beat up
blue
New
green
Fair
Available After June 30
Sander Work Bench Gasoline Chain Saw Truck
69.95
Electric
The
initial
Table E.
The fourth
placed (1 n
1
r).
.T&
entered.
more
red
Trouble 200K miles
white
for
F
Table
how
Untouched Bad news
are
the
same
as
for
the table data should be
All of the data lines will be formatted following
.T& command
result
is
that
is
commands and you can format
the format of a table, enter
enter
166.80
1200
additional format
The
grey
line specifies
that specification, until the
the
179.
commands
format
mauve
more
encountered.
then
new
Following
data can be
a table, enter data, alter
data, alter the format,
and again
data.
Try creating your own table
in
which the format changes dur-
ing mid-course.
Using Text for Entries
(9)
numbers and
few words, tables can have entries which are entire blocks of text. The following example demonstrates the use of the blocked text option of the table program. In addition to
a
The TBL Program
435
Instructions for Table
.TS tab
(
+
G
center;
)
c s c s c c 1
lw(3i).
Table
G
.sp 2
Housebuilding Equipment
for Sale
.sp
Equipment -f Comments .sp
Hammer + T{ This
a standard 20 oz. nail
is
whomper, well used
in
construction of two houses. T)
Radial Arm Saw-I-T{ An extremely useful tool, can change blade direction for wide variety of cutting angles. T)
Tool Box H-T{
Standard carpenter’s multi level carry everything, find nothing tool box. T) Electric
Sander+T{
Vibrate your eyes out, ears ordinary sander.
fill
your lungs with dust, blast your
T)
Work Bench + T{ Wood,
3
ft
by 6
ft
8 drawer, one vise butcher shop.
T)
Gasoline Chain SawH-T{ Been through two forest fires and four friends’ fireplace supplies. T)
.TE
The
table generated with these
the next page.
436
The TBL Program
format instructions
is
presented on
Table
G
Housebuilding Equipment for Sale
Equipment
Comments
Hammer Radial
This
a standard 20 oz. nail
is
whomper,
well used in construction of two houses. An extremely useful tool, can change blade direction for wide variety of cutting
Arm Saw
angles.
Tool Box Electric
Standard
carpenter’s multi level everything, find nothing tool box.
Sander
carry
Vibrate your eyes out, fill your lungs with dust, blast your ears ordinary sander.
Work Bench
Wood, 3
Gasoline Chain
butcher shop. Been through two forest
Saw
by 6
ft
ft
8 drawer,
fires
one vise
and four
friends’ fireplace supplies.
When
using text blocks in a table you need to
remember four
things: (a)
The width of of the
a text block
table.
number can be brushes.
You
use
The T{
In Table
is
the
stated in the instruction section
G
w(#) where
notation
in inches, picas, points,
column
will
the
#
centimeters, or tooth-
this instruction line reads
cating that the second (b)
is
have a
vf idth
1
lw(3i)., indi-
of 3 inches.
placed after the [TABI character and indicates that a
text block will follow; (c)
The
text begins
(d)
The
T)
is
on the next
line;
and
placed on the next line after the end the text block.
'^Spanning'' Information Across Row^s Tables are seldom as neat and tidy as those we have presented so far. The following example demonstrates how to center an entry across two rows.
The TBL Program
437
.
Instructions for Table
.TS
H
tab (H-) center;
csss csss c c c c
n c n. Table H 1
.sp
Students in Braucher Elementary School .sp
Teacher 4- Grade + Gender + Number McKinney + 64- Boys + 13
V+\''+Girls + 18 Forbes + 7 + Boys + 16
V+V+Girls + 15 Place + 8 + Boys + 17 V+V+Girls + 15 .TE
The above commands produce
the following Table H:
Table
H
Students in Braucher Elementary School
Teacher
Grade
McKinney
6
Forbes
7
Place
8
Note the placement of the
Gender Boys
Number
Girls
Boys
18 16
Girls
15
Boys
17
Girls
15
commands
13
in the data field.
They
not to place any new element in that position, but instead to (2) pull down the information from the row above so that it is horizontally centered across both rows. Thus, instruct the formatter
McKinney and rows {Boys and
438
6
(1)
appear appropriately
Girls )
The TBL Program
at
the middle of the two
Using Troff to Format Tables
You
can format even fancier tables
typesetter.
if
you have access
to a photo-
Consider the following several examples.
Allbox: The allbox in the options line of the instructions results the centered Table I with each data item individually boxed:
.TS tab
Instructions for Table (
+
)
in
I
allbox center;
c c 1
n.
Equipment + Cost .sp
Hammer + 14.95 Radial Arm Saw+389.50 Tool Boxf39.50
Sander + 69.95 Work Bench + 179. Gasoline Chain Saw + 166.80 .TE Electric
Table
I
Equipment
Cost
Hammer Radial Arm Saw Tool Box Electric
389.50 39.50
Sander
69.95
Work Bench Gasoline Chain
14.95
179.
Saw
166.80
Box: The allbox option can be replaced wi^h box, which will produce a single box around the entire table. This is demonstrated in Table J, presented on the following page. The TBL Program
439
Instructions for Table J
.TS tab
(“I")
box center;
c c 1
n.
Equipment + Cost .sp
Hammer + 14.95 Radial Arm Saw + 389.50 Tool Box+39.50 Electric
Sander + 69.95
Work Bench + 179. Gasoline Chain Saw + 166.80 .TE
The box in the options lowing boxed display.
line of the instructions results in the fol-
Table J
Equipment
Cost
Hammer Radial Arm Saw Tool Box Electric
Sander
Work Bench Gasoline Chain
14.95
389.50 39.50 69.95 179.
Saw
166.80
Vertical and Horizontal Line Placement:
It
is
also
possible to
where vertical and horizontal lines should be included inside a basic box table. This is demonstrated in the following Table K, which appears on the next page. The instructions necessary to prospecify
duce the table are presented following.
440
The TBL Program
first,
with the finished formatted table
.TS
Instructions for Table
+ csss csss tab
(
)
K
center box;
c c c c
n c n. Table K 1
.sp
Students in Braucher Elementary School .sp
T eacher -h Grade -b Gender 4- Number Ca vette + 64- Boys 4-13 \^4-\^4-_4-_ \^4-\^ 4-Girls 4-18
Forbes 4-74- Boys 4-16 \^-l-\^-l-_4-_
\^-l-\^-hGirls-hl5 Koettel 4-84- Boys 4-17
V-hV-h_-i-_ -1-Girls 4- 15
.TE
Table
K
Students in Braucher Elementary School
Teacher
Grade
Cavette
U
Forbes
Koettel
7
Gender
Number
Boys
13
Girls
18
Boys
16
Girls
15
Boys
17
Girls
15
8
The TBL Program
The
pipe
placed within the format instructions calls for a single
1
vertical line, while a
double pipe
produces a double
||
line.
The
underscore _ in the data requests a single horizontal line (note that this underscore is not a minus sign, hyphen, or dash)', and an equal sign = results in a double horizontal line.
Changing Type Characteristics allows you to change font types or point size of your printed output. Font type can be affected with the follow-
The phototypesetter
ing line in your format instructions:
cfB
The cfB
s
s
s
s
reads center and span the data across all change font to boldface. Point size can be
s instruction
s
four columns, and affected with the following line in your format instructions:
cpl4
The cpl4
s
s
s
s
s
s instruction reads center
and span the data across
all
four columns, and change ^oint size to 14.
both font type and point size can be affected with the lowing line in your format instructions: Finally,
cfBpl4
The cfBpl4
s
s
s instruction
s
s
fol-
s
reads center and span the data across
four columns, change font type to boldface,, and change ^oint size to 14. The effects of changing font type and point size are demonstrated in Table L which follows on the next page.
all
,
Reference Material: With the material contained in this Module your table settings should please even the most demanding diner. Should you require additional help— and good help is so hard to find these days— you might look at a pamphlet available from Bell Labs entitled TbI—A Program to Format Tables.
442
The TBL Program
.TS tab
Instructions for Table
+
(
)
L
center box;
cfBplZ s s s cpl6 s s s cfBplZ cplZ cplZ cplZ n c n. Table L 1
II
I
.sp
Students in Pat Lloyd Elementary School .sp
T eacher + Grade -b Gender + Number McKinney + 6 + Boys + 13
\^+\^+_+_ \^+\''+Girls + 18
Calhoun + 7 + Boys + 16
\''+\^+_+_ \^+\^+Girls + 15 Place + 8 + Boys + 17
\^+\^+_+_ \''+\^+Girls + 15
.TE
Table L
Students in Pat Lloyd Elementary School Teacher
Grade
McKinney
6
Calhoun Place
Gender
Number
Boys
13
Girls
18
Boys
16
Girls
15
Boys
17
Girls
15
7
8
The TBL Program
443
Table Formatting Shell
Summary
Commands
Command tbl
nrofF
[filel
Function
-ms
Sends
to
filel
results
be
be
will
formatted;
displayed
on
screen.
tbl
[filel
nroff
-ms
|
Ipr
Sends
filel
sends
the
to
be formatted and
formatted version to
the line printer. tbl
[filel
troff
-ms
—Q
Sends
filel
to
be formatted and
sends the formatted version
to
the phototypesetter.
Formatting
Commands
.TS
Notifies nroff that a table follows.
.TE
Notifies nroff to return to
formatting.
Table
Commands
1
left justify
c
center
r
right justify
n
number
s
span
The TBL Program
normal
Module Twenty-Seven Equalizing Equations
The EQN Pre-Processor
Introduction Mathematical equations employing symbols and characters foreign to typewriters are usually hand-drawn for inclusion in papers and reports. With the text preformatters eqn and neqn you can have UNIX format extremely complex equations— regardless of whether they make any sense— allowing you to include equations in your written
work or
reports. wrcDO
Prerequisites Before working on this Module, you should be able (1)
Employ
(2)
Use
the visual editor to add text to a
nroff,
troff,
file;
and -ms macro commands
27
to:
0
and to
have
files for-
matted and printed.
Objectives After completion of this (1)
Module you should be
able to:
Write instructions necessary to properly format a wide variety of mathematical equations;
445
Have equations numbered, centered
(2)
as figures, or included in
the body of text; and
Make
use of eqn reference materials to solve cated equation formatting problems.
(3)
more compli-
Procedure format mathematical equations including a very wide variety of mathematical symbols— providing you include the proper instructions. Although this process is designed primarily for use
UNIX
will
with
more
versatile output devices
(such as a phototypesetter or
with graphics capabilities), basic equations .employing only keyboard characters can be displayed on a terminal of modest intelligence or a standard line printer.
terminals
This Module is in two sections. In the first, simple equations that can be displayed on most terminals will be employed to illustrate the general formatting processes. The second section will demonstrate several more complex examples which you will probably not be able to view on your terminal. Normally you will need to use a typesetter or similar device
(See
Module Nineteen:
to
properly format these equations.
Phototypesetting with Troff for
more
infor-
mation about typesetting.)
Single Line Equations
(1)
(2)
Basic Formatting Steps: Log onto your UNIX account. When the Shell prompt is presented start a new file called eqn, example. Enter the following two lines
in the file:
.PP This
Then
file is
an example
for equations.
enter the following three lines:
.EQ 6 times 5
.EN
446
file
eqn
=
30
The .EQ
is
a one-way
command
that tells the pre-formatter an
The conclusion of the equation specifications is marked with a .EN instruction. As with all formatting commands, the .EQ and .EN must be on lines by themselves and must start with periods. Whatever is typed on
equation
begin with the next
between the two commands
lines
(3)
will
line.
will
be formatted as an equation.
Formatting Files that Include Equations: To have the terminal display your eqn. example file with its formatted equation, you should return to the Shell and enter the following:
neqn
The
\
eg n.exa triple]
nroff \
-ms
|
resulting equation should appear centered
®
page
on your screen
as:
6x5=30 (4)
The neqn program formatting package. specific
commands
is
a preformatter for nroff with the It
-ms macro
translates your equation instructions into
that can be formatted by nroff.
Thus the
file
be sent to neqn and then piped to nroff. (In the above example, the formatters replace the word times with a multiplication sign, and then properly center and space the equation.)
must
first
designed to do the best possible job of formatting equations for terminals and line printers, given the constraints of available characters and full line spacing on most
The neqn preformatting package
is
terminals.
could just type 6x5 = 30 without ever invoking the preformatter,” you say. True, but the keyboard characters and spacing capabilities of most terminals would make the following equation a ‘‘But
I
tad difficult:
t
=
1.96
Although terminal display of such equations is seldom possible, you will soon be able to enter commands to have UNIX produce monsters like this one on a typesetter.
eqn
447
When
be produced on a typesetter (and not a line printer or your terminal screen) you enter the identical formatting commands in your text, but a different preformatter is employed. The troff preformatter is named eqn, while neqn is the nroff preformatter. The eqn preformatter interprets the same formatting commands, but in a way to take advantage of the wide the final output
is
to
range of symbols and spacing capabilities provided by a typesetting
machine.
When
neqn interprets the formatting commands, it uses the keyboard symbols to approximate as well as possible the mathematical symbols requested. As could be expected, the neqn interpretation of the formatting nals
(5)
is
commands
as printed
on
line printers
and termi-
often less than satisfactory.
you employ the -ms macro package with either nroff or troff, equations are centered on a page unless you instruct otherwise. To have the equation placed next to the left margin of the text, replace the .EQ with .EQ L (as in the fol-
Placement on the Page:
If
lowing instructions):
.EQ L 5 times 6
=
30
.EN The
resulting equation appears at the left margin:
5x6=30
(6)
Equations can be indented from the left margin much like paragraphs. To have the equation indented, use the starting command .EQ I (I Indent) followed by the content of the equation. For example:
.EQ
I
5 times 6
=
30
.EN The product, upon formatting,
5x6=30
448
eqn
is
in
an indented equation:
(7)
Identification: Equations can also be
numbered
or labeled.
Con-
sider:
.EQ (Equation-A-) 5 times 6
=
30
.EN The above
set of instructions
produces the following labeled equa-
tion:
5x6=30
(8)
(Equation-A-)
no spaces in the label. The formatter is programmed to accept only one “word.” If you do want a space character in a label (such as “Equation A”) you must specify the space with a backslash and zero \0 such as:
Note
that there are
.EQ (Equation\0A) 5 times 6
=
30
.EN The equation
with a space in the label appears:
5x6=30
(9)
(Equation A)
Inclusion within a Line of Text: The process of placing equations within a line of text text is slightly more complicated. First, the formatter must be informed of the symbol you are using in the text to indicate where an equation is to be included. Then it must
be given equation formatting instructions. signs can be used as an equation delimiter lines are entered in a file:
For instance, dollar if
the following three
.EQ delim $$
.EN Once
the formatter reads to the above lines
equation instructions
all
text located
it
will
then treat as
between two dollar
signs,
eqn
even
449
they are in the middle of a line. This process makes it possible to place equations in the middle of a line of text. The following if
line in a file:
Simple equations such as $5 times appear formatted
will
if
you need
=
30 $ can be included.
as:
5x6=30
Simple equations such as
What
6
can be included.
normal purposes? To do so you enter:
to use a $ for
have the delimiter turned
off.
its
You must
.EQ delim
off
.EN
Advanced Equations Using Mathematical Symbols The
following examples will not look very satisfactory on most ter-
minals.
the eqn
You should
enter
filename
you are not familiar with the
Nineteen: Phototypesetting with
to
troff \
then send them to -ms for formatting and file,
do
this will be:
-ms
troff text
processor see
Module
Troff.
Available Symbols: Table 1 presents a list of symbols available on eqn. They are approximated as closely as possible by neqn for line printers
(2)
your
The usual command eqn
(1)
into
preformatter, and then to troff
phototypesetting.
If
them
and terminals.
Marks: Quite often an equation requires that a vector, bar, underline, and other diacritical mark be placed on top or below letters or symbols. The commands which create Use
of the Diacritical
these effects are bar, dot, dotdot, dyad, hat, tilde, vec, and under.
The
450
selected
eqn
command,
if
placed after any letter, symbol, or
word
Table
1
Symbols Available with Mathematical Symbols Input
eqn
Greek Letters
Results
Input
Results
DELTA
A
•
GAMMA
r
grad
V V
LAMBDA OMEGA
half
'/2
PHI
n o
inf
oo
PI
n
int
I
PSI
approx cdot del
n
inter
SIGMA THETA
nothing partial
prime prod
I
UPSILON
d f
A
0 Y
XI
Tl
alpha
a
sqrt
V
beta
/3
sum
I
chi
X
times
X
delta
8
union
u
epsilon
e
eta
V
gamma
y
iota
L
« »
kappa
K
lambda
\
±
nu
V
omega
OJ
omicron
o
pi
7T
—
->
+ = —— -
mu
1
>
• • •
1
= >
•
•
•
>
rho sigma
P
X dotdot
X X X x
tau
T
X hat
A JC
theta
9
upsilon
V
X bar X
under
X dot
X tilde
X vec X dyad
X X X
psi
a
xi
zeta
c
eqn
451
the formatting instructions, will position the mark appropriately equation. in the output. This is demonstrated in the next
in
.EQ X hat
Y
+
dyad
—
OMEGA
under times
+
word vec
A
tilde
+
y dotdot
.EN The above
material produces symbols with diacritical marks:
X
(3)
T T—
_n X
word
+ A +y
A
wide range of equations is possible using the mathematical symbols, Greek letters, and words. Consider:
Greek Letters:
.EQ union 24 apples
+
dough
+
spices
->
4 PI
.EN The above instructions— when properly baked by
the formatter-
produce:
IJ 24apples^dough-\-spices^4U
Of course,
a corollary
is:
*
.EQ int 4
PI
+
4 people
-> approx
4
SIGMA
I
K
people
.EN
J (4)
452
4Y\-\- 4 people—^^41.1 Kpeople
Spacing and Lines: Before we enter more complicated equations it is necessary to describe how the eqn and neqn preformatters handle spaces between words, characters, and lines.
eqn
(a)
Spaces are used to delineate the “pieces” of an equation. For instance:
.EQ 5
OMEGA
times 6
= sum
+ LAMBDA
x dot
.EN is
formatted
as:
50 x6=^;c+A If
some of
the spaces are not included:
.EQ
50MEGA
times 6
= sumx
dot
+ LAMBDA
.EN the formatted equation
comes out looking
quite different:
IOMEGA x6=5w/7ix+A When
comes
50MEGA
does not recognize the string of characters as code for any symbol, so the string is printed out as is. Likewise, because sumx is not in its the formatter
repertoire,
the
sumx
is
to
printed.
it
Then eqn
follows the dot
instruction by placing a dot over sumx.
Summary: Spaces
are essential for the formatter to recognize
each part of instructions.
(b)
Extra spaces are ignored:
.EQ 5
OMEGA
times 6
=
sum
x dot
+ LAMBDA
.EN is
formatted with proper spacing:
5n x6=]^xTA
eqn
453
I
(c)
Use the
tilde
equation.
~
if
you want extra space included within an
For instance:
.EQ
OMEGA ~ LAMBDA ~
5 '
times
^
~
6
"
sum
~
x dot
'
+
.EN produces a spaced equation:
5
0x6=
Notice the differences
formatted
(d)
in (b)
and
in
+ A spacing between the equations as
(c).
example of diacritical marks (procedure step 2) each element was placed on a separate line, yet the output appeared as one ‘‘equation.” That is possible because the formatter treats spaces between words and the ends of lines simply as the “edge” of symbols. Thus one equation can be entered on In the
several lines in a
file.
To
offer another
example,
.EQ 5
OMEGA
sum
times 6
X dot
4*
LAMBDA .EN
.
continues to produce:
50 x6=51-^4-A This multi-line input property of eqn is especially useful trying to keep your formatting wits about you.
454
eqn
when
More Complicated Equations
Yet This
element examples of more difficult to format equations. The first seven steps describe how to effect changes in vertical spacing, such as: section
introduce
will
single
6x 3
Later
steps
together in
how
demonstrate
bracket
to
elements
which
go
more complex examples: 6U-f3)
(5)
Exponents: To have an exponent or sui^erscript added number, letter or symbol, the sup instruction is used.
to
a
For
instance:
.EQ
A
sup
+ B
2
sup
2
= C
sup
2
.EN produces a superscripted equation:
^2+52 = (6)
(^2
Subscripts: Likewise, subscripts are formatted with the sub instruction.
For example:
.EQ
X
sub
3
+ Y
sub
j
“ Z
sub
ii
+ R
sub alpha
.EN
Upon
formatting,
the
above instruction produces
a
subscripted
equation:
eqn
455
(7)
Subscripts and Superscripts: If you want both a subscript and a superscript on the same symbol, the subscript must precede the sup^/'scr/77nnstruction (alphabetical order). For instance,
.EQ
Y sub a sup 2 + X sub b sup alpha = Z sub garbage sup
3
.EN is
the instructions for sub and superscripted symbols:
ya_73
y2i ^
^garbage
a
Reversing the order of sup and sub results
in a
very different out-
put.
.EQ
Y sup 2 sub a + X sup alpha sub Z sup
b
=
3 sub garbage
.EN produces the following equation with subscripts on the superscripts:
2 ^garbage
y
(8)
Fractions:
The magic
instruction to format fractions
sider:
.EQ 30 PI over 6
=
5 PI
.EN will
produce:
30^=5n 6
456
eqn
is
over.
Con-
(9)
Limits:
Statistical or
mathematical equations
of limits on symbols such
etc.
as:
may
require the use
For example:
.EQ
Y =
from 0 sum from
int
^
to 1 1
~
x
dx
N
to inf
~
~
1
.EN The following
The
limited equation
from
instruction
is
produced:
identifies the lower limit
and
to identifies the
upper. (10) Brackets, Braces, Parentheses, large parentheses
tions
and
left
and Bars: Equations often require
around whole sections of symbols. The right
when
associated
with
brackets
and bars (the pipe) include an appropriately large symbol
parentheses
(
formatter to
),
braces
I
I,
instruc-
\
will \
{
),
cause the
in the output.
For instance:
.EQ left
A
(
over 6 ~
~
right left
)
{
3 over sqrt b right
“
-
~
}
left I
X dotdot over y sub alpha right
I
~
PSI
.EN The above
instructions produce:
eqn
457
(11)
Grouping Parts of Equations: What you have learned thus far will permit you to format a wide variety of equations. Problems arise, however, when it is necessary to use several elements following a format instruction (such as over or sup). Consider: ^cos a +
/
This looks like a simple figure to format. most people try is:
The
first
solution that
.EQ e
sup cos
~
alpha
“
+
~
t
.EN But the computer does not know that all of cos, alpha, and + t are to be placed as the exponent. In fact, it is programmed to superscript only the next symbol. As a result, the formatter produces an errant: ^cos
The way together.
^
J
avoid such surprises is to bracket symbols that go You must use, of all things, brackets { } .
to
For instance, the format instructions:
.EQ e
sup {cos
~
~
alpha
t}
.EN uses brackets to enclose those elements that are all to be placed in the exponent. The resulting output is appropriately superscripted: ^COS a
+
t
communicating with the formatter. In the previous section you were introduced to brackets
The brackets used
in this section are for
formatted equation to assist the reader. The difference is in the instructions left and right. If the bracket is used without left or right, it will be read by the formatter only as which were printed
458
eqn
in the
bracket
is
elements which
those
identifying
discarded.
together,
stay
the left or right
If
and
command
then
the
precedes the
bracket, the formatter will include the appropriately sized bracket in the final output.
(12)
Examples
of
Complex Equations Using Brackets: Each of
the fol-
lowing equations includes brackets that identify entire sections of the equations which need to be treated as units. Any complex group of symbols, letters, and numbers, if surrounded by brackets, can be used where just one symbol normally would be used. ations of the previous examples are:
Vari-
.EQ (Example\OA) {6
(x
-f
3)}
over {sqrt (3
+
X bar)}
.EN 6(x--h3)
(Example A)
V 3+x .EQ (Example\OB) {6
{(x
+
(sqrt (3
3)}}
+
e
over
sup (cos alpha}}}
.EN 6(x-h3)
.EQ (Example\OC) alpha Y~ =~ int from B sub (alpha sub 1} {
,
(Example B)
1}
to
{
delta
,
3}
+ C sub (beta sub 2} + D sub (delta sub 3} — (x + y -b z} bar .EN 8,3
y
=
J
(Example C)
eqn
459
.EQ (Example\OD)
Y {{
~ ~
~ ~
sin {(
omega
from
2 pi int t
+
to inf
1
6)}}
over {3 alpha}} •
dt
.EN oo
sin(ajr+6)
r
(Example D)
3a:
.EQ (Example\OE) ~ t
{X bar sub E ^
AT
X
bar sub C} over {sqrt {S sub X sup 2 left ( 1 over {n sub 1} •
=
•
~
-b
~
over
1
{
sub
2}
right
)
1.96
.EN
(Example E)
—
.EQ (Example\OF)
Y
=
-
sum from {
OMEGA
(i
4-
=
0}
3.7}
sqrt {alpha sub 1
to
{i
=
inf
}
over
+
beta sub 1}
.EN
r
'y /=o
n-h3.7
(Example F)
}}
.EQ (Exainple\OG)
=
sigma sup 2 ” 1 over k sup 2 sum from i = l left
1
"
to
k
(
over n tilde sub ~
over
delta sup 2
2m
{
right
i
sub
i
}
)
.EN 6
2
or
^
(Example G)
2m,
.EQ (Ex.\0H) {left
sup 2
+
(
{xi
}
over x sup 2
I
nu sup
2
}
over sqrt 6
right
1
}
"
sup 3 left
=
~
(6 sqrt (3 z times
I
OMEGA}}
over
Z sub nonsense •
-
41
+
-
right
1
psi hat
times left (
a
(
+
right
b
+
c
}
bar
)
.EN 3 1
6V3zx n
V6 x'
(13)
1
z ^nonsense
Arranging Several Symbols bols or
-41
(Ex.
a-\-b-\-c
in a Display: Vertical arrays of
numbers can be formatted with
example of
X
±\jj
this effect begins the
the pile
H)
sym-
command.
An
eqn
461
next page.
The
following instructions are interpreted to produce an equation
containing a vertical array:
.EQ
OMEGA {W
right
•
left
[
above 2 above 3 above
pile {1
pile
~
X
above
above
Y
4}
above Z)
I
.EN
a
The next example shows how justified
1
w
2
A
3
Y
4
Z the ‘‘piles” can be
left
or right
and rpile commands. Note the placement of elements between the two columns in
by
using
difference in
the
the formatted version.
column; the beta
Ipile
The alpha
is
against the left of the
first
to the right in the second.
.EQ
OMEGA left
I
(alpha above (2.78 over A) above (x
Ipile
4
left
I
I
rpile (beta
right
above 5.32 above (a
+
I
.EN a 2.78
13
A
x+y 4A
eqn
y)
LAMBDA)
right
462
+
5.32 -h
a-\-b
b)
above PSI)
above
The
(14) Matrices: If
command
formats each column independently. you have an array of elements that vary in height in different
columns,
pile
will
result
make
ments
in all
columns.
at
all
being
spaced
columns and
entries in the matrix.
all
that there be the
is
An
look
will
spacing decisions based on
The major requirement
columns
different
in
The command matrix
differently.
then
pile
same number of
ele-
example:
.EQ matrix ccol
~
~
OMEGA
'
left
l{
{
{alpha above
(2.78 over
A
}
above (4 LAMBDA }) ccol (beta above 5.32 above (a -f b} above PSI)
+
above (x
y)
1
1
right
1
.EN a 2.78
5.32
A
x+y
a-\-b
4A
The in
instruction ccol results in the matrix elements being centered
The
each column.
elements
at
the
left
and rcol, which place the of columns, respectively. Another
alternatives are Icol
and
right
example (and the formatted equation):
.EQ
Y
-
matrix Icol
(
ccol
(
rcol
I
=
>
{
X Y Z
sub alpha above (153 + 2z) above .09 t) sub beta above (186 - 5n) above 1.3 s) sub gamma above (264 -f 3s} above 80 g)
1
.EN
1534-2Z .09/
186-5// 264+3^ 1.35
80.C
eqn
463
(15)
Type Size and Font Selection: Point
size
and type font can be
specified for individual characters in an equation or for
all
charac-
For any specific character the point size of the type can be specified by the instruction size [N] where N is a point size from 6 to 36. Here you see a 36 point Omega and 6 point “D”: ters.
.EQ size 36 pile
A
{
right
~
OMEGA above
~
left
I
B above C above
size 6
D
}
1
.EN
A
B C
by the 36 point type size specification. The formatter reverted back to standard (11 point) type for all symbols, until it encountered the next point size change command. The D was then specified to be in 6 point type.
Note
that
only
the
Cl
was
affected
In addition to point sizes, the fonts can be specified by: roman, italic, bold and fat. The fat specification makes the letter or symbol slightly
For instance, these instructions different fonts for each column:
“heavier” result in
in
whatever font
is
in use.
.EQ size 36 pile
OMEGA
"
=
~
left
I
{
italic
{A
+
14
r
sup
2)
above bold {B - 12 c sup alpha above roman {C 4- 43 d sub j above fat {D times 78 del sup 2 right
I
.EN
A-h\4r^
B-12c" C+43dj
Z)x78V2 464
eqn
}}
(16)
Changing the Exact Location
of
Symbols:
If
you are unhappy with
the exact placement of characters in the formatted equations in the
copy of your output it is possible to “fine tune” the placement of symbols. When we saw that the H in the above equation was not centered relative to the equal sign, we modified the format first
instructions as follows:
.EQ down 60 size 36 pile
OMEGA
~
^
left
I
{
{A
italic
+
14
r
sup
2)
above bold {B — 12 c sup alpha} above roman {C + 43 d sub j } above fat (D times 78 del sup 2 }} right
I
.EN The
resulting formatted display has the
Omega
properly placed:
A-hl4r^
B-
1
2c"
C+43dj
DxlSV^ The down
Number]
command
symbol or brack-
In this case the instructions
about the size of the letter (in this case 36 point), the O
is
In addition, \
affects only the next
down 60 call for the omega be moved down 60 one hundredths of an “em.” Since an “em”
eted unit. to
\
the
m is
commands up
whatever type is being employed lined up with the equals sign.
in
\
Number]
,
back Number] \
,
and fwd
Number] will re-position the immediately following symbol.
(17) Global Font or Point Size Changes: The eqn formatter will type all equations in 10 point type unless you specify otherwise. You can
any point instruct the formatter to employ a different basic point size (or type font), which will be used until you specify another. (For more information on this process see the number registers section Module Nineteen: Phototypesetting with Troff.)
at
eqn
465
The
global
command
to affect the point size of the equation
The not the surrounding text— is gsize \Number\ [7^ is used to specify the font (where \Font\ is .
Roman). For
command Italic,
— but gfont
Bold, or
instance:
.EQ gsize 14
gfont italic
==
omega
from here
int
to eternity
LAMBDA GAMMA EPSILON .EN produces an
italic,
point size 14 equation:
eternity
APE
(JL>=
here
Changes specified.
sees
fit.
and font remain in effect until a new one is The size and font may be changed as often as the author These changes affect only the equation and not the sur-
in point size
rounding
text.
Obtaining Output: Typeset:
mand
If
the output
is
be typeset, the Shell execution com-
to
is:
eqn Line Printed: execution
If
the output
command
troff
,filename\
is
to
line printer, the Shell
be sent to a
is:
neqn
[filenamel
nroff
-ms
Ipr |
with eqn: If tables are also included preformatter should precede the eqn process:
Using
tbl
tbl
466
eqn
®
-ms -Q
[filename]
\
eqn
troff |
in the file, the tbl
-ms -Q
Using refer and are included in a
cessers
with eqn: If tables, references, and equations file, the proper order for using all three prepro-
tbl
is:
refer -p database
filename
eqn
tbl
-ms -Q
troff
®
Command
sequences include a -Q for placement of the job in the troff queue. If your installation uses some other troff queue procedure, remove the -Q and substitute the proper argument. Note: Three of the above Shell
Detecting eqn Format Problems: UNIX maintains a program which
check your equations for formatting errors. Before you have a paper containing sophisticated equations formatted you might want to let checkeq review your work. The program isn’t foolproof, but it can be of some help pointing out possible trouble spots.
will
The
Shell
command
line to
use checkeq
checkeq
filename
Additional Reference Material:
Two
is:
page pamphlets
in
wide distribu-
tion are:
TBL— A
(a)
Program Laboratories, and
(b)
Typesetting
to
Format Tables, by Lesk, published by
Mathematics— User’s
Guide,
by
Bell
Kernighan
and
eqn
467
Cherry, published by Bell Laboratories.
Module Twenty-Eight Troubleshooting
Introduction Problems encountered while using UNIX are both frustrating and not uncommon, owing in part to the complexity and power of the system (and the vagaries and moods of any electronic beast). This cannot be a comprehensive section, due to the incredible variety of We have, however, errors possible with the UNIX system. attempted to address the more common problems encountered by us and the many UNIX users with whom we have worked.
Prerequisites Before using (so,
what
this
else
is
Module you should have encountered
a
problem
new?).
Objectives After reading the diagnostic section of this Module you should, in many cases, be able to locate the appropriate remedy for your
problem in the second where to start).
468
part of the
Module
(or
have some idea as
to
Procedure The procedure section of this Module is presented in five parts. The first section is designed to help you diagnose your problem. you to the the Module where the remedy to your
This material should be read carefully, as appropriate location (s) in
it
will direct
problem may reside. The remaining four sections include descriptions of the most common problems we have encountered and our These problem-remedy paragraphs are suggested solutions. presented in four major groupings: /
Problems Logging On;
-
II
Unexpected Formatted Output;
-
and Error Messages; and
III
-
Shell Problems
IV
-
Editing Problems.
Each of these groupings begins with an index to the problems it addresses. The diagnostic section will refer you to the appropriate solution section.
The lier
section entitled Resetting Your Terminal Type referred to in ear-
Modules
is
part (H) of section
IV
-
Editing Problems.
Diagnosing the Problem working with UNIX you know you’ve got a problem when something unexpected happens (why did that funny message appear on my screen while I was editing this file?) or when you accidently do something resulting in an expected, but undesirable outcome (why did I delete the first thousand lines from the report To begin diagnosing your problem you I just finished editing?). should consider in which category your problem falls:
When
(1)
you are experiencing difficulty logging on the system, proceed directly to the first problem-remedy section
Problems Logging On: to
of this
(2)
Module
If
entitled Problems Logging On.
Unexpected Formatted Text Output: If your problem unexpected output of formatted text proceed to the problem-remedy section: Unexpected Formatted Output.
Troubleshooting
is
with
second
469
(3)
The other unexpected or undesirable Module can be classified as occurring either
Shell or Editor Problem:
events covered
in this
while you are interacting with the Shell or with an editor.
you know you were interacting with the Shell when your problem occurred proceed to the third problem-remedy section of this Module entitled Shell Problems and Error Messages. If
If
you were
in
an editor
occurred proceed to the
Mode when
final
the troublesome event(s)
problem-remedy
section: Editing Prob-
lems.
you are not sure where you were when the trouble began continue to procedure step (4), which follows. If
or
RUB
DEL or logged on you should press the |DEL
RUB
DEL
(4)
key can be your If
you are
light
still
through the darkness,
key.
nothing happens you are probably no longer in communication with UNIX. This means that either your keyboard has locked up, or the system has crashed or that you have in some other way been disconnected from the system. In this case we can offer little assistance and suggest you locate an experienced user near by or talk to whoever administers your local system. (As software types we can only offer the time honored response, '"Hey, what can I If
say? That's a hardware problem."')
communication with UNIX when you pressed the DEL or |rub| key one of three things probably happened:
If
you were
in
I
The terminal' "beeped". You are in the visual editor. If you were in Command Mode, you were left there and the beep sounded. If you were in Append Mode you were move d to Command Mode and the beep sounded. (The |DEL| key
works
Mode
like the |ESC| key, in that if
minal to (b)
moves you
to
Command
you were in Append. It will, however, cause the beep regardless of which mode you were in.)
ter-
The word "Interrupt" appeared on the screen. You are in the line editor. If you were in the Append Mode, you have been moved to Command. If you were in Command Mode, you
remain there.
470
it
Troubleshooting
A
(c)
process.
mark appeared on the screen. You were in a Shell By pressing the |DEL| key you ended the process
(killed
and are presented with another Shell prompt.
question
it)
At this time you should know were you are and have two choices about how to proceed. If you feel like your problem is solved — and have no need for further information — then continue with your work. If you desire to know more about the troublesome event you should examine the index of the appropriate problemremedy section of this Module and read the related information.
Organization of Problem-Remedy Sections: Each of the following problem areas is divided into symptom categories {A,B,C, etc.). Each symptom has listed under it one or more possible causes. The proposed remedies (identified with a •) are placed below each of the symptoms.
Section I
-
Problems Logging
On
INDEX (A)
No Cursor
(B)
Strange Characters Appear on the Screen
(C)
Cannot Get Logged In
(D)
No Login Banner
PROBLEMS
and
REMEDIES
No Cursor (1)
Brightness turned down, or terminal in,
•
is
not on,
not plugged
or in need of repair.
Make
turned up, switch is on, the terminal is plugged in, and you have given it 15 seconds to warm up. If still no cursor appears, try another terminal and report the problem. sure the brightness
is
Troubleshooting
471
(B)
Strange Characters Appear on the Screen Switch settings of terminal are wrong.
(1)
• Try a dilferent terminal. • Examine a similar terminal for proper settings.
Terminal
(2)
is
receiving noise from line or
modem.
• Try a different terminal. • Logoff (hangup phone and/or turn off the modem). second time.
Logon
a
• Report problem for service.
(C)
Cannot Get Logged In Error
(1)
made
in
entering either the login or password.
• Carefully enter each “word,” leaving no spaces between the characters in your login and password. There probably are no upper case letters or spaces in either (upper vs. lower case is critical).
The system does not recognize
(2)
either the
password or
login.
• First be sure you are correctly entering the “words.” Then check with the system administrator to be certain that you have an exact copy of a working password and account login.
(D)
No Login Banner (1)
Dead
connection with UNIX central.
• Try another terminal.
• See
if
anyone
else
is
logged into your system.
• Call the system administrator. (2)
System went down.
• Scream,
472
cry,
Troubleshooting
go play tennis; see system administrator.
Section 11
Unexpected Formatted Output
-
Many
formatting problems can be identified in advance of actually formatting the file by employing the check nxoff program. From the Shell enter checknr filename to locate potential problems.
Module Nine
for
more information about
See
the checknr program.
INDEX (A)
No Output
(B)
Margin
(C)
Extra Underlining
(D) Text (E)
Is
Not Where
Not
Is
Should Be
Filled
Missing Text
PROBLEMS (A)
It
and
REMEDIES
No Output Entered incorrect
(1)
•
Make
certain
command
the
Shell
line.
command
contains
all
the
proper
has the appropriate arguments (each separated by a space), and that the command line calls for the right
pieces, that
it
filename.
(2)
Logged out before job was finished.
• Unless your account is set up to continue work after logging out you should not do so until all processes are completed. Module Seventeen: Backgrounding a Process describes how this can be done. (3)
•
File contains
unbalanced
.DS, .KS, etc.
have a Table Start without a Table End or a Keep Start without a Keep End? Pairing these commands is essential. Check that you have not forgotten to match each .FS, .DS, or .KS with a matching .FE, .DE, or .KE.
Do you
Troubleshooting
473
(B)
Margin
Should Be
It
has unbalanced indent requests.
File
(1)
Not Where
Is
• Check that for each .RS there
is
.RE
a
to return the
margin
to its original position.
File includes
(2)
mixed .RS and
.in
formatting commands.
• These commands do not access the same number registers. Thus, indenting can quickly become fouled up when both are used. For this reason you should stick with one or the other. Error
(3)
in specification
of margin.
• The units you use are
critical.
For instance,
five spaces, while .in 5i indents five inches.
5P
.in
(C)
(pica)
does not equal
.in
.in
To
5 will indent
the formatter,
5p (points).
Extra Underlining
An
(1)
•
unbalanced one-way underline
command
used.
probably began underlining with the .1 command. You must return to non-underlining status with the .R command.
You
(When
using nroff both the .B and .1 result in underlining.) In addition, section headers are underlined if you use the -ms
macros.
(D)
Text
Is
Not
Filled
Unbalanced nroff requests.
(1)
•
You
probably inserted a .nf to isolate a block of unfilled text,
and did not include the matching Text does not begin at
(2)
•
A
line
left
.fi
command.
margin.
of text which does not begin
at
the
result in a blank space in the formatted text. lines in
(E)
file
begin
at
the
left
margin.
Missing Text ( 1 )
474
your
A
text line begins with period or apostrophe.
Troubleshooting
left
margin
Check
will
that
all
•
An
input line beginning with a period or apostrophe
is
con-
sidered by the formatter to be a formatting instruction and not text.
Make
certain that the missing text
is
not on a line begin-
ning with a period or apostrophe. Illegal text
(2)
included on a formatting
is
• Although a few formatting (.IP
commands
command
line.
take text as arguments
Any
(A) for instance), most do not.
text placed
most formatting requests will be ignored. instance, this input line would not print:
line
with
.ul distinguished scholars
Section III
-
Pulos and
Shell Problems
on
a
For
Chang
and Error Messages
INDEX (A) Messages Appear on the Screen
My
Prompt?
(B)
Where’s
(C)
Lost in a Directory
PROBLEMS (A)
and
REMEDIES
Messages Appear on the Screen (1)
Command
not found.
• Usually means the (2)
command name was
misspelled.
Cannot open filename.
• Usually means the filename you included in a command line is not in your current directory, or you incorrectly typed the filename. (3)
•
Broken
You
Pipe.
probably deleted the job while
it
was being executed.
Try reissuing the Shell Command (or, if wealthy, call a plumber). May also occur if the Shell must break a process for any reason (for example, if you route a formatting job into an already t\\sX\ng filename) Troubleshooting
475
Stopped.
(4)
•
note reading Stopped appears at the bottom of the screen, along with the Shell prompt, press these keys: If a
®
fg
(The source of your problem was pressing of the CTRL-Z key, which places a process into the background and gives you a Shell prompt. The command fg means lore ground, dind pulls this backgrounded process into the foreground.) There are Stopped Jobs.
(5)
• Will occur when attempting to logout and you have put a job into the background (with the CTRL-Z command). See (4) above.
Permission denied.
(6)
• Usually indicates you forgot to include the command in the command line. You probably entered a filename alone rather than a Shell command followed by 2 filename. i
you specified does not have execute permission. You must change the mode of a file to 700 for it to be executed. See Module Twenty-Two: Commands, Files, and Directories.
• The
(7)
•
(8)
file
Core dumped. was abnormally terminated. A file named core, containing an image of core at the time of termination, You may remove this core is added to your home directory. file and suffer no ill effects.
A
Shell process
Usage:
.
.
.
• Indicates incorrect use of Shell command (i.e., too few or too many arguments). For example, if you use cp with only one filename in the command line you will get a message something like the following:
Usage: cp fl f2; or cp [
Attempt
-r
] fl
to decipher the cryptic
to use the
command
and enter the correct Troubleshooting
... fn d2
message
(and just
made
command
line.
or, if
you know how
a typing error), ignore
it
(9)
•
No
match.
You were
probably using a filename expansion character to locate a file. No filename exists in the current directory that fits the expanded file name as you specified it. See Module Sixteen: Account
(B)
Where’s (1)
•
My
Stuck
in
Management
Activities.
Prompt? a Shell process.
you entered a Shell process (such as Mail or write) you (See will remain there until you end it. Try using a CTRL-D. Module Fourteen: Communicating with Others for assistance with Mail and write.) If
• Other Shell commands can have a similar effect. If you entered vi without specifying a filename, the visual editor will be invoked. You will be in the Command Mode, and can return to the Shell by entering :w filename (to save the file material) and
(C)
ZZ,
or :q! (to trash
it).
Lost in a Directory (1)
Do
not remember which directory
• Enter (2)
Want
pwd
to discover
• Enter the cd Shell
Home
in.
your current “working directory.”
Home
to return to
you are
directory.
command and you
will
be placed
in
your
directory.
Section I V
-
Editing Problems
INDEX (A) Deleted
Wrong Text from
(B)
Made
(C)
Display Went Blank
a Complete
(D) Display (E)
Is a
Mess
File
of File
Word Salad
Messages on Screen
Troubleshooting
477
(F)
Strange Characters on Screen
(G)
Numbers and Text Crammed Together
(H) Arrow Keys Don’t
Work
Correctly (Resetting
Your Ter-
minal Type) Cursor Skips Lines
(I)
PROBLEMS (A)
Deleted
Wrong Text from
and
SOLUTIONS
File
And you
(1) (2)
tally
have not entered another removing the text.
• Press the u key one time. last modification to the file.
You deleted the retrieve
text
This undo
several steps
since acciden-
command undoes
the
back and u does not
it.
(3)
• The visual editor saves the buffers
command
numbered
1
to 9.
last
To
nine
(9)
text deletions
access these buffers type
in
"#p
(double quotes, [1-9], p). If the desired text does not appear, type u (for undo), and then press the period (.) key. You can repeat this procedure (u.u.u.) until the desired text appears. See Module Thirteen: Truly Advanced Visual Editing.
Error was too far back for numbered buffers. •
you would rather go back to how the file was before you began this editing session (or last typed the :w command) you can return to the Shell without writing the present version onto the permanent memory. To perform
You have
a choice: If
this action
you:
First press the |ESC| key;
(b)
(B)
Made (1)
Second type :q! and you will return work of that editing session vaporized.
a Complete
May
Mess
of File
be caused by a variety of reasons.
• See (A) 3 directly above.
478
Troubleshooting
to the Shell, with
(C)
Display Went Blank (1)
You pressed ctrl-Z and stopped
• See Section III
(D)
Display ( 1 )
•
Shell Problems paragraph
From
the
(Z minus
•
(4)
Stopped.
be caused by a variety of reasons.
Command Mode
press these keys
®
z-
(2)
A
Word Salad
Is a
May
-
the process.
—
^
clear
and redraw the screen).
Your terminal needs
to
be
reset.
your screen regularly fouls up during an editing session (one common problem is text in your file cramming up against the line numbers displayed on the screen) try the folIf
lowing: Place yourself in the Shell, type
®
reset
and then again attempt
(E)
to visually edit a
file.
Messages on Screen (1)
Could be a note about completed process or a from another user.
write
message
• See Section III - Shell Problems for a description of various screen messages. •
message from another user, you might want to write back. See Module Fourteen: Communicating with Others.
•
If
If
it
a
you are
rid
(F)
is
of
it,
staring at a
message from UNIX and
just
want
to get
enter z- to redraw the screen.
Strange Characters on Screen (1)
Screen displays characters such as
"
PT f IC L.
Troubleshooting
479
You
probably tried to
while in the
move
Append Mode.
the cursor (using the arrow keys) These are th e control characters
Command Mode. Remove
move
Press |ESC| to
those keys.
associated with
into
the
the control characters, and con-
tinue your work.
(G)
Numbers and Text Crammed Together Momentary power outage
(1)
•
or other terminal disruption.
there was a power failure-— or you momentarily turned the terminal off— the text may be jammed against the editing If
numbers. Enter: (1)
(H)
reset
Arrow Keys Don’t Work Correctly (Resetting Your Terminal Type)
Login •
You
error.
probably
made an
error in informing
terminal you are using. enter the
command
To
command
will,
give yourself a second chance
(don’t forget the dot in .login):
source
This
UNIX of the type of
among
•
login
other things,
tell
UNIX
to ask
you
once again what type of terminal you are using. Refer to the section Accessing the UNIX System in Module Two for help with this step.
(I)
Cursor Skips Lines (1)
You did not use
® at the end of each
• What appears to be a discrete tion
of the prior line(s).
two or more screen
lines.
A
line
line.
of text
is
in fact a continua-
single very long line
You
is
occupying
probably noticed while entering
the text that the cursor automatically returned to the
of the screen; thus you did not press the
®
key.
left
The
side
result-
one line to the editor. Place the cursor on a space between two words, press r and the key, and the line will be divided into two lines. ing several lines of screen text are in fact only
®
480
Troubleshooting
Module Twenty-Nine
Where
to
Now?
Introduction Congratulations!
You have reached
the
Module in this book. of the UNIX operating syslast
So far, you have been using the features tem that we identified as most important for text processing and program writing. There are several other, more complex features also available on most UNIX systems which this final Module will briefly introduce. References will be provided for more thorough investigation.
• Prerequisites Before starting this Module you should have completed Modules One through Twelve. rnrcoog
Objectives 29 Upon completion
Module you
have introductory knowledge (and be able to access the appropriate documentation to learn more) about the following UNIX programs and resources:
(0
Sec/,
a
of
this
stream editor similar
in
will
command
syntax to the ex line
editor; (2)
a pattern
scanning language;
»
481
^ ^
(3)
Shell programming,
a
method used
create powerful Shell
to
scripts; (4)
C-Language,
the
programming language
in
which UNIX
is
written; (5)
data-base
a
Ingres,
management system
on some
available
UNIX systems; (6)
ISP and
(7)
Writers'
S,
and
interactive statistical packages;
Workbench,
a
collection
of programs
increase the overall effectiveness of written
work
designed
to
(particularly
helpful with technical writing).
Procedures This procedure section is presented in seven parts. In each section you will be provided with a brief description of a selected UNIX resource. Several of the descriptions include examples. You may wish to try out the examples presented, but this is not essential for understanding.
Sed, the Stream Editor Sed ex
is
an editor which performs
line
many
of the same functions as the
The
but in a different manner.
editor,
line
editor,
ex
command of a series to all lines in the file. Then second command is applied to all lines, etc. Sed, which is a
applies the first
the
stream editor, works
commands
to
one
next line of text,
line
in the
opposite way.
of text, then
it
It
applies
applies all
all
specified
commands
to the
etc.
The Sed editor is most useful when included in a series of ‘‘piped” Shell commands, because it performs its functions on the standard output to the standard output (the standard input and output were described in Module Seven). input and routes
its
For example, the following command sequence will format the file named test, remove all blank lines from the input, and send this abridged text to the page command: nroff
Where
to
Now?
-ms
test \
sed V"$/d'
1
page
®
Note how sed uses language
a
command
syntax very similar to the ex editor
(in this instance the special editor characters
Sed— A
Documentation:
Non-interactive
Text
and
Editor^
$).
from
Bell
Laboratories.
A wk, Awk
the Pattern
a pattern scanning language.
Scanner
very useful for performing more complex searches than are possible with the ex or sed editors. In addition, awk can be used to write simple programs which do not require detailed specifications. is
It
is
For example, the following procedures could be used to select from a large file all individuals taller than 70” who wear shoes larger than a size eleven: (a)
Create a
file
(referred to here as data) containing the per-
tinent data:
name
height
shoe
Paul-Johnston
71
Harold- A tkins
72
10 12
H- Dan-Smith
73
Lyle-Strand
70
10 10
Walter-Mitchell
73
9
Each of the above lines contains three pieces of data. In this example each record is on a line by itself and each datum is separated from the others by blank spaces. (b)
Create a second program: {if
(
file
(here called program) containing the
$2> =70 && $3> =11)
print $1
awk
)
“find the record(s) that have a second field (data point) greater than or equal to 70 ($2> =70) and
This line translates
(&&)
as,
a third field greater than or equal to 11
these cases print the
first field
($3>=11) For
(print $1).“
Where
to
Now?
483
A
Enter the
(c)
that instructs the Shell to execute the
command
in the file
awk program contained tained in the
file
data:
awk In our results
program on the data con-
-f
program data
®
example this Aw^k program would display the following on your screen: Harold- A tkins
Documentation:
from
Awk—
Bell Laboratories.
Programming
Shell
Shell
and Processing Language,
Pattern Scanning
programming
lies
somewhere
gray area between using
in the
pre-packaged software and actual programming. It offers a method and for adding programming control structures (e.g. if statements) setting variables in order to create powerful Shell scripts.
For example, the following Shell program would cause the Shell to evaluate whether or not a file contained any tables and would format the file according to this evaluation. (The program must be placed
into
Commands, able (a)
a
and made executable. Module Twenty-Two: and Directories describes Shell scripts and execut-
file
Files,
files.)
Place the following lines holding the Shell program into a
(here called check)'.
#
to avoid petes
foreach
file
set if
dilemma
($argv)
a=('grep
(Sstatus
-s
==
tbl $file
TS 0)
$file')
then
nroff 1
-ms
Ipr 1
else
nroff
endif
end
484
Where
to
Now?
-ms
$file
1
Ipr
file
Select a
(b)
file
to
be formatted and enter the Shell
command
sequence:
check
Documentation:
from
An
Introduction to the
liam Joy,
UC
UNIX
by Steve Bourne, the C Shell, by Wil-
Shell,
and An Introduction
Bell Laboratories,
®
filename
to
Berkeley Computing Services.
C-Language UNIX
is
programmed
in the
C
This makes
language.
it
appropriate
consider writing your own C programs to supplement those already available to you as UNIX commands. Before rushing off to write a C program, however, be quite certain that you could not accomplish the intended task by using Shell commands (including to
awk and/or The piled
Shell scripts) already available
following
C program
and executed, simply
on the system.
requires a four line
file
and, once com-
prints the phrase “hi there”:
mainO (
printfC'hi there\n"); )
Note, however, that the same task with the Shell
Ritchie,
nighan
&
more
easily
accomplished
command: echo
Documentation:
is
The
Prentice-Hall
'hi there'
®
C
Programming Language, Kernighan & Publishers, and UNIX Programming, Ker-
Ritchie, Bell Laboratories.
Where
to
Now?
485
Ingres
Ingres
a data base
is
sions of UNIX.
It is
management system
available
on some ver-
useful for maintaining and updating large data-
bases which require frequent report generation.
Documentation:
A
Tutorial on Ingres
Database using Ingres^ both by E.
and Creating and Maintaining a Epstein, Electronics Research
Laboratory, College of Engineering, U.C. Berkeley.
ISP and S
buted by the University of buted by Bell Laboratories. tistical
analyses
— including
highly interactive manner.
learned and so
makes
more powerful and
ISP is distriCalifornia at Berkeley, and S is distriEach can perform many common stamultiple regression and T-tests — in a Of the two packages ISP is more easily
interactive statistical packages.
ISP and S are both
a very useful instructional tool.
S
offers a
sophisticated system.
Documentation: ISP is described in A Tutorial Introduction to Berkeley ISP, from UC Berkeley Computing Services; S is described in S—A Language and System for Data Analysis, from Bell Laboratories.
Writers'
Workbench
Workbench is a collection of programs designed to help you improve your writing. The package can be used to identify, and in some cases correct, grammatical, spelling, and stylistic problems in your written work. There are over twenty programs within the Writers'
Writers’
Workbench
package.
most instances you access a program by typing (from the Shell) the name of the program followed by the filename you want to have acted upon. A list of several of these programs and the functions they perform is presented on the next page. In
Where
to
Now?
Selected Writers
'
Command
Workbench Programs Function
findbe
file
Identifies
org
file
Prints text structure of file.
diction
file
Identifies
splitrules
suggest
words
Explains
all
forms of verb
to
troublesome syntax
be in
file.
in file.
split infinitives.
Suggests alternatives to words.
style
file
Analyzes surface characteristics of file.
topic
file
Locates frequent noun phrases
proofr
file
Invokes several Workbench programs which check spelling, punctuation, double words, syntax, and split infinitives.
punctrules sexist
[file
in file.
Displays rules enforced in the proofr program. Identifies sexist phrases in
file.
Where
to
Now?
487
Shell
Command Summary Special Characters
Command
Function
Routes standard output from a prior Shell
I
command
>
next Shell
command
to a specified
file.
Routes both standard output and error from a prior Shell
command
into a specified
mand ;
line.
Allows you to type several Shell
on one the
$$
;
line
(each
command
is
commands
separated by
).
ID of current
UseFor ful for generating a unique filename. example, vLn\(\file > file.%%, results in a new containing uniqw^ lines and named file where somenumber is the file, some number,
Expands
to process
Shell.
process ID of the parent Shell. ?
488
file.
Causes Shell command line to run in the background when appended to end of com-
&
*
(Pipe).
Routes standard output from a prior Shell
command
>&
to the
Matches any
single character.
Matches any sequence of characters.
Commands
Shell
Command alias
0
awk
1
command
\pro^\ [filel
Function
Makes x an
alias for a
awk program on
Executes an high
command
line.
filel.
awk
is
a
scanning and numerical programming language very useful in database management.
batch
scriptfile
cal \month\ [year
cat
[filel [file
pattern
level
Executes a batch scriptfile. Almost any job can be submitted to batch, which can normally run a job more cheaply then interactive work. Prints a calendar for the specified year
1983).
A
number
(1-12) before the year.
Concatenates catenated screen. If
is
By
file(s).
>
specified
by
the
default,
a
con-
be displayed on your to redirect output to new file. will
file(s)
Use
output
may be
month
(i.e.,
displayed on screen, press CTRL-S
to halt scrolling.
s cd [directoryname
Changes directory ryname must be
to a
directoryname
subdirectory
{directo-
of current
directory).
checkeqn
[fUel
check5
filel
(containing eqn constructs)
for
problematic eqn commands. [filel
checks
filel for
clikps
checks
process
checknr
some
(Available
E L L
C
nonbalanced formatting constructs {nxoff and -ms commands). status.
H
only
on
systems.)
O
M M A
N D S
Shell
Command Summary
489
Command chmod mode#
filel
Function of filel to mode# (which specifies the permissions attached to a file). Permissions are read, write, and execute per-
mode
changes
mission for owner, group members, and others (see
dear col
Module Twenty-Two).
clears screen and places cursor at top.
reverse line feeds from a text file. used as a filter when piping output
Removes Often
from
tbl
an output device that can’t do
to
reverse motion
comm
filel
file!
filel
cp filel file2 crypt
line printer).
words common to two sorted lists (filel and filel). Identifies words in one file and not the other or words found Selects
both
in
compact
(i.e.,
or
rejects
files.
Reduces disk space occupied by file, compactet/ version of filel will have .C appended to filename (filel. C). Must use uncompact before editing or otherwise using file (if this command does not work for you try pack and unpack).
compacts
filel.
Creates a second cop>^ of filel called £/ crypts and decrypts a 7
file
(see
file2.
Module
Six-
teen).
date dc
deroff filel
Displays the current date and time.
Performs arithmetic calculaEasy to use once you learn assembly tions. language programming.
desA: calculator.
Removes
formatting constructs from filel (de
//roffs a file).
diction filel
490
Shell
Identifies problematic diction in filel.
Command Summary
Command dirs
Function
Displays pathname of current directory: dir^c-
(Works faster than pwd but only available on some systems.) tory status.
du
displays disk usage in blocks.
is
(Available only
on some systems.) echo
string
eqn
[filel
Displays (echo6’s) string on screen.
Preformats all equations in filel. Output should be piped to the trojf formatter (use
neqn
as a preprocesser for /7ro#formatting).
Recalls a backgrounded process into the ior-
become your current only on some systems.)
grounfi this process will (Available
process.
find
find5 file specified with -n option.
-p option to
pathname of file ^printed Fifteen, The UNIX Directory
have
Module
(See
Must use
full
Structure)
grep
strin^\ [filel
Locates
all
instances of string (a global regular
expression or ipattern) in filel.
head
[filel
history
Displays
ten lines (head) of filel.
first
Reports history of
commands, where
last
#
is
# number
of Shell
number
that his-
the
tory variable has been set to.
with
jobs
C
(Available only
Shell.)
Displays
list
of
processes
(jobs)
currently
stopped or running in the background.
kill
#
process logout
number number (#).
kill5 process
(#); kill -9
#
will
nuke
Ends communication with UNIX.
Shell
Command Summary
491
2
Command look
[string
lookbib database
Ipr
[ft lei
Function looks in dictionary for words that match string and displays on screen this list of words. looks through a hihliographic database file for references containing specified keywords.
Causes
copy of
a
filel
to
be printed on the
\ine printer.
Is
Displays a
1/st
of
all
files
in
your current
directory.
mail
[lo^in
man command
Sends a message to login. End message with a CTRL-D (see write). When used without a login as an argument initiates a mail receiving session and displays a list of all messages sent to your UNIX account. Displays the
UNIX msmual information about
whatever command you
mesg y
or n
Permits other user to write mes^7g^5 to your terminal (and you to write them). Default value
mkdir
directory
more
mv
[ftlel
[ftlel\ [file
specify.
is
m^7k^s a
yes (n for no).
new ^uectory named
Displays filel one Similar to page.
directory.
more window
mov6»5 filel into filel (changes
at
name
a
time.
of filel
to filel).
neqn
[ftlel
nroff
[ftlel
Output Preformats all equations in filel. should be piped to the nroff formatter (use eqn as preprocesser for rrc# formatter).
Formats
filel
according to
nroff
commands
embedded in the text (n^’w run off). Must use nroff -ms to format filel when -ms macro calls are embedded in the text. 492
Shell
Command Summary
Command
Function
pack
[filel
pack5
page
[2^
Displays filel a page at a time (file can not be edited, only viewed). Similar to more.
passwd ps
pwd
Reduces disk space occupied by version of filel will have .P file. }) 2LQked appended to filename ifilel.P). Must use unpack before editing or otherwise using file (if this command does not work try compact and uncompact). filel.
Changes your passwo/tl. Provides process status information will provide more global information).
(ps -g
Displays pathname of current directory (print yv or king directory).
refer
[filel
Prepares filel containing refer bibliographic fields for formatting by a macro package (i.e., -ms).
reset roffbib
[filel
resets terminal to a sensible state.
out fields from a bibliographic data base as endnotes instead of footnotes (as refer does). Generally used with sortbib as Prints
follows; sortbib filel
rev
[filel
revmcs but
rm rmdir
I
[filel
directory
sed
it’s
all
roffbib. |
lines in filel
(why? don’t ask
great fun).
removes filel (be
careful!).
removes directory directory. tains files you must use rm stream
us,
editor.
ful as a filter
(If directory
con-
-r directory.)
Uses ex-like syntax. Most useto modify information passing
through a pipe.
Shell
Command Summary
493
.
Command set
set noclobber
Function With no arguments set displays variables have been set for your account.
that
Prevents overwriting (clobber/>7^) an existing file.
set ignoreeof
Prevents CTRL-D from logging you out of UNIX (ignoreeof — ignore end of file\ CTRL-D is the UNIX “end of file” message). "
sort
[filel
sorts filel into ascii sequence.
sortbib
[filel
sorts a hWiliographic data base (see roffbib).
source
[filel
Asks
Shell to execute filel containing Shell
commands
(uses filel
Most
Shell).
tail [filel
code
in filel
for
file.
Compares spelling of all words in words in UNIX dictionary and reports found
stty
source
useful for requesting Shell to
re-read your .login spell [filel
as
and not
filel all
to
those
in dictionary.
Sets terminal type parameters.
Displays
last
ten lines (tail) of filel.
thWMl
Preformats all tables in filel. Output must then be piped to the nroff ox trojf ^oxm 2d.Xex
tee [filel
tee
Catches output within a pipeline and puts a copy in filel. For examIpr will format tee ntext ple, nroff textfile textfile and place a copy of the formatted output in ntext while sending an additional copy is
a pipe fitting.
\
\
to the linepr inter.
translates
some
specified characters or range
of characters from the standard input into a different
set
of characters
and sends
translation to the standard output.
494
Shell
Command Summary
this
Command troff
[file I
Function
Formats
embedded
in
commands
according
to
the
Formatted version
filel
text.
troff
be phototypeset (typeset run off). Must use troff -ms to format, /z/c/ when -ms macro
will
embedded
calls are
tset
sets
the text.
in
terminal erase,
and other
kill,
special
characters.
uniq
[filel
Removes redundant only uniq^/c
vi [filel
Starts
a
from filef leaving
lines
lines.
or
file
an
retrieves
existing
file
Moves you into Command Mode. See summary section which follows on Commands to Enter an Edinamed
filel
for
y'xsual
editing.
tor.
wait
Causes Shell
wc
[filel
Shell
wait
to
command
Displays total
backgrounded
until
complete.
is
number of
lines,
characters in filel (vtord count).
words, and
Very useful
for high school English papers that
“must be
500 words or longer.”
whatis command
Displays
synopsis
specified
command.
line
Tells
from manual for what command is all
about.
whereis command
Displays Tells
who
full
pathname of
where command
Presents a
list
of
who
specified
command.
is located.
is
currently logged onto
your UNIX system. write lo^in
Immediately wTites are logged on (see CTRL-D.
Shell
to login while niuil);
both of you
end session with
Command Summary
a
495
Commands
Enter an Editor
to
Command
Function
vi [filel
Starts
a
named
filel
into
vi
H-#
[filel
or
file
retrieves
an
existing
file
Moves you
for \\sual editing.
Command Mode.
Puts you
Mode
the
into
at line
#
yisual editor
in filel.
If
#
no
Command is
specified,
places cursor at last line of filel.
vi
+/
I
word\
[filel
Moves you
Mode vi
at first
when
Moves you [filel
instance of
editing
into
Shell
in filel.
or
retrieves
Starts
a
named
filel for line editing.
file
Command Summary
terminated.
session
Command Mode.
the (extinct) line editor
496
word
Command
Creates a buffer for yisual editing. Material must be given filename (with :w name) to be
saved
ex
into the y'xsual editor
an
existing
file
Moves you
into
Command Mode.
Command Summary
Visual Editor
• Commands
Cursor Moving
Command
BEEB
Function WQ-HOeS
(h
j
k
Moves
1)
one space
cursor one line
up/down
right or left.
0
(zero)
Moves
$
Moves
cursor to the end of the current
cursor to the beginning of
line.
line.
42 (or any number).
42G
Goc5
to line
G
Goes
to the last line in
L
Positions cursor
your
file.
at
Low
point on the screen.
M
Positions cursor at
Mid
point on the screen.
H
Positions cursor at High point
w
Moves
Moves
e
Moves your
Moves word
B
on the screen.
in
your
file.
cursor forward to the beginning of the next Wo/^yin your file, ignoring punctuation.
in
b
#
cursor forward to the beginning of the
next word
W
or
in
Moves prior
cursor forward to the end of next word file.
cursor backward to the beginning prior
your
file.
cursor
word
in
Backward
your
file,
to
the
beginning of
ignoring punctuation.
497
Command
Function
f®
Moves
cursor forward through text to next
F®
Moves
cursor backward through text to prior
t®
Moves
cursor forward through text to next
T®
Moves
cursor backward through text
word
Moves
cursor
forward
through
To
text
b.
b.
prior
to
b.
b.
next
word. 9
word
Moves
cursor backward through text to prior
word.
n
Repeats
ward ter
N
)
last
/ or
?
search:
Moves
cursor for-
backward) through text to next characor word. (or
Repeats last / or of search.
Moves
?
search but reverses direction
cursor forward through text to begin-
ning of next sentence. (
Moves
cursor backward through text to begin-
ning of prior sentence.
)
Moves
cursor forward through text to begin-
ning of next paragraph.
(
Moves
cursor backward through text to begin-
ning of prior paragraph. II
Moves
cursor forward through text to begin-
ning of next section. II
Moves
cursor backward through text to begin-
ning of prior section. f /
(Two
single quotes)
tion in
498
vi
Command Summary
file.
Moves
cursor to prior posi-
Display Adjusting
Commands
Command CTRL-D
Function Scrolls dow/7 or
moves on
to
more
moves on
to
12
text in the
file.
72CTRL-D
Scrolls
down
text in the
or
more
lines of
file.
CTRL-U
Scrolls
CTRL-F
Goes forward
CTRL-B
Goes hack
CTRL-E
Displays an additional line at bottom of screen.
CTRL-Y
Displays an additional line at top of screen.
Z.
z4.
z-
z
®
CTRL-R
wp or moves back
a
to prior text.
to next block or
window of
window of
text.
text.
Redraws screen, with the current of the window.
line in
Makes screen show only 4 lines of number can be 1-23 (don’t forget the
middle
text.
The
period).
Redraws screen, with the current tom of the window.
line
Redraws screen; current
of window.
Redraw
line at top
on bot-
screen.
Undo Commands U
(lower case u) undoes the effect of the
last text
change command.
U
(Upper Case U) Undoes current
all
changes made
to the
line.
vi
Command Summary
499
Text Changing
Commands
One- Way Commands {Leave You In Append Until
You Press ESCAPE)
Command a
Mode
Function one space
Starts adding text
to the right of the
cursor i^ippend).
i
Starts adding text
one space
to the
left
of the
cursor (insert). 0
O
opens a line for text below the cursor
(Upper Case) Opens a cursor
A
line
line.
for text above the
line.
(Upper Case) Starts adding text
at
the end of
the line (Append),
1
(Upper Case) Inserts text
at
the beginning of
the line (Insert).
cw s
changes the one vford to the right of the cursor. (lower case) substitutes text for a single character.
S cc
(Upper Case) Substitutes text for an entire Substitutes
same
C
text
for
an entire
line
line.
(cchanges\
as S).
Substitutes text for the rest of the line (Changes
from the cursor position forward).
R
Replaces characters
you type over with new
characters (overlay type).
500
vi
Command Summary
^atholocy SERVltf VA MEDICAL CENTER 4150 CLEMENT street '
SAN FRANCISCa CA 94121
Text Changing
Commands
Two-Way Commands {Return You To
Command Mode)
Command
r
Function
X
Erases the character under the cursor (x out).
X
Erases the character before the cursor.
xp
Transposes characters.
0
replaces the character
under the cursor with the
letter b.
dw
deletes
from the cursor position forward
to start
of next Yford.
db
deletes
from cursor position backward
to begin-
ning of previous word.
dd
D
Deletes the entire cursor line iddeletes). Deletes the rest of the line
(from the cursor
position forward).
:T26d
deletes lines
1
through 26 (you select the
line
numbers). J
>
Shifts cursor line right
one shiftwidth (distance
of one TAB, normally 8 spaces). •
(Dot)
Repeats
last text
vi
change command.
Command Summary
501
Commands
Text Relocation
Command yy
6yy
Function
unnamed
of text and places buffer {yyanks\ same as Y).
Yanks
lines
Yanks the cursor
6
a yy
and places
(Double quotes) Yanks cursor stores in a register (registers
"
0 -^yy
(Double quotes)
Yanks
3
^7
@dd
to z available).
in
b register
of text
and
to z available).
(Double quotes) Deletes cursor stores
buffer
of text and
line
lines
stores in c register (registers
"
unnamed
in
command).
(See Put ”
in
line
{Meletes\
line
of text and
registers
a Xo z
available).
P
(Upper
Case)
register just
Puts
text
in
unnamed
line (or
before the
stored
above the cursor
cursor).
P
(lower case) ^uts the yanked or deleted text just
below the cursor
"@P
line (or after the cursor).
(Double quotes) Puts the text stored in register a just above the cursor line (or before the cursor).
"Bp
(Double quotes) pi//s the deleted text stored in register 6 just below the cursor line (or after the cursor).
Note:
last
9 text block deletions are
automatically stored in registers :1,26
m
82
:C26 CO 82
moves
lines 1
copies lines
1
1
through 26 to after
to 9.
line 82.
through 26 and places after
(52.
:w Jilel
502
vi
writes current
Command Summary
file
to disk
— names
it
Jilel.
line
Command :J,26
:U26
w
»
w
Function
filel
yv rites lines
filel
Appends
1
new
to 26 as
lines
— names
it
filel.
26 to end of existing
to
1
file
file
filel.
:26 read file!
Places contents of filel into current line
after
26 {reads mfile).
Commands
Miscellaneous Additional
:sh
processing— places current file in background and moves to the shell (return to file with CTRL-D).
'Acommand
Temporary Shell escape. Insert whatever Shell command you wish. Output from command, if any, becomes part of current buffer.
Q
Stops
Moves from
Mode CTRL-G
vi
the
to
(Return to
vi
with vi
file
file:
displays filename,
RETURN
CTRL-Z
Stops processing— places current with
available
U]
abc
Creates 1)
to the Shell
file
in file.
line.
in
back-
(return to the
command).
the fg Shell
Note: Not
on some systems.
own Command Mode command. You and
abc
any
(#1 for function of
actions
for
phrase
Command Summary'
503
with
(remove with :unmap phrase
one
character: advances cursor
replace $ with any character
key
Command
command).
CTRL-M
file
abc
editor
and cursor position
edited,
ground and moves
:niap
line
Status check of current
percent of
:ab
file
series
$).
abc as dH^breviation (remove with :una abc).
Establishes
17
Quit Working on the File and
Return to Shell
Commands
Command ZZ
:w
®
Function changes made to the file during an editing session and returns to the Shell (the “I am finished working on this file” command).
Writes
Yirites all
you the :q!
®
®
the changes
made
in the visual editor to
and leaves continue working on in a file
file.
an editing session and returns you Shell, but does not write changes made to
to
Qiuits
(the
:wq!
all
“can
I
start
over” command).
changes made in a file during an ing session, quits and returns to the Shell.
writes
file
all
edit-
Regular Characters for Search and Substitutions
c
When
placed at end of search
confirm substitution. tution; press
d
When
® to
it
prompts you
to
Enter y to execute substi-
cancel
it.
placed at end of search
it
deletes pattern
found. g
When
beginning of a search it addresses all lines in the file; at end of search it functions on all cases of pattern within specified lines. all
placed at
When
vi
in
both places
it
functions on
cases of pattern within current
search).
504
used
the
Command Summary
file
{global
Commands
Enter an Editor
to
Command
Function
vi [filel
Starts
a
named
filel
into
vi
-h#
[filel
or
file
word\ [fUel
Puts you
the
into
at line
Moves you
Mode vi
#
[filel
Command
\isual editor
in filel.
If
no
#
is
specified,
filel.
into the yisual editor
at first
Command
instance of word \n filel.
Creates a buffer for \\sual editing. Material must be given filename (with :w name) to be when editing session terminated. saved
Moves you ex
file
Moves you
\isual editing.
for
places cursor at last line
+/
existing
Command Mode.
Mode
vi
an
retrieves
into
Command Mode.
or
retrieves
Starts
a
named
filel for line editing.
file
the (extinct) line editor
vi
an
existing
file
Moves you
into
Command Mode.
Command Summary
505
Special Characters in
Command
Append Mode Function
BACKSPACE
Backspaces one character.
Append Mode and Command Mode.
(rubout)
DELETE
you
in
ESCapes
ESC
CTRL-H
Interrupts
to
places
Command Mode.
Backspaces one character.
CTRL-I
TAB
CTRL-V
Allows input of a SPACE, TAB, or
character
(moves
8 spaces right).
RETURN
char-
acter.
CTRL-W
Backspaces one word.
Allows input of a CTRL-H, BACKSPACE, or
\
character.
@
Erases
Summary Affected Text
word
input on a
line.
of Text Operators
move
to
delete
change
yank
lines
®
dd
cc
yy
to right
w
dw
cw
yw
b
db
cb
yb
word
to left
right to
g
dtg
Ct^
yt?
left to
g
dT^
cT^
yTg
right including
g
fg
dfg
cf^
yf^
including g
Fg
dFg
cF^
yF^
left
506
all
v/
Command Summary
@
Formatting
Command Summary Commands
Nroff/Troff
Command .ad b
.bp
Function
begins 2iAjusting text (this
temporary
Causes
a
begins a
new page of
is
the default state).
between
pages’,
A number
used as
break text.
an argument becomes the page
new page .br
Causes
a
(e.g.,
bieak
number
of the
.bp 4). in text filling;
begins a
new
line
of text.
# number
.ce
#
centers
.cu
#
continuously underlines for
of
lines.
next
# number
of
lines; italicizes in troff.
Begins a macro definition; replace
.de
character
macro .ds
XX
string
.fi
.ft
X
..
with two
to indicate
end of
definition.
defines string in
.ex
macro name. Use
XX
XX as
the specified
string.
(See \(*
Escape Sequences section.)
exits
from nr off ox
Resumes Changes
troff.
the Wiling of input lines (default). fo//t to
R
X where X
is
either
B
for Bold,
Roman, or S for Special Mathematical; default is Roman. Use \fX to
I
for
Italic,
for
change font within
a line.
507
Command
Function
Starts hyphenation (this
•hy .in
#
a
#
[This
left
the
is
command.]
return
.11
the default state).
margin # number of spaces. one-way command; .in 0 (zero)
indents is
is
# number
Sets line length to
(default
6 1/2
is
inches).
.Is
#
(lower case
number ing
.It
#
is
1)
(i.e.,
Sets the linespacing of paper at .Is
2 double spaces).
#
Single spac-
default state.
Sets the length of
title
to
# number
(default
is
6
1/2 inches).
Leaves right edge jagged; no adjusting. (This is a one-way command; .ad b returns to normal
.na
justification.)
.ne
#
Checks
if
# number
of output lines available;
if
premature page break occurs number of continuous lines).
not available a
(need
#
no f/7/; Stops the way command;
.nf
filling .fi
process.
returns
to
(This
is
a one-
normal
text
filling.)
.nh
.nm
# .nn
,
no hyphenates stops hyphenation. numbers next
# number
of
lines.
Stops numbering (no number).
Defines
number
register
XX
as
the
specified
value.
.pi
#
Sets ipage length at
.pn
#
Sets ^age
Format
number
Command Summary
# number
(11 inch default).
for next page at
#
number.
Command
Function
.po [#
Sets p7/ size to
Use \s#
point).
#
(default
change point
to
is
10
size within a
line.
.rd
[file
be read from file if file specified. The standard input (usually your terminal) will be read if no file is specified (see
Causes
Form .so
[file
input
Letters
sources in
to
Module).
named
file
(which
file
macro
definitions) to current
.sp [#
sp^7ccs
down # number
.ss
[#
Changes space character default is 12/36 em.
.ta
#
TAB
may
contain
file.
distance.
size
to
#
number;
# number
of characters; this distance can be a series of numbers, each indicating a separate TAB stop (default is 8 characters
Sets
to
per tab).
.ti
#
temporarily
indents
left
margin
# number
of
spaces (next output line only). Prints a three part tide line.
.ul
w
underlines next
# number
of lines;
will italicize
in troff.
.vs
#
Changes
\ertical spacing to
# number
(default
is
12 point).
.wh
#
A'A'
Calls
macro
reached; also
XX when known
Format
page
position
#
is
as “setting a trap.”
Command Summary
509
Escape Sequences Allowing Printing of Nroff/TrofF Special Characters (Special Mathematical Characters Available
Described
\S \e
Module)
in Phototypesetting
Command
Function
The backslash prevents
interpretation of a.
I
Allows printing of current escape character.
\'
Prints an accute accent in
\'
Prints a grave accent in
\-
on Troff
Prints a
minus
sign in
troff.
troff.
troff. I
\0
Creates an ''unpaddable” space the width of a 0
i
.
\
[SPACE
Creates an “unpaddable” space in the current space size.
•
I
\|
Creates an
“unpaddable’’ space the width of
\
1/6 em.
\&
\”
Deposits a non-printing character that occupies no space (zero width character).
When line
\d
placed at the beginning of line,
from formatter (allows comment
Shifts text
down 1/2 em
in
troff,
masks
in file).
1/2 space in
nroff.
Shifts text
\f
X
Format
em
in troff,
1/2 space in
nroff.
Changes type iont to X where B is boldface, I is Italics, R is ^oman, and S is Special Mathematical font.
510
up 1/2
Command Summary
!
Command \h'\E'
Function
Shifts right
#
distance (hor/zo/?/^?/ shift).
\v\E'
Draws
a horizontal line
\v\E'
Draws
a vertical
\o
'
#
#
Line
distance.
distance.
overstrikes characters xyz.
\P
Breaks
\r
reverses
and spreads out
filling
print
line-feed in
direction
line (pr///s).
em
1
in
reverse
troff,
nroff'.
\n([XF
Causes value stored in XX number register to be read in (where XX is a two character name for a number register). See .nr.
V(\XX
Causes string stored in XX string register to be read in (where XX is a two character name for a string register). See .ds.
\$1
Causes
argument
first
to
macro
call
to
be read
into a macro.
-ms Macro Commands Paragraph Macros .PP
Begins a standard,
five
space indented
Vara-
graVh.
.LP .IP
Begins a Left block Paragraph (no indenting).
Begins an
Indented Paragraph
the entire paragraph
.IP
fll
is
(left
indented right
margin of 5 spaces).
Begins a labeled Indented Paragraph. the
X
Replace
with numbers, letters or a word that you
want placed
to the left of
Format
your paragraph.
Command Summarv
51
Command
Function
X
Begins a labeled Indented Paragraph. Replace the X with numbers, letters or a word that you want placed to the left of your paragraph. Replace # with a number indicating indentation
.IP
of paragraph.
QP
Quote Paragraph. Indent 5 spaces from both left and right margins. Automatic Begins
a
single line-spacing not provided.
Begins an QXdented 'Paragraph. The first line of the paragraph is at the left margin, while the
.XP
remaining lines are indented.
Footnotes, Keeps,
and Displays
Text between an .FS and an .FE command is formatted as a footnote. Footnotes are not numbered. (Some systems will allow you to produce numbered footnotes. To do this you must also place these three characin the text where you wish the numters bered footnote to appear.) (.FS is a one-way command; .FE is the return command.)
.FS
Starts a footnote:
.FE
Ends
.KS
'
a footnote:
Starts a Keep:
command
is
Returns to normal text layout.
Text between a .KS and a .KE
printed on a single page.
neces-
If
new page is started. (This is a one-way command; .KE is the return command.) sary a
.KF
Begins a floating Keep.
If text
current page and a page break
is
will
.KE 5
1
2
Format
(This
return
command.)
Ends the Keep: Returns
Command Summary
fill
to
on
rest of
one-way command; .KE
page.
a
fit
required, text
following the keep will be used to is
not
is
the
normal page layout.
Command
Function
.LG
Increases point size by two points {harGer).
.SM
Decreases point size by two points iSMaller).
.NL
^ormaL
point size; resets point size to original
value (the value of the nr
.RS
register).
margin of text to the value specified the .nr PI register which has a default value
Indents in
PS number
left
of five spaces (Right Start). Can be repeated (This is a one-way for additional indenting.
command; .RE
the return
command.)
.RE
Moves left margin back five spaces (Right End). (Number of .RE commands used must match number of .RS commands used.)
.DA
Provides today’s DAte as center footer of paper. (This
.DA
is
\date
.ND
is
the default condition.)
DAte
Prints
as center footer of paper.
Suppresses printing of today’s date as footer on paper (No E^ate).
.2C
Column
Will format of paper. (This is a automatically cause a page break. one-way command; .1C will return to single
Begins
2
column output.) .1C
.MC
[#
Returns Sets
to 1
Column output on
column width
to
a
new
# number
Will automatically cause a break
page. characters.
page
(Multi-
(The number of columns is computed automatically, based upon line length.)
Column).
Format
Command Summary
5
1
Command .AU
Function
Centers following text line(s) as KXthor's name(s); troff sets name(s) in ten point italic type.
.AI
Centers Author’s Institution; Use repeated .AU and .AI calls for multiple authors from different institutions.
.AB
XXX
Begins
If
label. will
Absract,
nothing
is
is
entered for
not be labeled.
and adjusted
XXX
where
The
the
abstract’s
XXX the
abstract
abstract will be filled
to a line length of 5/6 the
normal
text line length.
.AE
Ends
Abstract.
Other -ms Macros .UL
word
\JnderEines word.
with the .1
Only the one word on the
.UL command
will
Begins underlining of text;
line
be underlined. will Italicize in troff.
one-way command; .R returns non-underlining in nroff and Roman type (This
is
a
to in
troff.)
.B
Bolds text, underlines in
nroff.
way command; .R returns nroff and
.R
5
1
4
type in
Draws
type in a
is
non-underlining
nroff,
will
troff.
BoX around
word.
Begins a block of text to be enclosed in a
.B2
Indicates
end of passage
Command Summary
in
return to
.B1
Format
a one-
troff.)
Stops underlining text in
Boman .BX word
Boman
to
(This
to
Box
be enclosed by
Box
Command
Function
.LG
Increases point size by two points {harGer).
.SM
Decreases point size by two points (SMaller).
.NL
NormaL
point size; resets point size to original
value (the value of the nr
.RS
Indents ing.
(This
is
a
register).
spaces
five
(Right
for additional indent-
one-way command; .RE
is
the
command.)
return
.RE
Moves left margin back five spaces (Right End). (Number of .RE commands used must match number of .RS commands used.)
.DA
Provides today’s (This
.DA
margin of text
left
Can be repeated
Start),
PS number
is
DAte
as center footer of paper.
the default condition.)
date
Prints date as center footer of paper.
.ND
Suppresses printing of today’s date as footer on paper (No Date).
.2C
Begins
Column
format of paper. Will automatically cause a page break. (This is a one-way command; .1C will return to single 2
column output.) .1C
.MC
Returns to Sets
1
Column output on
column width
to
a
new
# number
Will automatically cause a break
page. characters.
page
(Mw///-
(The number of columns is computed automatically, based upon line length.)
Column).
Format
Command Summary
515
String Definition
Commands Function
Command
X in
.ds
LH X
heft Header: Puts
.ds
CH X
Center Header: Puts all
RH X
.ds
top
X
left
corner of pages.
in top center position
of
upper right corner of
all
pages.
X
Right Header: Puts
in
pages.
X in
.ds
LF
X
heft Footer: Puts
.ds
CF
X
Center Footer: Puts of
.ds
RF
X
all
lower
X
left
in center
corner of pages.
bottom position
pages.
Right Footer: Puts
X
in
lower right corner of
all
pages.
Note: the % symbol may be substituted for X in any of the above headers or footers, and page numbers will appear in that position.
5
1
6
Format
Command Summary
Summary Register
of
-ms Number Registers
Function
Default Value (for nrojf)
.nr
LL
L/>7^
Length of text
6 inches
.nr
PO
Vage
Offset
0 inches
.nr
FL
Footnote Line length
.nr PI .nr
QI
Faragraph Indentation
5.5 inches
5 spaces
Quote paragraph Indentation
5 spaces
.nr
HM
Header Margin
1
inch
.nr
FM
Footer Margin
1
inch
.nr
PD
Between Paragraph
Iv
Distance .nr
PS
Foint Size
lOp
.nr
VS
V ertical Spacing
12p
Distances
may be
indicated in inches, centimeters, em’s, v’s, or Picas; point size and vertical spacing is specified in points.
Format
Command Summary
5
1
INDEX 1
207
(in editor)
1
r
208 111
(in editor)
1
b
345 111
nrqtf Qon{xo\ character)
(
(in editor)
171
account management
272
addbib
405
addresses, text
232
\fR
w
341
.AI
\
341
aliases
207
alias
\< \>
(in editor)
(in editor)
\fB \fl
(in editor)
A K L
49
J keys
206 44
(in editor)
goofed
/
349 252 233 139, 206 91, 290 209 274, 308 95,
(pipe) 1
(tilde)
"#P $ (in editor)
&
(in Shell)
* (in editor) * (in Shell)
® .
13 .
(dot-dot; in Shell)
268, 330
335
account customizing account establishment
394 206 206 319 319 319
\&
98
manual accessing macros access the
2
72
adjusted text
227
adjusting screen display
73
.ad .
AE
398 398 277 277
'
439
allbox, in tables
ALPHALOCK
9
key
90
alternate phrases
ampersand
91, 290
(in Shell)
any character, match apostrophe A7rQ)7control character) (
Mode
Append Append Append Append append
special characters
Mode, ex Mode, leave Mode, vi
208 345 224 191
25 49, 110 23, 129
text
99, 380
apropos
.
{moff'Qon\To\ character)
345
arguments, to Shell command arguments, within macros
.
(in editor)
208
arrow keys
/usr/lib/eign
363
/usr/lib/tmac/tmac. s
352
.AE awk
398 483
b
123
/
267
(dot; in Shell)
.
43
word
374 298
/ (in Shell) $1 (in Shell)
96
< >
117
89
BAC KSPAC E key -j
batch job, remove
»
186
batch job, submitting
? (in Shell)
308
batch processing
24,50
a
batch queue, check
A
129
batman
.AB
398
batq
107
beep beginning of line, character beginning of word, character
abandon a file during abandoning a paper ‘Abbreviation
editing
command
absolute position indicator, in nr off access deleted text
518
76
239
349 233
bibliographies, formatting bibliographies,
337 41
background a process backslash, double
bartm
92
no abstracts
90, 176, 289
341 17
298 298
297 295 298 299 298 26, 42
206 206 172, 404 414
bins bin bin
blank
searches
lines,
Bo/^/font
book conventions book objectives boxed tables boxes, trqff-ms boxes, (rqff box, in tables .bp brackets, in searches brackets, with eqn brackets, with filenames
break
command,
nroff
372 375 207 318
colon
106, 179
buffer and disk, save both
183
buffers, lettered
135
numbered
135
buffers, search
234
buffers, text storage
232 318
Bo/Jfont b
C C- Language
center text,
in nroff'
centering a table .ce
interpreters, interactive
115
interpreters, non-interactive
1
Command Mode, Command Mode, Command Mode,
leave
27
ex
190
110,49
vi
Command not found command order, when using command synonyms (alias) command syntax
12,
-ms
commands, arrows commands, formatting commands, one-way commands, two-way comments from others
common
15
475 161
277 92 14
110 111
14,111 175
English words,
list
363
compact a file compact compare two files
276 277 361
compatibility, /zro^and
macros
144
conceptual overview
105
251
control characters, nroff
345
66 428
control characters. Shell
49, 66
66 49, 131
conventions used copy a file
in
16
48
CO/7V, in
check diction .check for format errors
163
check for eqn errors
467 89, 187
467 163
263
book
copy text, in editor Core dump corrections, in Shell
230 465 49 89
checkeq checknr Cheetos
112
361
change line change password change word changing text
check spelling
interpreters
comm
251
characters on screen, weird
command command command
95
131
change directory
character location, with eqn
423 305
241
cd
cb
136
columns, in tables combining files combining Shell commands
123
cc
cat
commands
communicating with others
485 475 87, 304 230 49, 130
Cannot open filename
clean up script, sample
439 325 319 439 153, 395 207 457 307 343
4
370 414 218 279 279
citations, in papers
clear
475 343
buffers,
chmod
2
broken pipe
buffer and disk
287, 294
clear screen
153
BSD UNIX
-iv
3
break page, nroff .br
chkps
editor
cp
3
84, 304
136
476 17
137
84
creating directories
172
cryogenics, microprocessor
crypt
292 275
CTRL-B
126 126, 281
CTRL-F CTRL-H CTRL-S CTRF-U
126 17 15
126
519
267
(.), in Shell
CTRL-V
225
dot
CTRL-VV
225
dot, in editor
CTRL-Z
293
dot-dot
.Ct
330
double backslash double spacing text
41
cursor
.), in
(.
208 268 341
Shell
71
45
122
dw
cursor skips lines
480
e
123
cursor, absent
471
echo
customizing your account
171
edit
cut and paste, in editor
133
279 282 236
cursor
moving commands
48
CH data base
management
data placement in table
486 429 15
date
230 44
db dd default values, nroff'
74
defaults, in Shell
93
environment, setting editing environment editing,
39
file recall
editor, line
217 177
electronic mail
242
end of file marker end of line, character end of word, character environment, editing
281
editor scripts
323 320
.EN
330 425
eqn output eqn with other pre-processors
definitions, string
159
equations, examples
delete a character delete lines
46 44
delete text
139
defaults, changing troff -ms defaults, rro#requests
define a
macro
defining a
TAB
delete words
deleted text, oops! deleted text, recall of
DELETE key delim, in eqn derofT .de
marks diagnosing problems
diacritical
45
478 233 64, 96, 291
449 356 330 450 469
206 206 236 447 445 466 466 459 172, 447 447 447
eqn
equations, formatting equations, in
files
.EQ
175
errors in formatting, check
467 26, 50
errors in eqn^ check
ESCAPE key escape character, nroff
341
executable
367 370 384 428
files
execute permission exit, from wro^formatting
expanding experience
.
a table
53
file
diction check
89
exponents, with eqn
455
diction
89
ex editor
177
250 257
.ex
384
cjcand
vi,
moving between
251
^-jcand
vv;
relationship
directories directories within directories
directory,
change
directory, lost within directory,
make
directory, parent
477 172, 250 269
191
fg
293
338 116
Eg macro
disk and buffer
106
file
descriptors
126, 227
file
length,
displays, with eqn
461
file
permissions
dollar sign, in editor
139
file
relocation
dot {nroff conixoX character)
345 283
file,
(.) files
520
195
Mode ex Command Mode
179
dot
5
189
ex Append
disk display adjustment
editors
file,
maximum
permanent copy temporary copy
190
troff
322 368, 378 250 106
106
filemodes
370 370 40 274, 306 40
filemodes, change
filename filename expansion character filename, misspelled
home-made macros horizontal lines, in tables
Houdini Award
329 440 32
•
50 129
1
I
filenames, examples
83
ignoreeof
281
filenames, rules on
82
improved editing indent, temporary
174
as sections of larger paper
files,
filled text
172 72, 343
filling
72
find
266, 286
find a lost
266
file
72
.fi
font change, tables
index, create index, formatting
management) macro use
Ingres (data base initializing for
input characters, translate
font changes, text
442 319
input, standard
font characters
321
insert text, in editor
font selection, with eqn
interactive
font. Italics
464 318 318 317
interpreters,
footer margin, change
159
.IP
footnotes, formatting
415
ISP
foreground
293
Italics
font, ^old font,
form
Roman
a process
382 68, 152 110
letters
format a file format commands format commands, conventions format commands, remove format errors, check formatted output, absent formatted output, with macros formatting formatting, volunteer with .fo
fractions, with eqn .ft
B
.ft
I
.ft
R
function keys g (in
editor)
G global search
Greek
letters
grep halt scrolling
65
356 163, 175
input
jobs joining
files
justified text
295 338 112
486
72
kill
292
killing a process
292 239 209 139 234 457
Kryptonite last line in file
lettered buffers limits, with
eqn ex
190
line addresses, rules
137
line addresses, in
ex
177, 189
numbers,
69 179
line editor, line length line
in editor
215 125
line print a file
68
line printer
210 451 273
line spacing
30 70
16
lines in boxes, tables listing files
login
87
440 30 69
.11
430
directory
115
317 394 293 303
invisible character
headings,
Home
package)
font
locating
.he
nroff
command
(statistical
159
head
interpreters
146
header margin, change in tables
memory,
152
42
50, 129
interactive processing
Kirk, Captain
macros 152 347 456 318 317 318
360 116
command
473 64
158
76
file
internal
66 172, 363 403 486
words or phrases
login banner, absent
347
.login file
250
logout
273 10
472 284 12
521
.logout
287
file
15
look
384 265
looping, in nrqtf' lost files, find
30, 68
Ipr
145
.LP
30, 253
Is
70
.Is
macro arguments macro calls macro definitions macro examples, paragraphs macro file, creating macro, define a
macros macros, arguments within macros, create your own
337 144, 328 330 145
332 330 144, 328 337
251
mkdir Module use more move
move
3
86 139 85
a file
195
moving between ex and vi moving cursor backward moving cursor forward moving text across files moving text, within a file moving the cursor Mrs. Zak
123
122 173 138, 173
122
88 142
-ms macros -ms macros, how read multi-columned tables multiple authors, refer
333 432
408 382
.
175
multiple copies of letters
home-made macros, how work
329 332
mv
85
n {next)
43
macros, with moff' Mail
155
naming macros
242
.na
accessing
242
needs
153
reading
243
neqn
244 243 245 250
neqn .ne
445 447 154
.nf
72
macros,
Mail Mail Mail Mail Mail
make
sending a
file
sending a note using
vi
with
a directory
man
98
management, account manual access
272 98
map
238
.NH
149
no break, in nrojf no fill, in nroff
345 71
476 281, 305
No match noclobber .nr
FM
159
12
.nr
HM
159
12
.nr
LL
157
A
8
.nr
PO
157
B
22
.nr
PS
C
40
.nr
VS
D
102
nroff'
E
200 473 226 308 308 463 322 227 475 204 292 407
nroff'dind
324 325 64 144 338 310 142, 327 338
margin, deviating
marking a position while editing matching a single character matching characters matrices, with eqn
maximum
file
length,
troff'
mb
(mark position 8) messages on screen meta characters, editor microprocessor cryogenics mistakes, refer
522
72
12
maps, arrows maps, boxes maps, symbols
Map Map Map Map Map
332
A7
macro compatibility
ro#internal
nroff' O'pXxons
nroff requests
memory
number registers number registers, changing values number registers, resetting 323, number registers, troff -ms numbered buffers numbered headings numbered text numbers in editing environment
157
156
324 233 149 136
282
384
.nx
Permission denied
0
51
permissions
O
51
petes
objectives of
book
2
73
offset output
one-way text change commands one-way commands 69, open a line above open a line below
129 73, 111
51, 71 51
231
operators, text
options
93
orphans
176
89
output, redirect
field
dilemma
phototypesetting
itrqff)
PID number piles,
with eqn
476 369 484 312 292 462
pipe reroute
95
pipe
64
place text in a buffer
placement of data
in table
.pi
point size point size changes
235
429 70, 154, 346 314 316 314 315 315 442 464
output, standard
116
point size, available on troff
output, troff
322
point size, default
overview, conceptual
105
point size, specifying
p (in
134
point size, tables
134
point size, with eqn
p (in ex)
215-
.po
pack
276 277 320
.PP
145
previewing a formatted paper
176
153
print
P
(in
vi) vi)
a file
pack page characteristics, page control
troff
page length
70, 154, 346
page length, /7ro//'’problems
page paragraph macro examples paragraph macros paragraph reset macro paragraph resets, with troff-m
70
73
print offset
73
working directory
265
printer selection
176
printing files
30 469
64, 86
problems, diagnosing
145
problems, formatting
144
469 469 470 470
paragraph, block {nrqff) paragraph, exdented
148
paragraph, indented
146
problems logging in problems. Shell or editor problems, unknown origin process status check process, background a process, foreground a
paragraph, labeled
146
process,
paragraph,
145
process, stop
292
148
processing, batch
295
66, 145
processing, interactive
295
parens, with eqn
457
Programmer’s Manual
98, 379
parent directory
269
and wholes passwd password password, change
301
programming in C prompt fields, in refer
485 407
path, search
375
ps
291
pathnames pathnames, copying pathnames, editing
258
.ps
316
261
put text
134
pwd .PX
265
pattern scanning
260 483
401
pattern searches
174
:q!
107
patterns vs. words, in editor
205
Q
195
permanent copy of
106
left
block
paragraph, quote paragraph, standard
parts
351
323 67
10 16
prompts,
files
file
Qe
in refer
90, 289
293 96, 292
kill
prompt. Shell prompts, change
16
291
11 in refer
411, 412
405
335
523
351
QP
148
.RT
.Qs
334
R LI BOUT key
quality of formatted output
172
ruined a
quit an editing session
107
S
quit editing without writing
181
s (in
Quote paragraph macro r
.rd
read
command
read text into current
file
read permission reassembly of files
334 46 383 383 186, 303 370
S
(statistical
48, 130
130
(in vi)
sample bibliography sample paper, formatted sample paper, input file save a
recall stored text
234 234
script file
redundant
lines,
remove
refer
refer refer,
formatting
refer,
printing
refer,
with other pre-processors
.
reminder
file
remove a batch job remove a file remove formatting commands remove magic, in editor remove spaces, in editor rename a file repeated characters,
in editor
replace a character Request, while logging in
360 404 415 410 410 416 283 298 85
356 209 216 85
209 46 9
327
requests, nroff
79 108
screen, clear
89, 117
80
file
233
redirect output
215 417
s (in ex)
recall deleted text
text
486
package)
vi)
scrambling
yanked
107
file
176
recall
64, 96
275 279
a file
script, clean
296 218
up
87, 127
scroll text
scrolling, stop
16
search buffers
234
search
command
43
search path
375
search path, setting
377
searches, excluding characters
208 174
searches, pattern searches, upper/lower case letters
207 207
section headings
149
searches, range of characters
sed (stream editor)
semicolon separating a
file
set :set all :set
ignorecase
482 96 302 280, 376 236 238
set ignoreeof
281
:set list
413
351
set noclobber
281
-ms macros
156
:set nolist
413
number
156
:set
resetting terminal type
480
:set
return to Shell, from ex
197
setenv
reroute, with pipe reset
95
macro, paragraph
resets,
resetting
registers
return to Shell, from
RETURN
key
rni
robin rotfbib
Roman
font
root
rows,
.RP .RS .RE
524
in tables
vi
nonumber number
EXINIT
27
setting a trap,
13
setting an editing option
85
setting your search path
macros
236 136, 179, 282 282 348 237 378
299 410
Shell
commands, combining
Shell
Mode
318 374
Shell
programming
Shell variables
281
423
.SH
149
398 342 342
single spacing text
70
slash-search
43
sort a
file
95 13, 81, 109
484
357
sort
357 410 335 286 335 65
sortbib
source
in a file
source .login .so
.sp
space down,
in
moff
spacing, with eqn
spanning entries
in tables
special characters.
Append Mode
special characters, editor special characters, in searches
65
452 431, 437 224 204 215
tables,
tables,
multi-columned spanned entries
TAB tail
432 431, 437 key 88
tbl
421
tbi
427 402 426
.TC .TE temporary copy of temporary indent Term type
file
106
66 11
terminal
11
special formatting tasks
174
terminal display of underlining
331
special rroy^'characters
321
terminal locations
247
specifying terminal type
41
terminal type, specifying
41
spelling check
89, 187
terminal, switch on
8
spell
88, 187
terminate a process
96
Spock, Mr.
239
text addresses
standard input
116
text blocks,
star (*) character, in Shell
308
text blocks, tables
Star Trek Addicts
239 486
change commands, one-way 129 text change commands, two-way 132 text changing commands 128, 229 text missing 474 text not filled 474
statistical
packages
stop scrolling
16
Stopped jobs stopping a process storage buffers, text
strange characters
stream editor
476 292 232 471, 479 482
232
form
letters
text
text operators
231
text storage buffers
232 66
.ti
string definitions
159
tilde (')
sub-directories
250 297 455 48
time share system
title
page, with nroff
130
title
page, with nroff -ms
submitting a batch job subscripts, with eqn
substitute a character
substitution
commands
title
252 41
lines
title lines,
substitution,
all
lines
213
titles, refer
substitution,
all
occurrences
213
.tl
substitution, current line
211
.TL
substitution, next occurrence
212
tmac. s
substitution, specified line
211
tr
346 header
&
footer
suggestions, typing
24
translate input characters
suggest
90
trap, setting
switch, on terminal
symbols, available with eqn syntax,
command
system crash
.T&
(in table)
tab(
+)
(in table)
table formatting table headings table of contents, formatting
8
trqff
450
trqff
92
388 435
-ms rrq/7'maximum
file
length
159 172, 393
393 408 346
398 352 360 360 348 312 312, 322 322 322 320
472 435 425
/rq//’output
//qZ/special characters
321
172
troubleshooting
468 424
430 172, 399
r/'q/f
request defaults
.TS two-headed arrows. Maps
42
525
!
two-way commands
42, 111, 132
u
314 317 24 44
U
140
ucb bin
315
type characteristics, determining type font typing suggestions
.ul
67
unadjusted text
72
111
uncompact
67
underline text
474 325 319
underlining, problems underlining, trojf'-ms
underlining, troff
44, 140
undo changes
.vs
317
:w
108
:w
command, forms
of
122, 303
291
wait weird characters on screen
49
wh who
348
widows word salad, display word salad, file
176
•
14
479 478 246
write write material into a
file
370 486
^rite permission
Workbench
Writers’
writing a
184, 185
108
file
71
writing for safety
182
uniq unique lines, locate UNIX Version 7
360
writing onto disk
108
361
writing out text
302
unpack
277
unfilled text
4
using the Modules
3
374 172, 355 440 317
usr bin utility
programs
vertical lines, in tables vertical spacing
23, 196
vi vi
Append Mode
110
V/
Command Mode
no
v4
with refer
408 86
view a file view end of file only view entire file view top of
file
visual editor,
commands
to enter
volunteer formatting, with -ms
526
writing,
UNIX
advance work
75 171
writing, grinding-it-out
173
writing, production issues
175
:wq!
108
X (in
vi)
46
.XA
400
.XE .XP .XS
401
X out
148
400 46 134
86
yank text yanked text, recall You have Mail.
234 242
87
yy
134
224
\
134
152
z#.
127, 227
ZZ
27, 107
88
only
writing process, with
QUICK ACCESS CHART
Add
Character
Word
Line
24, 129
24, 129
24, 129
a
i
A
I
O
0
a
47, 231
Change
Delete
Find
A
I
O
0
a
i
a
S
cc
229, 231
136, 229
yw
yy, :4co 6
24, 129
24, 129
i
A
I
0
O
a
i
A
I
0
44, 231
X
dw
dd
15
43
125
word
64G
/
24, 129 I
0
49, 231
24, 129 i
O
24, 129, 194
I
I
i
133
Join
J 231
Move
dw & p
Remove Substitute
Note: Page
0
45, 230
i
*
A
I
46
lb
Insert
O
0
cw
24, 129 i
A
1
48, 231
Copy
a
i
s
r
Create
*
46 X
45, 230
48, 130
48, 231
s
cw
number appears
in
139, 231
&
dd
command (s)
:
6 ni
33
44, 231
dw
top row;
n,
dd, :6 49, 130 cc
appears
in
S
bottom row.
527
Paragraph
File
Directory
24, 129
23, 191
172, 250
a
A
I
i
0
O
27, 107
49, 231
ZZ &
6S
7cc
ex
vi
6co
i
I
A
cd
24, 191
0
0
vi
ex
44
85
6dd
rm
226
266, 286 find
11
Add Change
Copy
cp
9
24, 129 a
250
84
136 Jyy, :4,
vi
mkdir
172, 251
mkdir 493 rmdir
Create
Delete
Find
Insert 87, 304
Join
cat
85
139, 231
6dd
&
p, :i,
5
85
6dd, :2,5d
rm
dec
6S
Move
mv
44, 139
49, 130
528
6m
493 rmdir
Remove Substitute
Map A
@ 3 O BC O Station 2
Shell (# $ Station 3
Mode
% &
or
Prompt)
^'^orcj
Station 4
ype
B Map
C Map
}
f
-n
amicuPftWOLO'sxsQmcEliW CENTER v^ MEDiCWSIRECT Tiso CieMENl 94121 cA.M cR^^iClSCO. CA
/M .asUS'l
PATHOLOGY SERVICE (USA) VA MEDICAL CENTER 4153 CLEMENT STREET StCi FRANCISCO, CA 94121
ClITllCAL
unixforpeoplemodOObao .n,x.orpeoplemodOOb,rn
nonintimidating “hands-on” guide to the UNIX Operating System that assumes no previous experience with UNIX or computing in general. Beginning programming stCidents and people in business and Industry
A
use UNIX through a systematic, step-by-step, at-the-termlnal Introduction to the various resources available on the UNIX system. Spiral binding, larger type, extensive field testing, and a tutorial format make this book easy to use and understand. learn to
SPECIAL FEATURES: •
Procedural Approach. Each concept
is
introduced with a “doing”
activity.
• •
Learning Objectives and Procedures. Clearly stated. Friendly Style. Directed to people with a variety of experiences, educational levels, and occupations.
•
•
Conceptual Maps. Visual representations of the system make the material easier to comprehend.
Sequencing of
Activities.
A method
that
Is
crucial in this kind of
book.
Also of interest: Illustrations (drawings and photographs) reinforce concepts and demonstrate actions.
a
PRENTICE-HALL,
INC.,
Englewood
Cliffs, N.J.
07632
ISBN 0-13-13?MS'f-0