Added GNO 2.0.4 reference manuals (legacy)
This commit is contained in:
parent
61781097f0
commit
7e3a4def85
|
@ -1,9 +1,9 @@
|
|||
#
|
||||
# Various reference manuals
|
||||
# Top level GNO documentation makefile
|
||||
#
|
||||
SRCROOT = .
|
||||
WEB_HOME_BASE =
|
||||
SUBPROJECTS = refs
|
||||
SUBPROJECTS = refs refs.aug96
|
||||
|
||||
include $(SRCROOT)/etc/const-priv.mk
|
||||
include $(SRCROOT)/etc/const.mk
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
#
|
||||
# Legacy reference manuals from August 1996, for GNO 2.0.4
|
||||
#
|
||||
|
||||
SRCROOT = ..
|
||||
WEB_HOME_BASE = refs.aug96
|
||||
SUBPROJECTS =
|
||||
|
||||
TARGETS = $(WEB_HOME)/gsh.12.html \
|
||||
$(WEB_HOME)/gsh.3.html \
|
||||
$(WEB_HOME)/gsh.4.html \
|
||||
$(WEB_HOME)/gsh.5.html \
|
||||
$(WEB_HOME)/install.html \
|
||||
$(WEB_HOME)/kern.html \
|
||||
$(WEB_HOME)/man1.html \
|
||||
$(WEB_HOME)/man2.html \
|
||||
$(WEB_HOME)/man3.html \
|
||||
$(WEB_HOME)/man4.html
|
||||
|
||||
include $(SRCROOT)/etc/const-priv.mk
|
||||
include $(SRCROOT)/etc/const.mk
|
||||
-include $(SRCROOT)/etc/const-local.mk
|
||||
|
||||
include $(SRCROOT)/etc/rules.mk
|
||||
|
||||
# We do a straight copy on these ones.
|
||||
$(WEB_HOME)/%.html: %.html
|
||||
install -m644 $< $@
|
|
@ -0,0 +1,709 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 2.0">
|
||||
<title>GNO Shell User's Manual</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<p align="right"><font size="7" face="Times"><b>GNO Shell User's
|
||||
Manual</b></font></p>
|
||||
|
||||
<p align="right"><font size="5" face="Times">By Tim Meekins,
|
||||
Albert Chin, and Jawaid Bazyar</font></p>
|
||||
|
||||
<p align="right"><font size="5" face="Times">Edited by Andrew
|
||||
Roughan</font></p>
|
||||
|
||||
<p align="right"> </p>
|
||||
|
||||
<p align="right"> </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font size="6" face="Times">Table of Contents</font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><b>Chapter 1 Getting started with the GNO Shell </b></p>
|
||||
|
||||
<dir>
|
||||
<li>Introduction <br>
|
||||
Customizing the Shell Environment <br>
|
||||
Invoking gsh </li>
|
||||
</dir>
|
||||
|
||||
<p><b>Chapter 2 Interacting with the GNO Shell </b></p>
|
||||
|
||||
<dir>
|
||||
<li>Executing Commands <br>
|
||||
Command-line Editor <br>
|
||||
Command Input <br>
|
||||
Command Editing <br>
|
||||
History Editing Keys<br>
|
||||
Command, Filename and Variable completion </li>
|
||||
</dir>
|
||||
|
||||
<p><b>Chapter 3 Using the GNO Shell more productively </b></p>
|
||||
|
||||
<dir>
|
||||
<li>What does this command do? <br>
|
||||
Option Arguments <br>
|
||||
Entering Multiple commands <br>
|
||||
Using Aliases as Shorthand <br>
|
||||
Redirecting Input and Output <br>
|
||||
Pipelines <br>
|
||||
Job Control <br>
|
||||
Working with Pathnames <br>
|
||||
Pathname Expansion <br>
|
||||
Quoting Special Characters <br>
|
||||
How gsh Finds a Command </li>
|
||||
</dir>
|
||||
|
||||
<p><b>Chapter 4 Built-in Commands </b></p>
|
||||
|
||||
<dir>
|
||||
<li>Built-ins vs EXE Commands <br>
|
||||
Shell Commands <br>
|
||||
Kernel Commands <br>
|
||||
Environment Commands </li>
|
||||
</dir>
|
||||
|
||||
<p><b>Chapter 5 Shell Variables </b></p>
|
||||
|
||||
<dir>
|
||||
<li>Using shell variables <br>
|
||||
Scope <br>
|
||||
Description of Pre-defined Shell Variables <br>
|
||||
Accessing shell variables </li>
|
||||
</dir>
|
||||
|
||||
<p><b>Appendix A Sample gsh session </b></p>
|
||||
|
||||
<p><b>Appendix B Prefix Conventions </b></p>
|
||||
|
||||
<p><b>Appendix C Errors </b></p>
|
||||
|
||||
<p><b>Appendix D Signals </b></p>
|
||||
|
||||
<p><b>Appendix E Non-Compliant Applications </b></p>
|
||||
|
||||
<p><b>Appendix F Termcaps </b></p>
|
||||
|
||||
<p><b>Glossary </b></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><b>Index 63</b></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font size="6" face="Times">Chapter 1</font></p>
|
||||
|
||||
<p><font size="6" face="Times">Getting started with the GNO Shell</font></p>
|
||||
|
||||
<p align="right"><font size="2" face="Times">"Computer
|
||||
operating systems are among the most complex objects created by
|
||||
mankind..."</font></p>
|
||||
|
||||
<p align="right"><font size="2" face="Times">Douglas Comer,
|
||||
Operating System Design, The Xinu Approach</font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font face="Times"><b>Introduction</b></font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font face="Times">The GNO shell is an integral part of the
|
||||
GNO Multitasking Environment (GNO/ME). The GNO shell provides the
|
||||
interface between the user and the GNO Kernel. While both work
|
||||
together, the jobs they perform are quite different. This manual
|
||||
documents the functions of the shell.</font></p>
|
||||
|
||||
<p><font face="Times">The user interacts with the shell through a
|
||||
command-line interface. Command-line interfaces provide a unique
|
||||
way of interacting with the operating system. Unlike GUIs
|
||||
(Graphical User Interfaces), with which you are already familiar
|
||||
with by using programs such as the Finder and ShrinkIt! GS, all
|
||||
commands are typically entered using the keyboard. The shell
|
||||
interprets commands and passes them to the kernel for control and
|
||||
execution.</font></p>
|
||||
|
||||
<p><font face="Times">The command-line interface will be
|
||||
unfamiliar to some people However, once the command-line
|
||||
interface has been mastered, the user should have no difficulty
|
||||
using any current or future GNO applications. Those of you
|
||||
already familiar with Unix interfaces, such as the C shell,
|
||||
Bourne shell, and Korn shell, or the ORCA shell on the Apple
|
||||
IIGS, will begin to realize the advantages which GNO/ME is able
|
||||
to provide.</font></p>
|
||||
|
||||
<p><font face="Times">The way this manual is presented allows the
|
||||
complete beginner to simply work through the chapters in a
|
||||
chronological prder. Chapter 2 familiarises the user with
|
||||
entering basic commands whereas the more powerful GNO/ME features
|
||||
are introduced in Chapter 3. Chapter 4 documents the commands
|
||||
which are built into the GNO Shell and Chapter 5 explains shell
|
||||
variables which give the user control over how thier installation
|
||||
functions.</font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font face="Times"><b>Customizing the Shell Environment</b></font></p>
|
||||
|
||||
<p><font face="Times">When <b>gsh</b>, the implimentation of the
|
||||
GNO Shell, is executed, it reads in and processes the <i>gshrc</i>
|
||||
file. This file contains start-up instructions for the shell,
|
||||
which can be used to customize the operation of the shell and
|
||||
other aspects of the system. It is created by the GNO Installer
|
||||
during the installation process.</font></p>
|
||||
|
||||
<p><font face="Times">The following is a sample <i>gshrc</i> file
|
||||
(line numbers have been added for convenience):</font></p>
|
||||
|
||||
<pre>
|
||||
1 ###
|
||||
2 #
|
||||
3 # GNO 2.0 gshrc file
|
||||
4 #
|
||||
5 ###
|
||||
6 #
|
||||
7 # Initialize our environment
|
||||
8 #
|
||||
9 set path=":hard:gno:bin :hard:gno:usr:bin"
|
||||
10 set prompt="[%h] %S%t%s %C> "
|
||||
11 set home=":hard:gno:user:root"
|
||||
12 set term=gnocon
|
||||
13 export path prompt home term
|
||||
14 setenv history=100 savehist=25
|
||||
15 ###
|
||||
16 #
|
||||
17 #Set up standard prefixes for utilities.
|
||||
18 #
|
||||
19 ###
|
||||
20 prefix 2 :software:orca:libraries
|
||||
21 prefix 3 :software:orca
|
||||
22 prefix 4 :software:orca:shell
|
||||
23 prefix 5 :software:orca:languages
|
||||
24 prefix 6 :software:orca:utilities
|
||||
25 prefix 7 :tmp
|
||||
26 ###
|
||||
27 #
|
||||
28 # Set up prefixes for Orca2.0(tm)'s benefit
|
||||
29 #
|
||||
30 ###
|
||||
31 prefix 13 :software:orca:libraries
|
||||
32 prefix 14 :software:orca
|
||||
33 prefix 15 :software:orca:shell
|
||||
34 prefix 16 :software:orca:languages
|
||||
35 prefix 17 :software:orca:utilities
|
||||
36 alias ls 'ls -CF'
|
||||
37 alias dir 'ls -al'
|
||||
38 alias cp 'cp -i'
|
||||
39 alias rm 'cp -p rm'
|
||||
40 alias mv 'cp -p mv'
|
||||
41 setenv usrman='/usr/man'
|
||||
42 set fignore='.a .root .sym'
|
||||
43 alias zcat 'compress -cd'
|
||||
44 setenv pager=less
|
||||
45 setenv less=-e
|
||||
46 set nonewline=1
|
||||
47 #
|
||||
48 # Move to home directory
|
||||
49 #
|
||||
50 cd line
|
||||
</pre>
|
||||
|
||||
<p><font face="Times">When you install GNO/ME, the GNO installer
|
||||
knows where to find the GNO utilities and any ORCA utilities you
|
||||
may have. Unfortunately it does not know where all the other
|
||||
utilities and applications that you may wish to use are located.
|
||||
It is therefore necessary to edit the setup file in order to tell
|
||||
the GNO shell where these programs are on your hard disk.</font></p>
|
||||
|
||||
<p><font face="Times">The setup file, <i>gshrc</i>, is located in
|
||||
the /usr directory of the path where you installed GNO/ME. You
|
||||
can use any text editor from the desktop to edit the <i>gshrc</i>
|
||||
file, or if you are already familiar with the editor <b>vi</b>
|
||||
you can use this utility after launching the GNO kernel.</font></p>
|
||||
|
||||
<p><font face="Times">Line 9 is the statement that we are
|
||||
concerned with. <b>Hard </b>represents the name of your
|
||||
particular hard drive volume where you have installed GNO/ME.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">set path=":hard:gno:bin
|
||||
:hard:gno:usr:bin" line #9</font></p>
|
||||
|
||||
<p><font face="Times">You will see that spaces have been inserted
|
||||
between pathnames. The space is the pathname separator and the
|
||||
colon has been used as the path delimiter for this specific
|
||||
variable, PATH. As an exercise, add your system directory to this
|
||||
statement. Line 9 should now look like this:</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">set path=":hard:gno:bin
|
||||
:hard:gno:usr:bin :hard:system"</font></p>
|
||||
|
||||
<p><font face="Times">What you have just done allows the GNO
|
||||
shell to find the <b>Finder</b> application. Now go ahead and add
|
||||
any pathnames that hold utilities or applications that you will
|
||||
use frequently from GNO/ME. It should also be noted that it is
|
||||
possible to have more than one pathname containing EXE, SYS16, or
|
||||
EXEC files; this is impossible under ORCA. The PATH variable is
|
||||
discussed thoroughly in Chapter 5.</font></p>
|
||||
|
||||
<p><font face="Times">For now, the remaining lines of the <i>gshrc</i>
|
||||
file do not need editing. As you gain an understanding of the
|
||||
system you may wish to make further changes to the <i>gshrc</i>
|
||||
file. Make sure you save the file before you exit the editor.</font></p>
|
||||
|
||||
<p><font face="Times">It is possible to modify these instructions
|
||||
while the GNO shell is active, but any changes will be lost upon
|
||||
exiting <b>gsh.</b> If you wish the changes to remain effective
|
||||
for the next session you must add them to the <i>gshrc</i> file.</font></p>
|
||||
|
||||
<p><font face="Times">By customizing the <i>gshrc</i> file it is
|
||||
possible to make the GNO environment more like U</font><font
|
||||
size="2" face="Times">NIX, </font><font face="Times">the ORCA
|
||||
environment, or something completly different. Customization of
|
||||
the GNO environment leads to greater user productivity.</font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font face="Times"><b>Invoking </b>.i.<b>gsh</b></font></p>
|
||||
|
||||
<p><font face="Times">GNO/ME can be launched from a program
|
||||
launcher, such as the System 6.0 Finder. Launch the GNO Kernel
|
||||
program, <b>kern</b> by double clicking on it. The GNO kernel
|
||||
automatically executes the supplied GNO shell, <b>gsh</b>.</font></p>
|
||||
|
||||
<p><font face="Times">The prompt, "<tt>[1] 2:00am root </tt></font><font
|
||||
size="2" face="Courier"><tt>%</tt></font><font face="Times">",
|
||||
indicates that <b>gsh</b> is ready to receive input from the
|
||||
keyboard.</font></p>
|
||||
|
||||
<p><font face="Times">To start a new <b>gsh</b> from the
|
||||
command-line simply type <b>gsh</b>. If multiple copies of the <b>gsh</b>
|
||||
process are undesirable, use the command <b>source gsh</b>
|
||||
instead. This is useful for testing changes made to the <i>gshrc</i>
|
||||
file. <b>Source</b> is a built-in comand which is discussed in
|
||||
Chapter 4 <b>Shell commands</b>.</font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font size="6" face="Times">Chapter 2</font></p>
|
||||
|
||||
<p><font size="6" face="Times">Interacting with the GNO Shell</font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font face="Times"><b>Executing Commands</b></font></p>
|
||||
|
||||
<p><font face="Times">A command consists of two parts: a name and
|
||||
its arguments. The command name is the name used to start the
|
||||
command. The name is usually the name of a file which can be
|
||||
executed. The only exceptions are commands which are built-in to
|
||||
the shell. These commands are documented in Chapter 4 <b>Built-In
|
||||
Commands</b>. Any shell utility command with a filetype of EXE,
|
||||
SYS16, or EXEC, can be executed in this fashion. The command name
|
||||
must be separated from the command arguments with a space.</font></p>
|
||||
|
||||
<p><font face="Times">The command arguments are parameters that
|
||||
the command takes as data to work with (In Applesoft BASIC,
|
||||
"</font><font size="2" face="Courier">HELLO WORLD</font><font
|
||||
face="Times">" would be an argument for the </font><font
|
||||
size="2" face="Courier">PRINT</font><font face="Times"> command).
|
||||
Command arguments are separated from each other with a space.
|
||||
Note that although arguments extend the usefulness of a command,
|
||||
not all commands have arguments. Any arguments entered after the
|
||||
command will be passed by the shell to the program when it starts
|
||||
exectuting. </font></p>
|
||||
|
||||
<p><font face="Times">The examples below use the following
|
||||
commands:</font></p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>qtime</b></font><font
|
||||
face="Times"> displays time in English text.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>echo</b></font><font
|
||||
face="Times"> prints arguments to the screen.</font></p>
|
||||
|
||||
<p><font face="Times">Examples:</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>qtime</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">It's almost five.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>echo II Infinitum</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">II Infinitum</font></p>
|
||||
|
||||
<p><font face="Times">At the simplest level the user enters
|
||||
commands to the shell by typing them on the keyboard. <b>Gsh</b>
|
||||
includes a command-line editor to help the user enter and edit
|
||||
commands. The editor also provides a way to modify and execute
|
||||
previous commands. Additionally the editor can help complete the
|
||||
names of commands, filenames and variables.</font></p>
|
||||
|
||||
<p><font face="Times"><b></b></font> </p>
|
||||
|
||||
<p><font face="Times"><b>Command-line Editor</b></font></p>
|
||||
|
||||
<p><font face="Times">Below is a complete description of the
|
||||
functions of the command-line editor with short examples
|
||||
depicting how each editing key works.</font></p>
|
||||
|
||||
<p><font face="Times">Throughout the examples the underline
|
||||
character, "</font><font size="2" face="Courier">_</font><font
|
||||
face="Times">", will be used to represent the current cursor
|
||||
position. In addition, "OA" is used to represent the
|
||||
Open Apple key and the term <i>word</i> is used to indicate a
|
||||
string of characters consisting of only letters, digits, and
|
||||
underscores. To the right of a editing key entry is the </font><font
|
||||
size="2" face="Courier">bindkey</font><font size="2" face="Times">
|
||||
</font><font face="Times">function name which is used to remap
|
||||
editing functions to new keys. This information is included for
|
||||
reference purposes only. See Chapter 4 <b>Shell Commands</b> for
|
||||
more information on the </font><font size="2" face="Courier">bindkey</font><font
|
||||
face="Times"> command.</font></p>
|
||||
|
||||
<p><font face="Times">It should be pointed out that at this stage
|
||||
that the user should not be concerned with what the actual
|
||||
commands used in the examples do, rather the user should
|
||||
concentrate on how the command-line editor functions work.</font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><font face="Times"><b>Command Input</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">These command-line editor keys
|
||||
deal with entering text directly on the command-line.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">RETURN</font><font face="Times">
|
||||
</font><font size="2" face="Courier"><b>newline</b></font></p>
|
||||
|
||||
<blockquote>
|
||||
<p><font face="Times">The return key is used to terminate
|
||||
line input. <b>gsh</b> then interprets the command on the
|
||||
line and acts accordingly. The position of the cursor on the
|
||||
command-line does not matter.</font></p>
|
||||
<p><font size="2" face="Courier">Before</font></p>
|
||||
<p><font size="2" face="Courier">% <b>echo f</b><b><u>o</u></b><b>o
|
||||
bar</b> (RETURN)</font></p>
|
||||
<p><font size="2" face="Courier">After</font></p>
|
||||
<p><font size="2" face="Courier">foo bar</font></p>
|
||||
<p><font size="2" face="Courier">% _</font></p>
|
||||
</blockquote>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-D</font><font face="Times">
|
||||
<no bindkey name></font></p>
|
||||
|
||||
<blockquote>
|
||||
<p><font face="Times">Exits <b>gsh</b> if it was the first
|
||||
character typed on the command-line. If there are still jobs
|
||||
running in the background or stopped, <b>gsh</b> will display
|
||||
"</font><font size="2" face="Courier">There are stopped
|
||||
jobs.</font><font face="Times">" If you press </font><font
|
||||
size="2" face="Courier">CTRL-D</font><font face="Times"> a
|
||||
second time without an intervening command, <b>gsh</b> will
|
||||
terminate all the jobs in the job list and exit.</font></p>
|
||||
</blockquote>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-R</font><font face="Times">
|
||||
</font><font size="2" face="Courier"><b>redraw</b></font></p>
|
||||
|
||||
<blockquote>
|
||||
<p><font face="Times">Moves to the next line and re-displays
|
||||
the current command-line. Use this to redraw the current line
|
||||
if the screen becomes garbled.</font></p>
|
||||
</blockquote>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-L</font><font face="Times">
|
||||
</font><font size="2" face="Courier"><b>clear-screen</b></font></p>
|
||||
|
||||
<blockquote>
|
||||
<p><font face="Times">Clears the screen, moves the cursor to
|
||||
the top line, and redraws the prompt and any command-line
|
||||
that was in the process of being edited.</font></p>
|
||||
</blockquote>
|
||||
|
||||
<p><font face="Times"><b>Command Editing</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">These command-line editor keys
|
||||
allow editing of the command-line text.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-B <b>backward-char</b></font></p>
|
||||
|
||||
<blockquote>
|
||||
<p><font size="2" face="Courier">LEFT-ARROW</font><font
|
||||
face="Times"> Moves the cursor one character to the left. You
|
||||
cannot move past the first character on the line. If so, <b>gsh</b>
|
||||
will output an error beep.</font></p>
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
<p><font size="2" face="Courier">% <b>print f</b><b><u>o</u></b><b>o
|
||||
bar</b> (LEFT-ARROW) % <b>print </b><b><u>f</u></b><b>oo bar</b></font></p>
|
||||
</blockquote>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-F <b>forward-char</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">RIGHT-ARROW</font><font
|
||||
face="Times"> Moves the cursor one character to the right. You
|
||||
cannot move past the last character on the line. If so, <b>gsh</b>
|
||||
will output an error beep.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print f</b><b><u>o</u></b><b>o
|
||||
bar</b> (RIGHT-ARROW) % <b>print fo</b><b><u>o</u></b><b> bar</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">DELETE</font><font face="Times">
|
||||
</font><font size="2" face="Courier"><b>backward-delete-char</b></font></p>
|
||||
|
||||
<p><font face="Times">Deletes the character to the left of the
|
||||
cursor. You can delete up to the first character on the
|
||||
command-line.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print f</b><b><u>o</u></b><b>o
|
||||
bar</b> (DELETE) % <b>print </b><b><u>o</u></b><b>o bar</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">CLEAR <b>kill-whole-line</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-X</font><font face="Times">
|
||||
Deletes all characters on the command line and positions the
|
||||
cursor after the prompt.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>prin</b><b><u>t</u></b><b>
|
||||
foo bar</b> (CTRL-X) % <b>_</b> </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-Y;</font><font face="Times">
|
||||
</font><font size="2" face="Courier"><b>kill-end-of-line</b></font></p>
|
||||
|
||||
<p><font face="Times">Deletes all characters from the cursor to
|
||||
the end of the command-line.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print f</b><b><u>o</u></b><b>o
|
||||
bar</b> (CTRL-Y) % <b>print f_</b> </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-D <b>delete-char</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">OA-D</font><font face="Times">
|
||||
Deletes the character under the cursor.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print fo</b><b><u>o</u></b><b>
|
||||
bar</b> (OA-D) % <b>print fo</b><b><u> </u></b><b>bar</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-A <b>beginning-of-line</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">OA-<</font><font face="Times">
|
||||
Moves the cursor to the beginning of the line.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print </b><b><u>f</u></b><b>oo
|
||||
bar</b> (OA-<) % <b><u>p</u></b><b>rint foo bar</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">CTRL-E <b>end-of-line</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">OA-></font><font face="Times">
|
||||
Moves the cursor to the first position past the last character on
|
||||
the line.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print </b><b><u>f</u></b><b>oo
|
||||
bar</b> (OA->) % <b>print foo bar</b><b><u>_</u></b> </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">OA-RIGHT-ARROW <b>forward-word</b></font></p>
|
||||
|
||||
<p><font face="Times">Moves the cursor right to the last
|
||||
character of the current word.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print </b><b><u>f</u></b><b>oo
|
||||
bar</b> (OA-RIGHT-ARROW) % <b>print fo</b><b><u>o</u></b><b> bar</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">OA-LEFT ARROW <b>backward-word</b></font></p>
|
||||
|
||||
<p><font face="Times">Moves the cursor left to the beginning of
|
||||
the current word.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print f</b><b><u>o</u></b><b>o
|
||||
bar</b> (OA-LEFT ARROW) % <b>print </b><b><u>f</u></b><b>oo bar</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>print foo </b><b><u>b</u></b><b>ar</b>
|
||||
(OA-LEFT ARROW) % <b>print </b><b><u>f</u></b><b>oo bar</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">OA-E</font><font face="Times"> </font><font
|
||||
size="2" face="Courier"><b>toggle-cursor</b></font></p>
|
||||
|
||||
<p><font face="Times">Toggles input mode between insert and
|
||||
overstrike. Overstrike mode is distinguished by a solid inverse
|
||||
cursor and insert mode by a blinking '</font><font size="2"
|
||||
face="Courier"><b>_</b></font><font face="Times">' cursor. In
|
||||
overstrike mode, any characters that are typed directly
|
||||
over-write those characters below the cursor. In insert mode, the
|
||||
characters typed are inserted before the character below the
|
||||
cursor.</font></p>
|
||||
|
||||
<p><font face="Times"><b>History Editing Keys</b></font></p>
|
||||
|
||||
<p><font face="Times">These command-line editor keys allow access
|
||||
to previously entered commands. The GNO shell automatically keeps
|
||||
track of previous commands in what is called a history buffer.</font></p>
|
||||
|
||||
<p><font face="Times">The maximum number of command-lines saved
|
||||
in the history buffer is determined by the shell variable . A
|
||||
default value for this variable is set in the <i>gshrc</i> file
|
||||
that the GNO Installer creates. The lines saved to the history
|
||||
buffer are kept between sessions. That is, when you exit <b>gsh</b>,
|
||||
$</font><font size="2" face="Courier">SAVEHIST</font><font
|
||||
face="Times"> command-lines are saved to the </font><font
|
||||
size="2" face="Courier">history</font><font face="Times"> file in
|
||||
your </font><font size="2" face="Courier">$HOME</font><font
|
||||
face="Times"> directory. When <b>gsh</b> is invoked again, all
|
||||
command-lines saved in the history buffer will be available using
|
||||
history editing keys. See Chapter 5 <b>Description of Predefined
|
||||
Shell Variables</b> for more informtation on the </font><font
|
||||
size="2" face="Courier">HISTORY</font><font face="Times"> and </font><font
|
||||
size="2" face="Courier">SAVEHIST</font><font face="Times">
|
||||
variables.</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font size="2" face="Courier">CTRL-P <b>up-history</b></font><p><font
|
||||
size="2" face="Courier">UP-ARROW</font><font face="Times">
|
||||
Fetches the previous command-line. If the current
|
||||
command-line is the first line in the history buffer, the
|
||||
next line fetched will be an empty command-line. If
|
||||
invoked again, the last line in the history buffer will
|
||||
be displayed.</font></p>
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
<p><font size="2" face="Courier">% <b>print foo bar</b></font></p>
|
||||
<p><font size="2" face="Courier">% <b>echo Apple II</b></font></p>
|
||||
<p><font size="2" face="Courier">% <b>echo GNO/ME</b></font></p>
|
||||
<p><font size="2" face="Courier">% <b>_</b> (UP-ARROW) % <b>echo
|
||||
GNO/ME_</b> </font></p>
|
||||
<p><font size="2" face="Courier">% <b>echo GNO/ME_</b>
|
||||
(UP-ARROW) % <b>echo Apple II_</b> </font></p>
|
||||
<p><font size="2" face="Courier">CTRL-N <b>down-history</b></font></p>
|
||||
<p><font size="2" face="Courier">DOWN-ARROW</font><font
|
||||
face="Times"> Fetches the next command-line. If the
|
||||
current command-line is the last command line in the
|
||||
history buffer, the next line fetched will be the first
|
||||
command-line in the history buffer.</font></p>
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
<p><font size="2" face="Courier">% print foo bar</font></p>
|
||||
<p><font size="2" face="Courier">% echo Apple II</font></p>
|
||||
<p><font size="2" face="Courier">% echo GNO/ME</font></p>
|
||||
<p><font size="2" face="Courier">% <b>_</b> (DOWN-ARROW)
|
||||
% <b>print foo bar_</b> </font></p>
|
||||
<p><font size="2" face="Courier">% <b>print foo bar_</b>
|
||||
(DOWN-ARROW) % <b>echo Apple II_</b> </font></p>
|
||||
<p><font face="Times"><b>Command, Filename and Variable
|
||||
completion</b></font></p>
|
||||
<p><font face="Times">These command-line editor keys can
|
||||
be used to complete filenames, commands and variables.</font></p>
|
||||
<p><font size="2" face="Courier">CTRL-D</font><font
|
||||
face="Times"> </font><font size="2" face="Courier"><b>list-choices</b></font></p>
|
||||
<p><font face="Times">Lists commands and pathnames that
|
||||
match the current word.</font></p>
|
||||
<p><font size="2" face="Courier">Before</font></p>
|
||||
<p><font size="2" face="Courier">% <b>print foo_ bar</b>
|
||||
(CTRL-D)</font></p>
|
||||
<p><font size="2" face="Courier">After</font></p>
|
||||
<p><font size="2" face="Courier">foo.c fool foo.m</font></p>
|
||||
<p><font size="2" face="Courier">% <b>print foo_ bar</b></font></p>
|
||||
<p><font size="2" face="Courier">TAB</font><font
|
||||
face="Times"> </font><font size="2" face="Courier"><b>complete-word</b></font></p>
|
||||
<p><font face="Times">Command, pathname and variable
|
||||
completion. If the cursor is positioned on the first word
|
||||
of the command-line, command pathname is performed, else
|
||||
pathname or variable completion is performed. The word is
|
||||
expanded to the closest matching command, pathname or
|
||||
variable. Characters are appended up to the point that
|
||||
they would cause more than one. If a complete pathname
|
||||
results for pathname completion, <b>gsh</b> appends a
|
||||
"</font><font size="2" face="Courier">/</font><font
|
||||
face="Times">" if the pathname is a directory;
|
||||
otherwise, it appends a space.</font></p>
|
||||
<p><font size="2" face="Courier">Before After</font></p>
|
||||
<p><font size="2" face="Courier">% <b>ca_</b> (TAB) % <b>cat_</b></font></p>
|
||||
<p><font size="2" face="Courier">% <b>mo_ foo.c</b> (TAB)
|
||||
% <b>more_ foo.c</b></font></p>
|
||||
<p><font size="2" face="Courier">% <b>more fo_</b> (TAB)
|
||||
% <b>more foo_</b> </font></p>
|
||||
<p><font size="2" face="Courier">% <b>echo $TERMC_</b>
|
||||
(TAB) % <b>echo $TERMCAP_</b></font></p>
|
||||
<p><font face="Times">Note that if there is more than one
|
||||
match for the partial command, <b>gsh</b> will sound a
|
||||
beep on the speaker. You can use the CTRL-D (</font><font
|
||||
size="2" face="Courier">list-choices</font><font
|
||||
face="Times">) command to see the list of possible
|
||||
matches, and should either finish entering the command
|
||||
manually or type enough additional characters to
|
||||
guarantee a unique match.</font></p>
|
||||
<p><font face="Times">If the </font><font size="2"
|
||||
face="Courier">$FIGNORE </font><font face="Times">variable
|
||||
is set, <b>gsh</b> ignores filenames (when doing
|
||||
completion) that end with any of the suffixes in </font><font
|
||||
size="2" face="Courier">$FIGNORE</font><font face="Times">.
|
||||
See Chapter 5 <b>Description of Pre-defined Shell
|
||||
Variables</b> for more information regarding the </font><font
|
||||
size="2" face="Courier">$FIGNORE </font><font
|
||||
face="Times">variable.</font></p>
|
||||
</li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times"><b>Other ways of entering commands</b></font></p>
|
||||
|
||||
<p><font face="Times"><u>Terminal Input</u></font></p>
|
||||
|
||||
<p><font face="Times">An example involving the connection of a
|
||||
terminal; will be dealt with in Chapter 3 <b>Redirecting Input
|
||||
and Output</b> but it is necessary to mention here that when
|
||||
using .i.<b>gsh</b> over a terminal, some keystrokes must be
|
||||
slightly modified. This is because there are no terminals that
|
||||
can transmit the OA key. Instead, a two-key sequence must be used
|
||||
which replaces OA with ESC. For example, instead of pressing OA-E
|
||||
to toggle insert mode, you can type ESC-E over a terminal to do
|
||||
the same thing.</font></p>
|
||||
|
||||
<p><font face="Times">If you will be using terminals seriously
|
||||
then you should install the Remote Access package.</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times"><u>Script File</u></font></li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">While you would normally type commands on
|
||||
the command-line, you can also store a series of often used
|
||||
commands in a file. A file containing such a series of commands
|
||||
is called a script. A script is normally created by using a text
|
||||
editor.</font></p>
|
||||
|
||||
<p><font face="Times">By typing the name of the script file, the
|
||||
shell will execute it, line by line, as if you had typed each
|
||||
command separately. The <i>gshrc</i> file presented in Chapter 1 <b>Customizing
|
||||
the Shell Environment</b> is an example of a script file.</font></p>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,996 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 2.0">
|
||||
<title>GNO Shell User's Manual</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<p><font size="6" face="Times">Chapter 4</font></p>
|
||||
|
||||
<p><font size="6" face="Times">Built-in Commands</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"><b>Built-ins vs EXE Commands</b></font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">The term "built-ins" is used to
|
||||
describe commands that exist within the shell itself. These
|
||||
utilities run faster than external commands because the code is
|
||||
already loaded into memory. Files of type "EXE", on the
|
||||
other hand, must be loaded into memory by <b>gsh</b> and
|
||||
executed. If an EXE command is executed again, it might, again,
|
||||
have to be loaded into memory. This results in longer execution
|
||||
time for the program.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"><b>gsh</b> has a number of built-in
|
||||
commands which allow you to work with the shell, the GNO kernel,
|
||||
and the shell environment.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">The following section describes the
|
||||
commands that are built-in to <b>gsh</b>. The "[..]"
|
||||
character sequence represents an optional argument to a command.
|
||||
The term "</font><font size="2" face="Courier">SIGNAL</font><font
|
||||
face="Times">" is used to represent one of the signal names
|
||||
or numbers listed in Appendix D <b>Signals</b>. The sequence
|
||||
"..." means the command accepts multiple arguments of
|
||||
the same type as the argument before the "..."
|
||||
sequence. The sequence "{..}" is used to represent a
|
||||
set, which is a list of possible arguments to choose from.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"><b>Shell Commands</b></font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">Shell built-ins provide support for
|
||||
external shell commands (i.e. EXE files and shell scripts) and
|
||||
provide some commands used in every-day work.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>bindkey [-l] function string</b></font></p>
|
||||
|
||||
<p><font face="Times">Bindkey is used to customize the shell's
|
||||
command-line editor. Any key on the keyboard can be mapped to any
|
||||
of a number of functions. The various functions are as follows:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font size="2" face="Courier">backward-char</font><font
|
||||
face="Times"> move cursor left</font><p><font size="2"
|
||||
face="Courier">backward-delete-char</font><font
|
||||
face="Times"> delete character to left</font></p>
|
||||
<p><font size="2" face="Courier">backward-word</font><font
|
||||
face="Times"> move cursor left one word</font></p>
|
||||
<p><font size="2" face="Courier">beginning-of-line</font><font
|
||||
face="Times"> move cursor to beginning of line</font></p>
|
||||
<p><font size="2" face="Courier">clear-screen</font><font
|
||||
face="Times"> clear screen and redraw prompt</font></p>
|
||||
<p><font size="2" face="Courier">complete-word</font><font
|
||||
face="Times"> perform filename completion</font></p>
|
||||
<p><font size="2" face="Courier">delete-char</font><font
|
||||
face="Times"> delete character under cursor</font></p>
|
||||
<p><font size="2" face="Courier">down-history</font><font
|
||||
face="Times"> replace command line with next history</font></p>
|
||||
<p><font size="2" face="Courier">end-of-line</font><font
|
||||
face="Times"> move cursor to end of line</font></p>
|
||||
<p><font size="2" face="Courier">forward-char</font><font
|
||||
face="Times"> move cursor to the right</font></p>
|
||||
<p><font size="2" face="Courier">forward-word</font><font
|
||||
face="Times"> move cursor one word to the right</font></p>
|
||||
<p><font size="2" face="Courier">kill-end-of-line</font><font
|
||||
face="Times"> delete line from cursor to end of line</font></p>
|
||||
<p><font size="2" face="Courier">kill-whole-line</font><font
|
||||
face="Times"> delete the entire command line</font></p>
|
||||
<p><font size="2" face="Courier">list-choices</font><font
|
||||
face="Times"> list file completion matches</font></p>
|
||||
<p><font size="2" face="Courier">newline</font><font
|
||||
face="Times"> finished editing, accept command line</font></p>
|
||||
<p><font size="2" face="Courier">raw-char</font><font
|
||||
face="Times"> character as-is</font></p>
|
||||
<p><font size="2" face="Courier">redisplay</font><font
|
||||
face="Times"> redisplay the command line</font></p>
|
||||
<p><font size="2" face="Courier">toggle-cursor</font><font
|
||||
face="Times"> toggle between insert and overwrite cursor</font></p>
|
||||
<p><font size="2" face="Courier">undefined-char</font><font
|
||||
face="Times"> this key does nothing</font></p>
|
||||
<p><font size="2" face="Courier">up-history</font><font
|
||||
face="Times"> replace command line with previous history</font></p>
|
||||
</li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">Keys are bound to functions, not
|
||||
vice-versa. This means that you can have any number of commands
|
||||
refer to the same function. For example, the default bindings
|
||||
have </font><font size="2" face="Courier">CTRL-A</font><font
|
||||
face="Times"> and </font><font size="2" face="Courier">OA-<</font><font
|
||||
face="Times"> both bound to </font><font size="2" face="Courier">beginning-of-line</font><font
|
||||
face="Times">.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">Most of the function names are
|
||||
self-explanatory, and are explained in Chapter 2, but a few
|
||||
deserve discussion. </font><font size="2" face="Courier">raw-char</font><font
|
||||
face="Times"> is what you should bind a key that should be
|
||||
inserted into the command-line as-is. The regular printable ASCII
|
||||
set, such as the letters a-z, numbers, etc. are bound to </font><font
|
||||
size="2" face="Courier">raw-char</font><font face="Times">.
|
||||
Control characters should not be bound to </font><font size="2"
|
||||
face="Courier">raw-char</font><font face="Times"> because the
|
||||
command-line editor will become confused (most control characters
|
||||
act as special GNO/ME console feature codes - see the <i>GNO
|
||||
Kernel Reference Manual</i>, Chapter 4 <b>TextTools Replacement</b>).</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">Any keystroke that should be rejected by
|
||||
the editor should be bound to </font><font size="2"
|
||||
face="Courier">undefined-char</font><font face="Times">. By
|
||||
default, this includes control characters and OA-sequences that
|
||||
are not assigned to any editing features. Any key bound to </font><font
|
||||
size="2" face="Courier">undefined-char</font><font face="Times">
|
||||
will cause <b>gsh</b> to beep and ignore the key.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">You can actually bind key sequences, not
|
||||
just keystrokes, to functions. There is no limit other than
|
||||
memory to how many characters are in a command sequence.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">Because terminals do not have the OA (Open
|
||||
Apple) key, ; is actually mapped by the kernel to a two-character
|
||||
sequence consisting of </font><font size="2" face="Courier">ESC</font><font
|
||||
face="Times"> and the key. For example, OA-Y would actually
|
||||
produce </font><font size="2" face="Courier">ESC-Y</font><font
|
||||
face="Times">.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">Control characters in the </font><font
|
||||
size="2" face="Courier"><b>string</b></font><font face="Times">
|
||||
are represented in ^X format; e.g. CTRL-A is represented by ^A.
|
||||
ESC (and OA) is represented by ^[.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">Examples:</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>bindkey kill-end-of-line ^K</b></font><font
|
||||
face="Times"> map CTRL-K to kill-end-of-line (like Emacs)</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">% <b>bindkey clear-screen ^[^X</b></font><font
|
||||
face="Times"> map OA-CLEAR to clear-screen</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>commands</b></font></p>
|
||||
|
||||
<p><font face="Times">Displays a list of all built-in shell
|
||||
commands.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>cd [pathname]</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>chdir [pathname]</b></font></p>
|
||||
|
||||
<p><font face="Times">Changes the current working directory to
|
||||
pathname. If </font><font size="2" face="Courier">pathname</font><font
|
||||
face="Times"> is not given, the default </font><font size="2"
|
||||
face="Courier">HOME</font><font face="Times"> directory (i.e. the
|
||||
value of the </font><font size="2" face="Courier">HOME</font><font
|
||||
face="Times"> environment variable) is used. This makes it easy
|
||||
to move back to your home directory. Under <b>gsh</b>, unlike
|
||||
most U</font><font size="2" face="Times">NIX</font><font
|
||||
face="Times"> shells, the cd is not necessary, except to change
|
||||
automatically to your HOME directory. If a command is not a
|
||||
built-in or EXE file, but is instead the name of a directory, a
|
||||
cd is implied and performed on the directory unless the </font><font
|
||||
size="2" face="Courier">NODIREXEC</font><font face="Times">
|
||||
variable has been set.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">[1] gno> <b>cd utilities</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[2] gno/utilities> <b>echo
|
||||
$HOME</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">/dev/gno</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[3] gno/utilities> <b>cd</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[4] gno> <b>utilities</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[5] gno/utilities> <b>../utilities</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[6] gno/utilities> <b>~</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[7] gno> _</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>clear</b></font></p>
|
||||
|
||||
<p><font face="Times">This command takes no arguments. When
|
||||
invoked, the screen will be cleared.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>df</b></font></p>
|
||||
|
||||
<p><font face="Times">This command takes no arguments. When
|
||||
invoked, a listing of free blocks for every block device is
|
||||
given. In addition, the device name, type, file system, and
|
||||
capacity is listed.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">[1] gno> <b>df</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">.d## Volume Device Free Total
|
||||
Capacity System</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">---- ----------------
|
||||
---------------- ------- ------- -------- -----------</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d1 :Procyon .CVTECH.S6.A 3166
|
||||
41037 92% ProDOS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d2 Apple 3.5 Drive
|
||||
.APPLEDISK3.5A </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d3 Apple 3.5 Drive
|
||||
.APPLEDISK3.5B </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d4 Console Driver .CONSOLE </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d5 :Day .CVTECH.S6.B 15881
|
||||
65535 75% ProDOS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d6 :Night .CVTECH.S6.C 39274
|
||||
65535 40% HFS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d7 :Left .CVTECH.S6.D 5365
|
||||
51776 89% ProDOS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d8 :Right .CVTECH.S6.E 27477
|
||||
65535 58% ProDOS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d9 :Software .CVTECH.S6.F 3289
|
||||
40960 91% ProDOS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d10 :RAM5 .RAMDISK 505 512 1%
|
||||
ProDOS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d11 :Conner 40 .AFP1 7368 80604
|
||||
90% AppleShare</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d12 AppleTalk fsd .AFP2 </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">....</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d24 AppleTalk fsd .AFP14 </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d25 AppleTalk RPM .RPM </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d26 AppleTalk Main .APPLETALK </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d27 Serial Modem .SERIAL2 </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d28 :system .APPLESCSI.HD01.
|
||||
27561 50773 45% ProDOS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d29 :dev .APPLESCSI.HD01. 43431
|
||||
65108 33% ProDOS</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">.d30 :usr .APPLESCSI.HD01. 44376
|
||||
48725 8% ProDOS</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">Volume</font><font face="Times">
|
||||
- Name of device.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Device</font><font face="Times">
|
||||
- GS/OS device name.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Free</font><font face="Times"> -
|
||||
Total number of free blocks on device.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Total</font><font face="Times">
|
||||
- Total number of blocks on device.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Capacity</font><font
|
||||
face="Times"> - Percentage of used blocks on device.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">System</font><font face="Times">
|
||||
- Format of file system. With System Software 6.0.1, the file
|
||||
systems available are ProDOS, HFS, Pascal, MS-DOS, and DOS 3.3,
|
||||
and some CD-ROM formats.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>echo [-n] arg [arg ...]</b></font></p>
|
||||
|
||||
<p><font face="Times">Expands the "</font><font size="2"
|
||||
face="Courier">arg</font><font face="Times">" expression(s)
|
||||
and outputs them to the screen. If the "</font><font
|
||||
size="2" face="Courier">-n</font><font face="Times">" switch
|
||||
is specified, a </font><font size="2" face="Courier">NEWLINE</font><font
|
||||
face="Times"> character is not output after the last "</font><font
|
||||
size="2" face="Courier">arg</font><font face="Times">"
|
||||
expression. Special escape sequences may also be included in the
|
||||
arguments, similar to those used in C strings:</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">\b</font><font face="Times"> -
|
||||
Backspace</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">\f</font><font face="Times"> -
|
||||
Clears screen (form feed)</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">\n</font><font face="Times"> -
|
||||
Newline</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">\r</font><font face="Times"> -
|
||||
Return</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">\t</font><font face="Times"> -
|
||||
Tab</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">\nnn</font><font face="Times"> -
|
||||
A decimal ASCII code. nnn represents the ASCII code.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">[1] gno> <b>echo Hello World</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Hello World</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[2] gno> <b>echo -n Hello
|
||||
World</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">Hello World[3] gno> <b>echo
|
||||
$PATH $HOME 'come get to $gnome'</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">/dev/gno/utilities
|
||||
/dev/orca/utilities /dev/gno come get to $gnome</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>exit</b></font></p>
|
||||
|
||||
<p><font face="Times">Exits the shell or terminates a shell
|
||||
script.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>history</b></font></p>
|
||||
|
||||
<p><font face="Times">This command displays the list of previous
|
||||
command-line entries. The number of entries saved is set in the </font><font
|
||||
size="2" face="Courier">$HISTORY</font><font face="Times">
|
||||
variable.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"><b>pushd</b></font></p>
|
||||
|
||||
<p><font face="Times"><b>popd [+n]</b></font></p>
|
||||
|
||||
<p><font face="Times"><b>dirs</b></font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">These three commands maintain the shell's <i>directory
|
||||
stack.</i> Let's say you're working in a directory
|
||||
/src/myprogs/class/program.1/, and you want to temporarily go to
|
||||
another directory. Instead of having to 'cd' there and 'cd' back
|
||||
to a very long directory name (i.e., lots of typing), you can use
|
||||
the pushd command, like so:</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">gsh> <b>pushd /etc</b> </font><font
|
||||
size="2" face="Times">{ start in /src/myprogs/class/program.1/ }</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">...</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">gsh> <b>popd</b> </font><font
|
||||
size="2" face="Times">{ back in /src/myprogs/class/program.1/ }</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">The </font><font size="2" face="Courier">pushd</font><font
|
||||
face="Times"> command stores the current directory on a stack,
|
||||
and then changes the current directory to the argument. When you
|
||||
want to go back to the original directory, type popd. The shell
|
||||
will pull the last directory off the stack and 'cd' to that
|
||||
directory.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">The </font><font size="2" face="Courier">popd
|
||||
</font><font face="Times">command when given an argument of +n
|
||||
will remove the n'th directory from the stack. It does not change
|
||||
to that directory.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">The </font><font size="2" face="Courier">dirs
|
||||
</font><font face="Times">command displays the current directory
|
||||
stack.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>pwd</b></font></p>
|
||||
|
||||
<p><font face="Times">Displays the current working directory.
|
||||
This is useful if you have not configured the </font><font
|
||||
size="2" face="Courier">$PROMPT</font><font face="Times"> string
|
||||
to output your current working directory.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">[1]> <b>cd $HOME</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[2]> <b>pwd</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">/user/root</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[3]> <b>cd utilities</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[4]> <b>pwd</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">/user/root/utilities</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>source</b></font></p>
|
||||
|
||||
<p><font face="Times">When a script is executed, <b>gsh</b>
|
||||
creates a new process to run the script. As a result, scripts
|
||||
cannot change the shell's prefixes and certain other parameters.
|
||||
Instead of executing the script directly, you may use the </font><font
|
||||
size="2" face="Courier">source</font><font face="Times"> command
|
||||
which does not create a new process to execute the script. Thus,
|
||||
the </font><font size="2" face="Courier">source</font><font
|
||||
face="Times"> command is effectively exactly like typing all the
|
||||
commands in the script from the keyboard.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>tset</b></font></p>
|
||||
|
||||
<p><font face="Times">The </font><font size="2" face="Courier">tset</font><font
|
||||
face="Times"> command causes the shell to reread the </font><font
|
||||
size="2" face="Courier">/etc/termcap</font><font face="Times">
|
||||
file and reset its output system to use the terminal type
|
||||
specified in the $TERM variable. On startup, after reading the </font><font
|
||||
size="2" face="Courier">gshrc</font><font face="Times"> file, <b>gsh</b>
|
||||
automatically does a </font><font size="2" face="Courier">tset</font><font
|
||||
face="Times">. <b>gsh</b> also automatically does a tset whenever
|
||||
the </font><font size="2" face="Courier">$TERM</font><font
|
||||
face="Times"> variable is changed with the </font><font size="2"
|
||||
face="Courier">set</font><font face="Times"> command. You would
|
||||
use tset manually if, for example, a utility changed the value of
|
||||
</font><font size="2" face="Courier">$TERM</font><font
|
||||
face="Times">.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>which command_name
|
||||
[command_name ...]</b></font></p>
|
||||
|
||||
<p><font face="Times">Let's say that you are working on a new
|
||||
version of the venerable shell utility </font><font size="2"
|
||||
face="Courier">ls</font><font face="Times">. Since a search of
|
||||
the hash table is done before searching the current directory,
|
||||
you might accidentally be using the wrong version of the command.
|
||||
You make changes and run the new program, but your changes don't
|
||||
seem to appear! Use the </font><font size="2" face="Courier">which</font><font
|
||||
face="Times"> command to check your sanity. Which also comes in
|
||||
handy in locating duplicate program names in the </font><font
|
||||
size="2" face="Courier">$PATH</font><font face="Times">
|
||||
directories (for example, an </font><font size="2" face="Courier">ls</font><font
|
||||
face="Times"> in both </font><font size="2" face="Courier">/bin</font><font
|
||||
face="Times"> and </font><font size="2" face="Courier">/usr/bin</font><font
|
||||
face="Times">.)</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">The way to access a utility in the current
|
||||
directory which has the same name as a program in the </font><font
|
||||
size="2" face="Courier">$PATH</font><font face="Times"> is to
|
||||
prefix the command name with '</font><font size="2"
|
||||
face="Courier">.</font><font face="Times">', as in "</font><font
|
||||
size="2" face="Courier">./ls</font><font face="Times">".
|
||||
Also, see </font><font size="2" face="Courier">unhash</font><font
|
||||
face="Times">.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"><b></b></font> </p>
|
||||
|
||||
<p><font face="Times"><b>Kernel Commands</b></font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"><b>gsh</b> provides a set of commands to
|
||||
control the GNO kernel. These commands mainly deal with job
|
||||
control. See Chapter 3 <b>Job Control</b>.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>bg { %job | pid }</b></font></p>
|
||||
|
||||
<p><font face="Times">Starts the specified job, if stopped, and
|
||||
places it in the background.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>fg { %job | pid }</b></font></p>
|
||||
|
||||
<p><font face="Times">Starts the specified job, if stopped, and
|
||||
brings it into the foreground.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>jobs [-l]</b></font></p>
|
||||
|
||||
<p><font face="Times">Displays a list of the shell's jobs. If the
|
||||
"</font><font size="2" face="Courier">-l</font><font
|
||||
face="Times">" switch is specified, the process id is
|
||||
included in the job list.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">[1] gno> <b>cmpl foo.c
|
||||
keep=foo &</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[1] + Running cmpl foo.c
|
||||
keep=foo &</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[2] gno> <b>echo hello</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">hello</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[3] gno> <b>jobs</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[1] + Running cmpl foo.c
|
||||
keep=foo &</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>kill {[-SIGNAL] %job | pid |
|
||||
[-l]</b></font></p>
|
||||
|
||||
<p><font face="Times">The kill command will send the signal </font><font
|
||||
size="2" face="Courier">SIGNAL</font><font face="Times"> to the
|
||||
process number pid. The ps command documented below describes how
|
||||
to list all process ID's currently executing.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">SIGNAL</font><font face="Times">
|
||||
can be either a numeric value or string representing the signal
|
||||
to be sent to the process. All signals are documented in Appendix
|
||||
D <b>Signals</b>, with numeric and string value listed.
|
||||
Alternatively, specifying the </font><font size="2"
|
||||
face="Courier">-l</font><font face="Times"> option will list all
|
||||
the signals and their names.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">If the process number isn't known, but the
|
||||
job number is, replace the pid with a '%' followed by the job
|
||||
number.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b></b></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b></b></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>ps</b></font></p>
|
||||
|
||||
<p><font face="Times">This command takes no arguments. When
|
||||
invoked, a list of all currently running processes is displayed.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">[2] 9:52pm root> <b>ls -lR
|
||||
:hard:gno > /ram5/dev &</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[1] + 35 Running ls -lR
|
||||
:hard:gno &</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[3] 9:53pm root> <b>ps</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">ID STATE TT MMID UID TIME
|
||||
COMMAND</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">1 ready co 1002 0000 0:26
|
||||
NullProcess</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">2 ready co 1005 0000 0:02 gsh</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">35 ready co 100A 0000 0:01 ls
|
||||
-lR :hard:gno</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">36 running co 1007 0000 0:00 ps</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[4] 9:53pm root> </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[1] + Done ls -lR :hard:gno</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">ID</font><font face="Times"> - A
|
||||
unique process ID assigned to a command by GNO. Use this number
|
||||
to reference any process.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">STATE</font><font face="Times">
|
||||
- Current state of the process. Each process can be in any of the
|
||||
following states: </font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Courier">RUNNING</font><font face="Times">
|
||||
the process is currently in execution.</font><p><font
|
||||
face="Courier">READY</font><font face="Times"> the
|
||||
process is not currently executing, but is ready to be
|
||||
executed as soon as it is assigned a time slice.</font></p>
|
||||
<p><font face="Courier">BLOCKED</font><font face="Times">
|
||||
the process is waiting for a slow I/O operation to
|
||||
complete (for instance, a read from a TTY).</font></p>
|
||||
<p><font face="Courier">NEW</font><font face="Times"> the
|
||||
process has been created, but has not executed yet.</font></p>
|
||||
<p><font face="Courier">SUSPENDED</font><font
|
||||
face="Times"> the process was stopped with
|
||||
SIGSTOP,SIGTSTP,SIGTTIN, or SIGTTOU.</font></p>
|
||||
<p><font face="Courier">WAITING</font><font face="Times">
|
||||
the process is waiting on a semaphore 'signal' operation.
|
||||
Programs waiting for data from a pipe have this state.</font></p>
|
||||
<p><font face="Courier">WAITSIGCH</font><font
|
||||
face="Times"> the process is waiting to receive a SIGCHLD
|
||||
signal.</font></p>
|
||||
<p><font face="Courier">PAUSED</font><font face="Times">
|
||||
the process is waiting for any signal.</font></p>
|
||||
</li>
|
||||
</dir>
|
||||
|
||||
<p><font size="2" face="Courier">TTY</font><font face="Times"> -
|
||||
Terminal connected to process.</font></p>
|
||||
|
||||
<p><font face="Times">MMID - Memory Manager ID assigned to
|
||||
process.</font></p>
|
||||
|
||||
<p><font face="Times">UID - ID of the user who initiated the
|
||||
process.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">TIME</font><font face="Times"> -
|
||||
How much CPU time this process has used. This is not the elapsed
|
||||
time of the process.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">COMMAND</font><font face="Times">
|
||||
- Command-line string used to invoke process.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>setdebug { val | {+|-}flag }</b></font></p>
|
||||
|
||||
<p><font face="Times">Turns GNO kernel debugging code on or off.
|
||||
The value passed consists of a bit field, where each bit
|
||||
specifies a different type of debugging code to activate. An
|
||||
alternate method is to provide a list of debug flags, either
|
||||
preceded by a '+' or a '-'. Those preceded by a '+' are
|
||||
activated, and those preceeded with a '-' are deactivated. All
|
||||
debugging is deactivated by passing a value of 0. Running
|
||||
setdebug wtth no arguments returns a list of the debugging flags.
|
||||
Legal flags include:</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">gsostrace</font><font
|
||||
face="Times"> - Trace GS/OS calls</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">gsosblocks</font><font
|
||||
face="Times"> - Trace GS/OS parameter blocks</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">gsoserrors</font><font
|
||||
face="Times"> - Trace GS/OS errors</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">pathtrace</font><font
|
||||
face="Times"> - Trace GS/OS pathnames</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">sigtrace</font><font
|
||||
face="Times"> - Trace signals</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">systrace</font><font
|
||||
face="Times"> - Trace system calls</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>stop { %job | pid }</b></font></p>
|
||||
|
||||
<p><font face="Times">Stops the execution of all processes in a
|
||||
specified job.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"><b>Environment Commands</b></font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">The last set of commands, environment
|
||||
commands, modify the <b>gsh</b> environment. Many of these
|
||||
commands have been used in other parts of this manual and,
|
||||
therefore, should not be new.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>alias [name] [value]</b></font></p>
|
||||
|
||||
<p><font face="Times">Creates an alias for a string. When this
|
||||
alias is referenced as a command, </font><font size="2"
|
||||
face="Courier">value</font><font face="Times"> will be expanded
|
||||
into the command line. For commands that require many arguments
|
||||
or have several steps, you could set up an alias to save typing.
|
||||
You can also use aliases to create new names for commands. To
|
||||
obtain a list of all aliases, invoke </font><font size="2"
|
||||
face="Courier">alias</font><font face="Times"> with no arguments.
|
||||
To list the value of an alias, invoke </font><font size="2"
|
||||
face="Courier">alias</font><font face="Times"> with name only.
|
||||
Here are some alias examples:</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times"><u>Alias</u> <u>Command Name</u></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">ll or list_long ls -l</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">backup_sys cp -r /system
|
||||
/BackupDrive&</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">backup_home cp -r $HOME
|
||||
/BackupDrive&</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">print echo</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">catalog ls -l</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">delete rm</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">copy cp</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">type more</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">rename mv</font></p>
|
||||
|
||||
<p><font size="2" face="Courier"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>export </b>;<b>[variable ...]</b></font></p>
|
||||
|
||||
<p><font face="Times">When a shell environment variable is marked
|
||||
as exportable, any process that is created from within the
|
||||
current process (most likely <b>gsh</b>), will be passed copies
|
||||
of the exported variables. See </font><font size="2"
|
||||
face="Courier"><b>setenv</b></font><font face="Times"> and
|
||||
Chapter 5 <b>Scope of shell variables.</b></font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>hash</b></font></p>
|
||||
|
||||
<p><font face="Times">Displays a list of all commands currently
|
||||
in the shell's hash table; i.e., a list of commands in the
|
||||
various $PATH directories.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>prefix [prefixnum
|
||||
[prefixname]]</b></font></p>
|
||||
|
||||
<p><font face="Times">GNO maintains a list of 32 'prefixes' for
|
||||
each process. Prefixes allow the user to reference a directory
|
||||
with a number. While <b>gsh</b> provides this ability with
|
||||
environment variables, the prefix command exists to support the
|
||||
ORCA compilers and other utilities that are dependent on certain
|
||||
GS/OS prefixes. Appendix B contains a list of these prefixes and
|
||||
their "default" meanings, as documented in the "<i>Apple
|
||||
IIGS GS/OS Reference</i>", Volume 1.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">If </font><font size="2" face="Courier">prefixname</font><font
|
||||
face="Times"> is not given, the value of </font><font size="2"
|
||||
face="Courier">prefixnum</font><font face="Times"> is displayed.
|
||||
If neither argument is given, a list of currently assigned
|
||||
prefixes is displayed.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>rehash</b></font></p>
|
||||
|
||||
<p><font face="Times">To decrease the time spent searching for a
|
||||
command, <b>gsh</b> builds a table of all commands which were
|
||||
found in the pathnames set in the </font><font size="2"
|
||||
face="Courier">$PATH</font><font face="Times"> variable. When a
|
||||
command is invoked, only this list is searched. When the </font><font
|
||||
size="2" face="Courier">$PATH</font><font face="Times"> variable
|
||||
is changed, <b>gsh</b> must rebuild this list. The </font><font
|
||||
size="2" face="Courier"><b>rehash</b></font><font face="Times">
|
||||
command tells <b>gsh</b> to rebuild the list.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">While the old list is still active, if </font><font
|
||||
size="2" face="Courier">$PATH</font><font face="Times"> is
|
||||
changed and one of the previous search paths is no longer online,
|
||||
<b>gsh</b> will try and execute the command from the offline
|
||||
device, resulting in a command failure.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">To make this a one-step process, the </font><font
|
||||
size="2" face="Courier">change.path</font><font face="Times">
|
||||
shell script listed in Chapter 5, <b>Accessing shell variables</b>
|
||||
can be used.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>set [var] [value] [{var
|
||||
value} ...]</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>set var=value [var=value ...]</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>setenv [var value]... </b></font></p>
|
||||
|
||||
<p><font face="Times">Use these command to create or modify
|
||||
environment variables. If </font><font size="2" face="Courier">set</font><font
|
||||
face="Times"> is invoked with no arguments, a list of the current
|
||||
environment variables is displayed. If only </font><font size="2"
|
||||
face="Courier">var</font><font face="Times"> is given as an
|
||||
argument, the value of </font><font size="2" face="Courier">var</font><font
|
||||
face="Times"> is displayed. To set or reset a variable, use both
|
||||
the </font><font size="2" face="Courier">var</font><font
|
||||
face="Times"> and </font><font size="2" face="Courier">value</font><font
|
||||
face="Times"> arguments. There are two ways to set a variable,
|
||||
either by "</font><font size="2" face="Courier">var value</font><font
|
||||
face="Times">" or "</font><font size="2" face="Courier">var=value</font><font
|
||||
face="Times">". To set multiple variables at once, simply
|
||||
list them all on the command line as shown above.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">setenv</font><font face="Times">
|
||||
works just like </font><font size="2" face="Courier">set</font><font
|
||||
face="Times">, but automatically exports the variable(s) or lists
|
||||
only exported variables.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font face="Times">When using </font><font size="2"
|
||||
face="Courier">set</font><font face="Times"> or </font><font
|
||||
size="2" face="Courier">setenv</font><font face="Times"> to view
|
||||
a list of variables, exported variables appear in ALL CAPS.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>unalias name [name ...]</b></font></p>
|
||||
|
||||
<p><font face="Times">To remove an alias from the alias list, use
|
||||
this command. To remove multiple aliases with one command,
|
||||
specify all the aliases on the command line.</font></p>
|
||||
|
||||
<p><font face="Times"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>unhash</b></font></p>
|
||||
|
||||
<p><font face="Times">To disable the internal hash table created
|
||||
with the </font><font size="2" face="Courier">rehash</font><font
|
||||
face="Times"> command, use this command. This is useful if you
|
||||
wish to use only utilities in the current working directory
|
||||
(during testing, for example).</font></p>
|
||||
|
||||
<p><font size="2" face="Courier"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier"><b>unset </b>;<b>var [var...]</b></font></p>
|
||||
|
||||
<p><font face="Times">To remove a variable from the environment,
|
||||
use </font><font size="2" face="Courier">unset</font><font
|
||||
face="Times">. </font><font size="2" face="Courier">unset</font><font
|
||||
face="Times"> accepts multiple names if more than one variable is
|
||||
to be deleted. Future attempts to access the variable </font><font
|
||||
size="2" face="Courier">var</font><font face="Times"> will result
|
||||
in an error or a NULL string, depending on the circumstances.</font></p>
|
||||
|
||||
<p><font size="2" face="Courier"></font> </p>
|
||||
|
||||
<p><font size="2" face="Courier">[8] 9:57pm root> <b>set</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">PAGER = less</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">PATH = :hard:gno:bin
|
||||
:right:gno:usr:bin</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">user1 = foo</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">USRMAN = /usr/man</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">HISTORY = 30</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">status = 227</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">fignore = .a .root .sym</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">TERM = gnocon</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">LESS = -e</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">PROMPT = [%h] %S%t%s %C> </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">HOME = :hard:gno:user:root</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">user = user1</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">nonewline = 1</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[9] 9:57pm root> <b>unset
|
||||
user1</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[10] 9:57pm root> <b>unset
|
||||
user</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">[11] 9:57pm root> <b>set</b></font></p>
|
||||
|
||||
<p><font size="2" face="Courier">PAGER = less</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">PATH = :hard:gno:bin
|
||||
:right:gno:usr:bin</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">USRMAN = /usr/man</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">HISTORY = 30</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">status = 0</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">fignore = .a .root .sym</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">TERM = gnocon</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">LESS = -e</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">PROMPT = [%h] %S%t%s %C> </font></p>
|
||||
|
||||
<p><font size="2" face="Courier">HOME = :hard:gno:user:root</font></p>
|
||||
|
||||
<p><font size="2" face="Courier">nonewline = 1</font></p>
|
||||
|
||||
<p> </p>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,844 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type"
|
||||
content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Microsoft FrontPage 2.0">
|
||||
<title>GNO/ME Version 2</title>
|
||||
</head>
|
||||
|
||||
<body bgcolor="#FFFFFF">
|
||||
|
||||
<p><font size="7" face="Times">GNO/ME Version 2.0</font></p>
|
||||
|
||||
<p><font size="5" face="Times">By Jawaid Bazyar and Tim Meekins</font></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font face="Times">The GNO Multitasking Environment is
|
||||
Copyright 1991-1996 by Procyon Enterprises Incorporated</font></p>
|
||||
|
||||
<p><font face="Times">Documentation, second edition, August 1996.</font></p>
|
||||
|
||||
<p><font face="Times">The ORCA/C run-time libraries are Copyright
|
||||
1987-1993 Byte Works, Inc. and distributed with permission.</font></p>
|
||||
|
||||
<p><font face="Times">This product includes software developed by
|
||||
the University of California, Berkeley and its contributors.</font></p>
|
||||
|
||||
<p><font face="Times">GNO/ME 2.0 also includes several utilities
|
||||
and libraries produced by outside authors and in the public
|
||||
domain. This software is included solely as a convenience to
|
||||
users of GNO/ME, and is not considered part of GNO/ME for
|
||||
copyright purposes.</font></p>
|
||||
|
||||
<p><font face="Times">GNO and GNO/ME are trademarks of Procyon
|
||||
Enterprises Incorporated.</font></p>
|
||||
|
||||
<p><font face="Times">Apple IIGS, APW, Finder, GS/OS, ProDOS,
|
||||
Macintosh, and HFS are registered trademarks of Apple Computer,
|
||||
Inc.</font></p>
|
||||
|
||||
<p><font face="Times">AppleWorks GS is a trademark of Claris
|
||||
Corp.</font></p>
|
||||
|
||||
<p><font face="Times">UNIX is a registered trademark of AT&T
|
||||
Bell Laboratories.</font></p>
|
||||
|
||||
<p><font face="Times"><b>Important Notice</b>: This is a fully
|
||||
copyrighted work and as such is protected under the copyright
|
||||
laws of the United States of America. According to these laws,
|
||||
consumers of copywritten material may make copies for their
|
||||
personal use only. Duplication for any other purpose whatsoever
|
||||
would constitute infringement of copyright laws and the offender
|
||||
would be liable to civil damages of up to $50,000 in addition to
|
||||
actual damages, plus criminal penalties of up to one year
|
||||
imprisonment and/or a $10,000 fine.</font></p>
|
||||
|
||||
<p><font face="Times">Procyon Enterprises Inc. MAKES NO
|
||||
WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING THE ENCLOSED
|
||||
COMPUTER SOFTWARE PACKAGE, ITS MERCHANTABILITY OR ITS FITNESS FOR
|
||||
ANY PARTICULAR PURPOSE. THE EXCLUSION OF IMPLIED WARRANTIES IS
|
||||
NOT PERMITTED IN SOME STATES. THE ABOVE EXCLUSION MAY NOT APPLY
|
||||
TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL RIGHTS.
|
||||
THERE MAY BE OTHER RIGHTS THAT YOU MAY HAVE WHICH VARY FROM STATE
|
||||
TO STATE.</font></p>
|
||||
|
||||
<p><font face="Times">This product is sold for use on a <i>single
|
||||
computer</i> at a <i>single location</i>. For information on
|
||||
obtaining a site license for using multiple copies, contact the
|
||||
publisher.</font></p>
|
||||
|
||||
<p><font face="Times">Procyon Enterprises, Inc.<br>
|
||||
P.O. Box 641<br>
|
||||
Englewood, CO 80151-0641 USA<br>
|
||||
(303) 781-3273</font></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">Credits</font></p>
|
||||
|
||||
<p><font face="Times">"Always listen to experts. They'll
|
||||
tell you what can't be done, and why. Then do it."<br>
|
||||
Lazarus Long</font></p>
|
||||
|
||||
<p><font face="Times">The <b>GNO</b> <b>M</b>ultitasking <b>E</b>nvironment
|
||||
for the Apple IIgs </font></p>
|
||||
|
||||
<p><font face="Times">Copyright 1991-1993, Procyon Enterprises
|
||||
Inc. and Tim Meekins</font></p>
|
||||
|
||||
<p><font face="Times">Please direct all inquiries to:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times"><b>Procyon, Inc.<br>
|
||||
PO Box 641<br>
|
||||
Englewood, CO 80151-0641 USA<br>
|
||||
(303) 781-3273</b></font></li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">For on-line technical assistance, contact:</font></p>
|
||||
|
||||
<ul>
|
||||
<li><font face="Times">America OnLine : </font><font
|
||||
face="Courier">GNOJawaid, GNOTim2</font></li>
|
||||
<li><font face="Times">GEnie : </font><font face="Courier">Procyon.Inc</font></li>
|
||||
<li><font face="Times">Internet : </font><font face="Courier">bazyar@hypermall.com</font></li>
|
||||
<li><font face="Times">Delphi : </font><font face="Courier">JAWAIDB</font></li>
|
||||
</ul>
|
||||
|
||||
<p><font face="Times">Written by:</font></p>
|
||||
|
||||
<p><font face="Times"><b>Jawaid Bazyar</b> Kernel &
|
||||
Documentation<br>
|
||||
<b>Tim Meekins</b> Shell & Documentation<br>
|
||||
<b>Albert Chin</b> Documentation<br>
|
||||
<b>Andrew Roughan </b>Documentation<b><br>
|
||||
Derek Taubert</b> Kernel support and utilities<br>
|
||||
<b>Greg Thompson, Philip Vandry</b>, <b>James Brookes</b>, <b>Ian
|
||||
Schmidt</b> Utilities</font></p>
|
||||
|
||||
<p><font face="Times">With many thanks to:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times">Bill Gulstad, Rob Knauerhase, and
|
||||
everyone on the GNOBETA Internet mailing list</font><p><font
|
||||
face="Times">Dave Lyons, for tolerating my endless
|
||||
questions since the beginning of time, for getting me
|
||||
started in IIgs programming, and for calling GNO 'cool'.</font></p>
|
||||
<p><font face="Times">Mike Westerfield, for your
|
||||
technical assistance and all your work in making great
|
||||
development tools for the IIgs.</font></p>
|
||||
</li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">Special thanks to:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times">Matt Deatherage, for egging me on to
|
||||
complete the project; also, for your most helpful
|
||||
technical support through DEVSUPPORT- you guys made this
|
||||
thing possible!</font><p><font face="Times">Randy Hyde,
|
||||
for telling me it couldn't be done.</font></p>
|
||||
</li>
|
||||
</dir>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">Miscellaneous</font></p>
|
||||
|
||||
<p><font face="Times"><b>Reporting Bugs</b></font></p>
|
||||
|
||||
<p><font face="Times">In any large piece of computer software
|
||||
such as the GNO/ME system, bugs are sure to turn up, no matter
|
||||
how much testing is performed on the software before it goes out
|
||||
the door. If you discover a bug in GNO/ME, we'd like to hear
|
||||
about it. There are several things we require, however, to make
|
||||
bug reports useful to us.</font></p>
|
||||
|
||||
<p><font face="Times">First of all, we need a complete
|
||||
description of your computer system; how much RAM, what cards, in
|
||||
what slots, what type of disk storage, etc. This information is
|
||||
very important in tracking down hardware-dependent bugs. Also, we
|
||||
need to know the version numbers of the software involved; the
|
||||
GNO Kernel, the GNO Shell, and any utilities.</font></p>
|
||||
|
||||
<p><font face="Times">Second, we need a step-by-step description
|
||||
of how to duplicate the bug. If this requires writing down
|
||||
individual keystrokes, then we need it. Only in this way can we
|
||||
decide whether the bug is hardware dependent or global.</font></p>
|
||||
|
||||
<p><font face="Times">You can send bug reports to any of the
|
||||
electronic mail addresses listed on the 'Credits' page, or by
|
||||
mailing a disk containing a description of the problem and the
|
||||
necessary software and files to the Procyon address.</font></p>
|
||||
|
||||
<p><font face="Times"><b>User Projects</b></font></p>
|
||||
|
||||
<p><font face="Times">If you're working on a project which
|
||||
utilizes GNO/ME in some way, we'd like to know about it. Just
|
||||
contact us by mail, phone, or whatever is most convenient for
|
||||
you, and tell us about your project. If possible, we'll
|
||||
coordinate your efforts with those of other programmers. If we
|
||||
really like your project and think it may be useful to others, we
|
||||
may include it on the next GNO/ME distribution!</font></p>
|
||||
|
||||
<p><font face="Times"><b>Software Piracy</b></font></p>
|
||||
|
||||
<p><font face="Times">If you copied GNO/ME from someone and are
|
||||
now reading this, take a moment to reflect on what you've done.
|
||||
GNO/ME is a project that has consumed around three man-years of
|
||||
effort, huge amounts of money, and a lot of grief on our part.
|
||||
The kernel alone consists of over 18,000 lines of source code;
|
||||
the shell and utilities make up another twenty to thirty thousand
|
||||
lines.</font></p>
|
||||
|
||||
<p><font face="Times">Is it right that you're now benefiting from
|
||||
our effort without any just compensation to the authors and
|
||||
Procyon, Inc.? We are Apple II programmers born, bred and raised
|
||||
in the spirit of the machine; we love to program it, and probably
|
||||
always will. But if we cannot make enough money to make it
|
||||
worthwhile to continue work on GNO/ME, then we won't; because by
|
||||
worthwhile, we mean not only food on the table, but resources for
|
||||
expansion; expansion of our IIgs product line and support to IIgs
|
||||
owners being abandoned by the rest of the industry. In short,
|
||||
support us and we'll support you.</font></p>
|
||||
|
||||
<p><font face="Times">GNO/ME is very inexpensive when you
|
||||
consider what it allows you to do, and what it will allow you to
|
||||
do when software development for GNO/ME starts full-swing. And
|
||||
it's a small price to pay indeed for our loyalty to you, the IIgs
|
||||
owner.</font></p>
|
||||
|
||||
<p><font face="Times">To all you GNO/ME purchasers out there:
|
||||
thank you very much. We will continue to provide you with new
|
||||
IIgs products until our hair and teeth fall out, and our fingers
|
||||
are too frail to type the keys (and even then, with Easy Access,
|
||||
we might crank out a program or two). We hope you will be
|
||||
sufficiently impressed with the system to recommend it to others.</font></p>
|
||||
|
||||
<p><font face="Times">p.s. Remember - if someone comes up to you
|
||||
on the street and offers you some IBM, <b>Just Say GNO!</b></font></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">Preface</font></p>
|
||||
|
||||
<p><font face="Times">Computers are tools. The flexibility of a
|
||||
tool determines how useful it is. Early computers were much like
|
||||
the one this software was written for: the Apple IIgs. They could
|
||||
only run one program at a time, and their usefulness was limited
|
||||
to what the particular program the user was executing offered. In
|
||||
the late 1960's, a team of researchers at AT&T began
|
||||
developing the UNIX operating system. The UNIX design was
|
||||
partially based on the premise that most programs are I/O bound,
|
||||
that is, most of the time the program executes is spent waiting
|
||||
for user input or other I/O operations. While one program is
|
||||
waiting for I/O, why not allow another program to execute? This
|
||||
is what they did, and the result was one of the most successful
|
||||
computer operating systems ever created.</font></p>
|
||||
|
||||
<p><font face="Times">The Apple IIgs, like the Macintosh it is
|
||||
modelled after, provides very limited multitasking abilities in
|
||||
the form of desk accessories (NDAs). The programs in the NDA menu
|
||||
are available in whatever application you use as long as it
|
||||
follows Apple's guidelines. However, there are many graphics
|
||||
based programs that don't support NDAs, and in addition there is
|
||||
a wealth of software that has been developed for the Byte Works'
|
||||
ORCA environment. This environment is mainly text-based, and thus
|
||||
makes access to NDAs impossible. As if that wasn't enough, it's
|
||||
very difficult to write an NDA to allow the application to keep
|
||||
running concurrently. So the benefits are lost, and we're back at
|
||||
ground zero.</font></p>
|
||||
|
||||
<p><font face="Times">Enter the GNO Multitasking Environment.
|
||||
What was once just dreamed about is now a reality. GNO/ME
|
||||
provides an environment that is almost entirely compatible with
|
||||
software developed for the ORCA environment. But GNO/ME also
|
||||
provides a wealth of new abilities, lots of new ground for
|
||||
developers and users alike.</font></p>
|
||||
|
||||
<p><font face="Times">Before we begin describing, we'd like to
|
||||
respond to those who say such a multitasking system isn't
|
||||
possible on the Apple IIgs. Obviously it is: you hold it in your
|
||||
hands. Some say the Apple IIgs isn't powerful enough to make
|
||||
multitasking useful. We point out that the Apple IIgs is much
|
||||
more powerful than the first computers UNIX was designed to run
|
||||
on; they only had 64K of real memory, and were 16 bit machines.
|
||||
Some ask why you'd ever need to run more than one program at
|
||||
once. These are the same people who asked why we'd ever need more
|
||||
than 64K of memory, or more than 140K of storage on disks (end
|
||||
soapbox).</font></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">Introduction</font></p>
|
||||
|
||||
<p><font face="Times">The GNO Multitasking Environment provides
|
||||
pre-emptive multitasking. Many programs can be executing at the
|
||||
same time; each is called a 'process'. Each process is allowed to
|
||||
run for a short period of time (1/20th of a second on average).
|
||||
When its time runs out, the current process is set aside and
|
||||
another one chosen to run next. This cycle continues until there
|
||||
are no more processes left (i.e. when you exit GNO/ME). Starting
|
||||
up processes to run 'in the background' is a simple matter of
|
||||
adding a few characters to the shell commands.</font></p>
|
||||
|
||||
<p><font face="Times">GNO/ME provides a shell that takes full
|
||||
advantage of the multitasking ability provided. The most
|
||||
important feature of the shell is job control (starting,
|
||||
terminating, and suspending processes). But the shell also
|
||||
provides power never before seen on the Apple IIgs. The ability
|
||||
to choose files by 'wildcard' has been around for a while, but
|
||||
the GNO Shell takes this to a new level with 'regular
|
||||
expressions', a very powerful yet simple programming language.
|
||||
Other benefits of the GNO shell are too numerous to mention. (see
|
||||
the <i>GNO Shell User's Manual </i>for details).</font></p>
|
||||
|
||||
<p><font face="Times">In addition to being compatible with the
|
||||
ORCA system, GNO/ME is a very powerful programming environment.
|
||||
Available to the programmer are all the calls needed to control
|
||||
processes, support Inter-Process Communication, and other tools
|
||||
needed in a multitasking environment. </font></p>
|
||||
|
||||
<p><font face="Times">GNO/ME also boasts the first completely
|
||||
consistent method for accessing serial and console I/O. The IIgs
|
||||
TextTools have been incredibly enhanced to provide a truly
|
||||
all-encompassing interface for serial, console, and IPC
|
||||
applications. Imagine being able to attach terminals to your GS,
|
||||
and have a useful shell in each one. Multiuser BBSs, remote
|
||||
dial-ups, UUCP or SLIP that doesn't take over your computer- the
|
||||
applications are endless!</font></p>
|
||||
|
||||
<p><font face="Times">With all this talk of shell utilities, have
|
||||
desktop users (users of programs like AppleWorks GS) been left
|
||||
behind? Absolutely not. GNO/ME doesn't allow more than one
|
||||
desktop program to run concurrently, but it DOES let you run a
|
||||
desktop program with as many text applications as you like. In
|
||||
other words, no functionality is lost from the IIgs by using
|
||||
GNO/ME.</font></p>
|
||||
|
||||
<p><font face="Times">Finally, the GNO Multitasking Environment
|
||||
comes with a large number of free utilities that bring some of
|
||||
the power of a UNIX system to the Apple IIgs. Also, a number of
|
||||
programming libraries are included that make it easy to port
|
||||
programs from UNIX or MS-DOS systems to the Apple IIgs.</font></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">The GNO/ME package</font></p>
|
||||
|
||||
<p><font face="Times">Included in your GNO/ME Version 2.0 package
|
||||
are:</font></p>
|
||||
|
||||
<ul>
|
||||
<li><font face="Times">this GNO/ME overview </font></li>
|
||||
<li><font face="Times">the GNO Shell User's Manual</font></li>
|
||||
<li><font face="Times">the GNO Kernel Reference Manual</font></li>
|
||||
<li><font face="Times">a selection of utility and library
|
||||
documentation</font></li>
|
||||
<li><font face="Times">a reading list containing a wide
|
||||
selection of books for both the user and the programmer</font></li>
|
||||
<li><font face="Times">three disks containing the GNO Kernel,
|
||||
GNO Shell, and loads of utilities</font></li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">Hardware Requirements</font></p>
|
||||
|
||||
<p><font face="Times">GNO/ME will work on any Apple IIgs with at
|
||||
least 2 MegaBytes of memory and a hard drive.</font></p>
|
||||
|
||||
<p><font face="Times">You should have at least 5 MegaBytes of
|
||||
hard disk space free.</font></p>
|
||||
|
||||
<p><font face="Times">We recommend 4 MegaBytes of Memory and an
|
||||
accellerator card, especially if you will be using GNO with many
|
||||
background processes. A modem and access to an on-line service
|
||||
will greatly speed access to technical assistance and new
|
||||
utilities as they are made available.</font></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">Installation</font></p>
|
||||
|
||||
<p><font face="Times">GNO/ME is a very large system. Most of the
|
||||
system is stored on the three disks in a compressed format. For
|
||||
this reason we recommend that you read this section carefully and
|
||||
use the included automated installation program to save yourself
|
||||
the major headache of arranging everything. You'll need a hard
|
||||
drive partition with at least 5 Megabytes free to install GNO/ME.
|
||||
The entire installation process should take no longer than 10
|
||||
minutes. </font></p>
|
||||
|
||||
<p><font face="Times">If you are upgrading from GNO 1.0 to GNO
|
||||
2.0, we recommend that you install GNO 2.0 on a new area of your
|
||||
hard drive. This is because GNO 2.0 provides new versions of
|
||||
almost all the utilities and other software provided with GNO
|
||||
1.0. You can then move the parts of your old system that aren't a
|
||||
part of the standard GNO 2.0 distribution over to the new
|
||||
installation. </font></p>
|
||||
|
||||
<p><font face="Times">The installer program is able to the copy
|
||||
the GNO libraries for use with the ORCA languages and tools. If
|
||||
you want to use your ORCA languages and tools, you should answer
|
||||
the appropriate questions during the install process. ORCA
|
||||
installation is covered in more detail below.</font></p>
|
||||
|
||||
<p><font face="Times">Step 1:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times">Copy the contents of /GNO.Disk1 to the
|
||||
partition where you want to install GNO/ME. The easiest
|
||||
way to do this is to run the IIGS Finder™ program,
|
||||
insert the </font><font size="2" face="Courier">/GNO.Disk1</font><font
|
||||
face="Times"> disk, and drag the </font><font size="2"
|
||||
face="Courier">/GNO.Disk1</font><font face="Times"> onto
|
||||
the icon of the drive you want to install on. The Finder
|
||||
will tell you that the disks are of a different size, and
|
||||
ask you if you wish to place the contents of </font><font
|
||||
size="2" face="Courier">/GNO.Disk1</font><font
|
||||
face="Times"> in a folder on the hard drive partition.
|
||||
Answer "Yes", and the Finder will copy the
|
||||
data.</font></li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">Step 2:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times">Open the newly created </font><font
|
||||
size="2" face="Courier">GNO.Disk1</font><font
|
||||
face="Times"> folder on the partition and execute 'Kern'
|
||||
by double-clicking on the </font><font size="2"
|
||||
face="Courier">Kern</font><font face="Times"> icon. </font><font
|
||||
size="2" face="Times">GNO.Disk1</font><font face="Times">
|
||||
contains a minimal GNO system which you have just started
|
||||
up. You'll see some copyright messages, and after a few
|
||||
seconds the desktop will appear.</font></li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">Step 3:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times">Install will ask you questions before
|
||||
the installation process begins. Questions asked by
|
||||
Install are boldfaced in the following discussion. If
|
||||
you're uncertain of how to answer, click on the 'Info'
|
||||
button to get more information on the question. This
|
||||
information is reproduced here for ease of reference.</font><p><font
|
||||
face="Times"><b>Do you have existing Byteworks (ORCA)
|
||||
language products?</b></font></p>
|
||||
<p><font face="Times">If you use Byteworks language
|
||||
products such as ORCA/C, ORCA/M, ORCA/Pascal, etc. and
|
||||
wish to use them from GNO/ME then answer 'Yes' to this
|
||||
question. Otherwise, answer 'No'.</font></p>
|
||||
<p><font face="Times">Clicking on the 'Info' button will
|
||||
display the following text:</font></p>
|
||||
<p><font size="2" face="Geneva,Arial">If you currently
|
||||
use products such as ORCA/C, ORCA/Pascal, ORCA/M, etc.,
|
||||
and wish to use them from GNO/ME then you should answer
|
||||
'Yes' to this dialog.</font></p>
|
||||
<p><font size="2" face="Geneva,Arial">Install will then
|
||||
ask you to locate the file "ORCA.SYS16" (the
|
||||
ORCA Shell). Usually, it will be in a directory called
|
||||
"ORCA" on one of your hard drive partitions. On
|
||||
our system, it is :software:orca. The location of this
|
||||
file determines where Install puts the GNO-specific
|
||||
ORCA/C header files and libraries (in the ORCA LIBRARIES
|
||||
directory). If you have renamed ORCA.SYS16 to something
|
||||
else, select that instead. </font></p>
|
||||
<p><font size="2" face="Geneva,Arial">Install uses this
|
||||
information to correctly set the ORCA prefixes and add
|
||||
the EXECUTABLES directory to the $PATH variable in your
|
||||
gshrc file. See the GNO Shell User's Manual, Appendix B,
|
||||
for more information on the ORCA prefixes.</font></p>
|
||||
<p><font face="Times"><b>Do you want to install the
|
||||
modified ORCA/C 2.0 ORCALIB library?</b></font></p>
|
||||
<p><font face="Times">If you have ORCA/C 2.0 installed
|
||||
and you answered 'Yes' to the previous question, then you
|
||||
should answer 'Yes' now. If you have ORCA/C 1.3
|
||||
installed, or you do not have any ORCA languages or
|
||||
tools, then you should answer 'No'.</font></p>
|
||||
<p><font face="Times">Clicking 'Info' will display the
|
||||
following text:</font></p>
|
||||
<p><font size="2" face="Geneva,Arial">GNO/ME 2.0 comes
|
||||
with a modified version of the ORCA/C ORCALIB standard
|
||||
library. This library adds specific support for some of
|
||||
GNO's special files (pipes, terminals, etc) transparently
|
||||
and corrects other problems the standard ORCALIB has with
|
||||
GNO.</font></p>
|
||||
<p><font size="2" face="Geneva,Arial">This special
|
||||
ORCALIB is only for use with ORCA/C 2.0. It will NOT work
|
||||
with previous versions of ORCA/C.</font></p>
|
||||
<p><font size="2" face="Geneva,Arial">Note that all of
|
||||
GNO's other libraries (libgno, libbsd, libc) work fine
|
||||
with ORCA/C 1.3.</font></p>
|
||||
<p><font face="Times"><b>Do you want to install the
|
||||
Multi-User package?</b></font></p>
|
||||
<p><font face="Times">If you wish to have the Multi User
|
||||
package installed, answer 'Yes'. It is recommended that
|
||||
new users do not install this package until they are
|
||||
familiar with the system. This package is not fully
|
||||
discussed in the GNO/ME manuals and may introduce many
|
||||
unfamiliar concepts.</font></p>
|
||||
<p><font face="Times">Clicking 'Info' will display the
|
||||
following text:</font></p>
|
||||
<p><font size="2" face="Geneva,Arial">The 'Multi-User'
|
||||
package consists of a number of cooperating programs,
|
||||
including init(8) and login(8). MU provides for
|
||||
password-protected access to the GNO Shell via the
|
||||
console or serial ports (modems and dedicated terminals).
|
||||
It also handles multiple user accounts, and a certain
|
||||
level of protection between users. </font></p>
|
||||
<p><font size="2" face="Geneva,Arial">If you will be
|
||||
using a terminal with GNO, or want to be able to dial
|
||||
into GNO with a modem, you should install MU.</font></p>
|
||||
<p><font size="2" face="Geneva,Arial">You may wish to
|
||||
hold off setting up the Multi-User package until you
|
||||
learn your way around GNO a little better, as it's simple
|
||||
to set up MU later.</font></p>
|
||||
</li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">Step 4:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times">The Installer will now proceed to
|
||||
arrange the GNO Multitasking Environment on your hard
|
||||
drive. Initially, the contents of /GNO.Disk1 will be
|
||||
moved into the proper places on the volume you have
|
||||
chosen. When asked by the Installer, you should place
|
||||
/GNO.Disk2 and /GNO.Disk3 into the disk drive. The
|
||||
contents of these disks will be extracted and
|
||||
decompressed into their proper places.</font><p><font
|
||||
face="Times">If the installer cannot finish it's tasks
|
||||
for some reason, it will abort to the shell. At this
|
||||
point you should study the error messages to determine
|
||||
the cause of the failure, </font></p>
|
||||
</li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">Step 5:</font></p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times">When the Installer finishes, you will
|
||||
be returned to the GNO prompt. At this time you should
|
||||
type 'exit' to return to Finder and delete the </font><font
|
||||
size="2" face="Courier">GNO.Disk1</font><font
|
||||
face="Times"> directory, as it is no longer needed (GNO
|
||||
is completely installed in a subdirectory </font><font
|
||||
face="Courier">'</font><font size="2" face="Courier">GNO</font><font
|
||||
face="Courier">'</font><font face="Times"> on the same
|
||||
partition </font><font size="2" face="Courier">GNO.Disk1</font><font
|
||||
face="Times"> is on.</font></li>
|
||||
</dir>
|
||||
|
||||
<p><font face="Times">That's all!</font></p>
|
||||
|
||||
<p><font face="Times"><b>What has been installed?</b></font></p>
|
||||
|
||||
<p><font face="Times">If you examine the directory that you chose
|
||||
for GNO/ME, you will find that the Installer has created several
|
||||
directories. Here is a brief rundown of thier contents:</font></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<dir>
|
||||
<li><font face="Times">:gno:bin: This directory contains the
|
||||
executable shell utilities included with the GNO/ME
|
||||
package.</font></li>
|
||||
<li><font face="Times">gno:dev: This directory contains
|
||||
device drivers. The GNO/ME package includes serial
|
||||
drivers for the II</font><font size="2" face="Times">GS</font><font
|
||||
face="Times">' built-in modem and printer ports.</font></li>
|
||||
<li><font face="Times">:gno:etc: Various system configuration
|
||||
files</font></li>
|
||||
<li><font face="Times">:gno:initrc This a startup file for
|
||||
kern and must remain in this directory.</font></li>
|
||||
<li><font face="Times">:gno:kern This is the GNO kernel.
|
||||
Launch this to start GNO/ME.</font></li>
|
||||
<li><font face="Times">:gno:lib: This directory is provided
|
||||
for,,,, It is currently empty.</font></li>
|
||||
<li><font face="Times">:gno:tmp: This directory is provided
|
||||
for,,,, It is currently empty.</font></li>
|
||||
<li><font face="Times">:gno:user: This directory is created
|
||||
if you installed the Multi-User package. It contains a
|
||||
user directories for users of the system. Currently there
|
||||
is only one: 'root'. </font></li>
|
||||
<li><font face="Times">:gno:usr: This directory contains UNIX
|
||||
System Resources (USR).</font></li>
|
||||
<li><font face="Times">:gno:usr:bin: Miscellaneous utilities</font></li>
|
||||
<li><font face="Times">:gno:usr:man: This directory contains
|
||||
the manual pages for the 'man' utility. There are eight
|
||||
categories of information as defined by UNIX standards.
|
||||
These eight categories are presented in either formatted
|
||||
(man) or unformatted (cat) entries.</font></li>
|
||||
<li><font face="Times">:gno:usr:games: The classic "Hunt
|
||||
the Wumpus" game, and perhaps others.</font></li>
|
||||
<li><font face="Times">:gno:usr:sbin: System administration
|
||||
utilities.</font></li>
|
||||
</dir>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">Desk Accessories</font></p>
|
||||
|
||||
<p><font face="Times">The following is a description of the desk
|
||||
accessories that are shipped with GNO/ME.</font></p>
|
||||
|
||||
<p><font face="Times"><b>GSI NDA</b></font></p>
|
||||
|
||||
<p><font face="Times">The Graphical Shell Interface New Desk
|
||||
Accessory allows you to access the shell from a window inside a
|
||||
desktop application. Selecting 'GSI' from the Apple menu opens a
|
||||
window and brings up a shell in it. You can use the shell in this
|
||||
window just as you would in text mode.</font></p>
|
||||
|
||||
<p><font face="Times">At this time, GSI doesn't support any
|
||||
terminal emulations; i.e., it's a 'dumb' interface. As a result,
|
||||
full screen programs like 'less' and 'vi' will not work properly
|
||||
in GSI.</font></p>
|
||||
|
||||
<p><font face="Times"><b>Suspend NDA</b></font></p>
|
||||
|
||||
<p><font face="Times">The Suspend New Desk Accessory allows you
|
||||
to temporarily stop a desktop program and return to the text
|
||||
shell. To return to the desktop program, simply type '<b>fg</b>'.</font></p>
|
||||
|
||||
<p><font face="Times">You may put desktop programs in the
|
||||
background ('<b>bg</b>') at your own risk. This is not guaranteed
|
||||
to work for all programs, and putting a desktop program in the
|
||||
background will not put the Apple IIgs in text mode.</font></p>
|
||||
|
||||
<p><font face="Times">Also, do not run another desktop program
|
||||
when one is currently suspended. The GNO kernel tries to cleanly
|
||||
terminate the second program, but may not always be able to
|
||||
accomplish this.</font></p>
|
||||
|
||||
<p><font face="Times"><b>GNO Snooper CDA</b></font></p>
|
||||
|
||||
<p><font face="Times">The GNO Snooper CDA is a utility that is
|
||||
very helpful in debugging software, and reporting system crashes.
|
||||
Snooper has access to information inside the kernel that is not
|
||||
generally available to processes.</font></p>
|
||||
|
||||
<p><font face="Times">When you enter the control panel and choose
|
||||
"GNO Snooper" a process list is displayed, which is
|
||||
very similar to the 'ps' shell command, and a menu is presented
|
||||
with the following options:</font></p>
|
||||
|
||||
<p><font face="Times">D)etails</font></p>
|
||||
|
||||
<p><font face="Times">Get detailed information on a process.
|
||||
Snooper asks you for the process ID number of the process you
|
||||
want to investigate. Snooper then dumps the state of the 65816
|
||||
registers and shows various other information about the process.</font></p>
|
||||
|
||||
<p><font face="Times">K)ill</font></p>
|
||||
|
||||
<p><font face="Times">This option sends a SIGKILL (signal number
|
||||
9) to a process. Just type in the process ID of the process you
|
||||
want to kill.</font></p>
|
||||
|
||||
<p><font face="Times">P)rocess Group Dump</font></p>
|
||||
|
||||
<p><font face="Times">Dumps the system process group tables,
|
||||
which is very useful for debugging code which manipulates process
|
||||
groups. The first table, 'pgrp', is the process group reference
|
||||
count table. This table lists how many processes (and TTYs)
|
||||
belong to that process group. pgrp ID's start at 2, so the first
|
||||
pgrp listed is 2.</font></p>
|
||||
|
||||
<p><font face="Times">The second listing is the ttyStruct table.
|
||||
This table shows which pgrp each TTY belongs to. The TTYs start
|
||||
with .null (0), then move on to .ttyb, .ttya, .ttyco, etc.</font></p>
|
||||
|
||||
<p><font face="Times">F)ile Table Dump</font></p>
|
||||
|
||||
<p><font face="Times">Lists all open files that GNO knows about.
|
||||
The information is presented in tuples. The first element is the
|
||||
real GS/OS refNum or device driver ID. The second is the type of
|
||||
file (GSOS, ttyXX, or PIPE). The third is how many references to
|
||||
that file are open. This information is global, so if two
|
||||
processes have .NULL opened, the refcount for .tty00 will be 2.</font></p>
|
||||
|
||||
<hr>
|
||||
|
||||
<p><font size="6" face="Times">Reading List</font></p>
|
||||
|
||||
<p><font face="Times"><b>Recommended Reading for Users</b></font></p>
|
||||
|
||||
<p><font face="Times">Title: Learning Unix<br>
|
||||
Author: James Gardner<br>
|
||||
Publisher: Sams<br>
|
||||
Edition: 1991<br>
|
||||
ISBN: 0-672-30001-X</font></p>
|
||||
|
||||
<p><font face="Times">Comment: With disks containing MSDOS
|
||||
simulation of Unix (MKS Tools). A good tutorial / reference book
|
||||
for those without constant access to Unix.</font></p>
|
||||
|
||||
<p><font face="Times">Title: The Unix Operating System<br>
|
||||
Author: Kaare Christian<br>
|
||||
Publisher: Wiley<br>
|
||||
Edition: 2nd ed. 1988<br>
|
||||
ISBN: 0-471-84781-X</font></p>
|
||||
|
||||
<p><font face="Times">Comment: A classic overview of Unix
|
||||
commands. Good in coverage.</font></p>
|
||||
|
||||
<p><font face="Times">Title: Peter Norton's Guide to Unix<br>
|
||||
Authors: Peter Norton and Harley Hahn<br>
|
||||
Publisher: Bantam Computer<br>
|
||||
Edition: 1991<br>
|
||||
ISBN: 0-553-35260-1</font></p>
|
||||
|
||||
<p><font face="Times">Comment: Good coverage. A good introduction
|
||||
for beginners (especially those accustomed to DOS).</font></p>
|
||||
|
||||
<p><font face="Times">Title: Unix in a Nutshell<br>
|
||||
Authors: Daniel Gilly and O'Reilly staff<br>
|
||||
Publisher: O'Reilly<br>
|
||||
Edition: 2nd ed. 1992 (System V and Solaris 2)<br>
|
||||
ISBN: 1-56592-001-5</font></p>
|
||||
|
||||
<p><font face="Times">Comment: **** Highly Recommended **** An
|
||||
excellent desktop reference to almost all Unix commands "a
|
||||
complete reference containing all commands and options, plus
|
||||
generous descriptions and examples that put the commands in
|
||||
context." Also, an edition for 4.3. BSD.</font></p>
|
||||
|
||||
<p><font face="Times">Title: Life with Unix - A Guide for
|
||||
Everyone<br>
|
||||
Authors: Don Libes and Sandy Ressler<br>
|
||||
Publisher: Prentice Hall<br>
|
||||
Edition: 1990<br>
|
||||
ISBN: 0-13-536657-7</font></p>
|
||||
|
||||
<p><font face="Times">Comment: **** Highly Recommended **** An
|
||||
everything-you-want-to-know-about-Unix book. It includes info you
|
||||
might not find elsewhere. "This book is the
|
||||
"other" book about Unix, a study in reading between the
|
||||
lines - which is very much what learning UNIX is like."</font></p>
|
||||
|
||||
<p><font face="Times">Title: Unix for the Impatient<br>
|
||||
Authors: Paul Abrahams and Bruce Larson<br>
|
||||
Publisher: Addison Wesley<br>
|
||||
Edition: 1992<br>
|
||||
ISBN: 0-201-55703-7</font></p>
|
||||
|
||||
<p><font face="Times">Comment: **** Highly Recommended **** A
|
||||
new, comprehensive, in-depth reference to Unix. "a handbook
|
||||
you can use both as a manual to learn UNIX and as a ready
|
||||
reference for fast answers to specific UNIX questions."</font></p>
|
||||
|
||||
<p><font face="Times">Title: Learning the vi Editor<br>
|
||||
Author: Linda Lamb<br>
|
||||
Publisher: O'Reilly<br>
|
||||
Edition: 1990<br>
|
||||
ISBN: 0-937175-67-6</font></p>
|
||||
|
||||
<p><font face="Times">Comment: A very good guide to vi and ex
|
||||
commands. With a quick reference card.</font></p>
|
||||
|
||||
<p><font face="Times">Titles: vi Tutor and vi Reference<br>
|
||||
Authors: Michael Pierce and Robert Ware (Tut), Maarten Litmaati
|
||||
(Ref)<br>
|
||||
Edition: 1.3 (Tut), 8 (Ref)</font></p>
|
||||
|
||||
<p><font face="Times">Comment: These and other good vi stuff are
|
||||
obtainable by anonymous ftp from cs.uwp.edu (in pub/vi) ...</font></p>
|
||||
|
||||
<p><font face="Times"><b>Recommended Reading for Programmers</b></font></p>
|
||||
|
||||
<p><font face="Times">Title: The Design and Implementation of the
|
||||
4.3 BSD Unix Operating System<br>
|
||||
Authors: Samuel Leffler et al<br>
|
||||
Publisher: Addison-Wesley<br>
|
||||
Edition: 1990<br>
|
||||
ISBN: 0-201-06196-1</font></p>
|
||||
|
||||
<p><font face="Times">Comment: An authoritative description of
|
||||
the design of BSD Unix. "It covers the internal structure of
|
||||
the 4.3BSD system and the concepts, data structures, and
|
||||
algorithms used in implementing the system facilities."</font></p>
|
||||
|
||||
<p><font face="Times">Title: The Unix Programming Environment<br>
|
||||
Authors: Brian Kernighan and Rob Pike<br>
|
||||
Publisher: Prentice-Hall<br>
|
||||
Edition: 1984<br>
|
||||
ISBN: 0-13-937681-X</font></p>
|
||||
|
||||
<p><font face="Times">Comment: A true classic on Unix
|
||||
programming.</font></p>
|
||||
|
||||
<p><font face="Times">Title: Advanced Programming in The Unix
|
||||
Environment<br>
|
||||
Author: Richard Stevens<br>
|
||||
Publisher: Addison-Wesley<br>
|
||||
Edition: 1992<br>
|
||||
ISBN: 0-201-56317-7</font></p>
|
||||
|
||||
<p><font face="Times">Comment: **** Highly Recommended **** A
|
||||
going-to-be classic on how programs work under Unix. The source
|
||||
codes and errata list are obtainable by anonymous ftp from
|
||||
ftp.uu.net (in /published/books).</font></p>
|
||||
|
||||
<p><font face="Times">Title: Advanced Unix Programming<br>
|
||||
Author: Marc Rochkind<br>
|
||||
Publisher: Prentice Hall<br>
|
||||
Edition: 1985<br>
|
||||
ISBN: 0-13-011818-4</font></p>
|
||||
|
||||
<p><font face="Times">Comment: A superb book covering all system
|
||||
calls in detail.</font></p>
|
||||
|
||||
<p><font face="Times">Title: Using C on the Unix System<br>
|
||||
Author: David Curry<br>
|
||||
Publisher: O'Reilly<br>
|
||||
Edition: 1990<br>
|
||||
ISBN: 0-937175-23-4</font></p>
|
||||
|
||||
<p><font face="Times">Comment: This book is directed to
|
||||
(would-be) system programmers.</font></p>
|
||||
|
||||
<p><font face="Times"><b>Required Reading for Programmers</b></font></p>
|
||||
|
||||
<p><font face="Times">Title: The C Programming Language<br>
|
||||
Authors: Brian Kernighan and Dennis Ritchie <br>
|
||||
Publisher: Prentice Hall<br>
|
||||
Edition: 2nd ed. 1988<br>
|
||||
ISBN: 0-13-110362-8</font></p>
|
||||
|
||||
<p><font face="Times">Comment: The answers to the exercises can
|
||||
be found in C Answer Book written by Tondo and Gimpel and
|
||||
published by Prentice Hall (ISBN: 0-13-109653-2).</font></p>
|
||||
|
||||
<p><font face="Times">All the books listed below are available
|
||||
from:</font></p>
|
||||
|
||||
<p><font face="Times">Resource Central<br>
|
||||
PO Box 11250<br>
|
||||
Overland Park Kansas 66207<br>
|
||||
(913) 469 6502</font></p>
|
||||
|
||||
<p><font face="Times">Title: Apple IIgs ToolBox Reference.<br>
|
||||
Volumes 1, 2 & 3<br>
|
||||
Author: Apple Computer<br>
|
||||
Publisher: Addison-Wesley</font></p>
|
||||
|
||||
<p><font face="Times">Title: Programmers Reference for System 6.0<br>
|
||||
Author: Mike Westerfield<br>
|
||||
Publisher: Byteworks, Inc</font></p>
|
||||
|
||||
<p><font face="Times">Title: Apple IIgs Firmware Reference<br>
|
||||
Author: Apple Computer<br>
|
||||
Publisher: Addison-Wesley</font></p>
|
||||
|
||||
<p><font face="Times">Title: GS/OS Reference<br>
|
||||
Author: Apple Computer<br>
|
||||
Publisher: Addison-Wesley</font></p>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue