mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-12-21 23:29:16 +00:00
initial checkin
This commit is contained in:
parent
6ec822da35
commit
e4e2dd505c
709
doc/refs.aug96/gsh.12.html
Normal file
709
doc/refs.aug96/gsh.12.html
Normal file
@ -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>
|
1579
doc/refs.aug96/gsh.3.html
Normal file
1579
doc/refs.aug96/gsh.3.html
Normal file
File diff suppressed because it is too large
Load Diff
996
doc/refs.aug96/gsh.4.html
Normal file
996
doc/refs.aug96/gsh.4.html
Normal file
@ -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>
|
1849
doc/refs.aug96/gsh.5.html
Normal file
1849
doc/refs.aug96/gsh.5.html
Normal file
File diff suppressed because it is too large
Load Diff
844
doc/refs.aug96/install.html
Normal file
844
doc/refs.aug96/install.html
Normal file
@ -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>
|
2798
doc/refs.aug96/kern.html
Normal file
2798
doc/refs.aug96/kern.html
Normal file
File diff suppressed because it is too large
Load Diff
2396
doc/refs.aug96/man1.html
Normal file
2396
doc/refs.aug96/man1.html
Normal file
File diff suppressed because it is too large
Load Diff
1398
doc/refs.aug96/man2.html
Normal file
1398
doc/refs.aug96/man2.html
Normal file
File diff suppressed because it is too large
Load Diff
1871
doc/refs.aug96/man3.html
Normal file
1871
doc/refs.aug96/man3.html
Normal file
File diff suppressed because it is too large
Load Diff
1967
doc/refs.aug96/man4.html
Normal file
1967
doc/refs.aug96/man4.html
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user