diff --git a/doc/refs/gsh/Makefile b/doc/refs/gsh/Makefile deleted file mode 100644 index bb55d33..0000000 --- a/doc/refs/gsh/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -CHAPTERS = \ - start.sgml \ - interact.sgml \ - product.sgml \ - commands.sgml \ - vars.sgml \ - prefix.sgml \ - errors.sgml \ - comply.sgml \ - termcap.sgml \ - glossary.sgml - -all: h ps -h: gsh/index.html -ps: gsh.ltr.ps.Z - -gsh.ltr.ps.Z: gsh.ltr.ps - compress < $< > $@ - -gsh/index.html: gsh.sgml $(CHAPTERS) - sgmltools -b html gsh.sgml - ../posthtml gsh/* - -gsh.ltr.ps: gsh.sgml $(CHAPTERS) - sgmltools -b ps gsh.sgml - mv gsh.ps gsh.ltr.ps - -bork: - true; echo "result is $$?"; exit 0 - -# echo "$(SHELLMETAS)" - -gsh.sgml: main.sgml $(CHAPTERS) - mydate=`../getdate -date main.sgml $(CHAPTERS)`; \ - echo "generating $@"; \ - true perl -pe "s,%%%date%%%,$$mydate,g;" - -# < main.sgml - -# > $@ - -clean: - rm -f gsh.sgml *~ - -clobber: clean - rm -rf gsh gsh.ltr.ps gsh.ltr.ps.Z diff --git a/doc/refs/gsh/commands.sgml b/doc/refs/gsh/commands.sgml deleted file mode 100644 index 19a813f..0000000 --- a/doc/refs/gsh/commands.sgml +++ /dev/null @@ -1,1195 +0,0 @@ - - - -Builtin Command Reference - - -Builtin vs External Commands - - -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 gsh 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. - - - -gsh has a number of built-in commands which allow you to work with the -shell, the GNO kernel, and the shell environment. - - - -The following section describes the -commands that are built-in to gsh. The "[..]" -character sequence represents an optional argument to a command. -The term "SIGNAL" is used to represent one of the signal names -or numbers listed in Appendix D Signals. 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. - - - - - -Builtin Shell Commands - - - - - - -bindkey [-l] -function string - - - -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: - - - - -bindkey Functions - - - - - Function - Meaning - - - - - - backward-char - - - move cursor left - - - - - backward-delete-char - - - delete character to the left - - - - - backward-word - - - move cursor left one word - - - - - beginning-of-line - - - move cursor to beginning of line - - - - - clear-screen - - - clear screen and redraw prompt - - - - - complete-word - - - perform filename completion - - - - - delete-char - - - delete character under cursor - - - - - down-history - - - replace command line with next history - - - - - end-of-line - - - move cursor to end of line - - - - - forward-char - - - move cursor to the right - - - - - forward-word - - - mvoe cursor one word to the right - - - - - kill-end-of-line - - - delete line from the cursor to end of line - - - - - kill-whole-line - - - delete the entire command line - - - - - list-choices - - - list file completion matches - - - - - newline - - - finished editing, accept command line - - - - - raw-char - - - character as-is - - - - - redisplay - - - redisplay the command line - - - - - toggle-cursor - - - toggle between insert and overwrite cursor - - - - - undefined-char - - - this key does nothing - - - - - up-history - - - replace command line with previous history - - - - -
-
- - -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 CTRL-A and OA-< -both bound to beginning-of-line. - - - -Most of the function names are -self-explanatory, and are explained in Chapter 2, but a few -deserve discussion. -raw-char -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 -raw-char. -Control characters should not be bound to -raw-char -because the command-line editor will become confused (most control characters -act as special GNO/ME console feature codes - see the -GNO Kernel Reference -Manual). - - - -Any keystroke that should be rejected by -the editor should be bound to -undefined-char. -By default, this includes control characters and OA-sequences that -are not assigned to any editing features. Any key bound to -undefined-char -will cause gsh to beep and ignore the key. - - - -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. - - - -Because terminals do not have the OA (Open Apple) key, OA is actually -mapped by the kernel to a two-character sequence consisting of -ESC -and the key. For example, OA-Y would actually produce -ESC-Y. - - - -Control characters in the -string -are represented in ^X format; e.g. CTRL-A is represented by ^A. -ESC (and OA) is represented by ^[. - - - - -gno% bindkey kill-end-of-line ^K - map Ctrl-K to kill-end-of-line (like Emacs) -gno% bindkey clear-screen ^[^X - map OA-Clear to clear-screen - - - -
-
- - - -commands - - - -Displays a list of all built-in shell commands. - - - - - - -cd [pathname] - - -chdir [pathname] - - - -Changes the current working directory to -pathname. -If pathname -is not given, the default home directory (i.e. the value of the HOME -environment variable) is used. This makes it easy -to move back to your home directory. Under gsh, unlike -most UNIX shells, the cd is not necessary, except to change -automatically to your HOME directory. If the first word on the command line -is neither a builtin nor an external command, but is instead the name of -a directory, a cd is implied and performed on the directory unless the -NODIREXEC variable has been set. - - - - - - -clear - - - -This command takes no arguments. When invoked, the screen will be cleared. - - - - - - -dirs - - - -See pushd. - - - - - - -echo [-n] [arg ...] - - - -Expands the "arg" -expression(s) and outputs them to the screen. If the -n flag is specified, -a newline character is not output after the last -arg expression. -Special escape sequences may also be included in the -arguments, similar to those used in C strings: - - - - - - - -\b -backspace - - -\f -form feed (clears screen) - - -\n -newline - - -\r -carridge return - - -\t -tab - - -\nnn -a decimal ASCII code - - - - - - - - - - -exit - - - -Exits the shell or terminates a shell script. - - - - - - -history - - - -This command displays the list of previous -command-line entries. The number of entries saved is set in the -HISTORY variable. - - - - - - -pushd [newdir | +n] - - -popd [+n] - - -dirs - - - -These three commands maintain the shell's directory stack. -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: - - - -gno% pwd -/src/myprogs/class/program.1 -gno% pushd /etc -gno% pwd -/etc -gno% popd -gno% pwd -/src/myprogs/class/program.1 - - - -The -pushd -command stores the current directory on a stack, -and then changes the current directory to the argument -newdir. -When you want to go back to the original directory, type popd. The shell -will pull the last directory off the stack and make that directory -the current directory. -If no argument is given, then the current directory is swapped with the -directory that is currently on the top of the directory stack. -If a digit argument, +n, is given, then -the current directory will be swapped with the directory in the -nth position on the directory stack. - - - -The popd -command, when given without an argument, will pop the directory that -is on top of the directory stack, and make that directory the current -directory. When given an argument of +n, -popd -will remove the -nth -directory from the stack. It does not change -to that directory. - - - -The dirs -command displays the current directory stack. - - - - - - -pwd - - - -Displays the current working directory. -This is useful if you have not configured the PROMPT string -to print your current working directory. - - - - - - - -source - - - -When a script is executed, gsh -creates a new process to run the script. As a result, scripts -cannot change the parent shell's environment. -Instead of executing the script directly, you may use the -source -command which does not create a new process to execute the script. Thus, the -source -command is effectively exactly like typing all the -commands in the script from the keyboard. - - - - - - -tset - - - -The -tset -command causes the shell to reread the /etc/termcap -file and reset its output system to use the terminal type -specified in the TERM environment variable. On startup, after reading the -gshrc file, gsh -automatically does a -tset. -gsh also automatically does a tset whenever -the TERM variable is changed with the -set -command. You would -use tset manually if, for example, a utility changed the value of -TERM. - - - - - - - -which command [...] - - - -Let's say that you are working on a new -version of the venerable shell utility -ls. -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 -which -command to check your sanity. Which also comes in -handy in locating duplicate program names in the PATH -directories (for example, an -ls -in both /bin and /usr/bin.) - - - -The way to access a utility in the current -directory which has the same name as a program in the PATH is to -prefix the command name with -'.', as in -'./ls'. -See also -rehash and -unhash. - - - - -
- -
- - -Kernel Commands - - -gsh provides a set of commands to control the GNO kernel. These commands -mainly deal with job control. See the chapter on -Process Management in the -GNO Kernel Reference -Manual. - - - - - - -bg (%job | pid) - - - -Starts the specified job, if stopped, and places it in the background. - - - - - - - -fg (%job | pid) - - - -Starts the specified job, if stopped, and places it in the foreground. - - - - - - -jobs [-l] - - - -Displays a list of the shell's jobs. If the -l -switch is specified, the process id is -included in the job list. - - - - - - - -kill {[-SIGNAL] | %job | pid | [-l] } - - - -The kill command will send the signal SIGNAL -to the process number pid. -The ps command documented below describes how -to list all process ID's currently executing. - - -SIGNAL -can be either a numeric value or string representing the signal -to be sent to the process. All signals are documented in -the chapter on Interprocess Communication in the -GNO Kernel Reference -Manual. -Alternatively, specifying the -l option will list all -the signals and their names. - - -If the process number isn't known, but the -job number is, replace the pid with a '%' followed by the job -number. - - - - - - - -ps - - - -This command takes no arguments. When -invoked, a list of all currently running processes is displayed: - - -[2] 9:52pm root> ls -lR :hard:gno > /ram5/dev & -[1] + 35 Running ls -lR :hard:gno & -[3] 9:53pm root> ps - ID STATE TT MMID UID TIME COMMAND - 1 ready co 1002 0000 0:26 NullProcess - 2 ready co 1005 0000 0:02 gsh - 35 ready co 100A 0000 0:01 ls -lR :hard:gno - 36 running co 1007 0000 0:00 ps -[4] 9:53pm root> -[1] + Done ls -lR :hard:gno - - - -The fields of the ps output are as shown below: - - - - - - - -ID - - - -A unique process ID assigned to a command by GNO. Use this number -to reference any process. - - - - - - -STATE - - - -Current state of the process. Each process can be in any of the -following states: - - - - - - - - -RUNNING - - - -The process is currently in execution. - - - - - - -READY - - - -The process is not currently executing, but is ready to be -executed as soon as it is assigned a time slice. - - - - - - -BLOCKED - - - -The process is waiting for a slow I/O operation to -complete (for instance, a read from a TTY). - - - - - - -NEW - - - -The process has been created, but has not executed yet. - - - - - - -SUSPENDED - - - -The process was stopped with SIGSTOP, SIGTSTP, SIGTTIN, or SIGTTOU. - - - - - - -WAITING - - - -The process is waiting on a semaphore "signal" operation. -Programs waiting for data from a pipe have this state. - - - - - - -WAITSIGCH - - - -The process is waiting to receive a SIGCHLD signal. - - - - - - -PAUSED - - - -The process is waiting for any signal. - - - - - - - - - - - - - -TTY - - - -Terminal connected to the process. - - - - - - -MMID - - - -Memory Manager ID assigned to the process. - - - - - - -UID - - - -ID of the user who initiated the process. - - - - - - -TIME - - - -How much CPU time this process has used. This is not the elapsed -time of the process. - - - - - - -COMMAND - - - -Command-line string used to invoke process. - - - - - - - - - - - - - -setdebug { val | {+|-}flag } - - - -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: - - - - - - -Kernel Debug Flags - - - - - Flag - Meaning - - - - - - gsostrace - - - Trace GS/OS calls. - - - - - gsosblocks - - - Trace GS/OS parameter blocks. - - - - - gsoserrors - - - Trace GS/OS errors. - - - - - pathtrace - - - Trace GS/OS pathnames. - - - - - sigtrace - - - Trace signals. - - - - - systrace - - - Trace GNO Kernel system calls. - - - - -
-
- -
-
- - - -stop { %job | pid } - - - -Stops the execution of all processes in a specified job. - - - - -
- -
- - -Environment Commands - -The last set of commands, environment -commands, modify the gsh environment. Many of these -commands have been used in other parts of this manual and, -therefore, should not be new. - - - - - - -alias [name] [value] - - - -Creates an alias for a string. When this -alias is referenced as a command, value -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 alias -with no arguments. -To list the value of a specific alias, invoke alias -with name only. - - - - - - -export [variable ...] - - - -When a shell environment variable is marked -as exportable, any process that is created from within the -current process (most likely gsh), will be passed copies -of the exported variables. -See setenv and -. - - - - - - -hash - - - -Displays a list of all commands currently -in the shell's hash table; i.e., a list of commands in the -various $PATH directories. - - - - - - -prefix [prefixnum -[prefixname]] - - - -GNO maintains a list of 32 'prefixes' for -each process. Prefixes allow the user to reference a directory -with a number. While gsh 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. - contains a list of these prefixes and -their "default" meanings, as documented in the -"Apple IIgs GS/OS Reference". - - -If refixname is not given, then the value of -prefixnum is displayed. -If neither argument is given, a list of currently assigned -prefixes is displayed. - - - - - - -rehash - - - -To decrease the time spent searching for a -command, gsh builds a hash table of all commands which were -found in the pathnames set in the $PATH environment variable. When a -command is invoked, only this list is searched. When the $PATH environment -variable is changed, gsh must rebuild this list. The -rehash command tells gsh to rebuild -the list. - - -While the old list is still active, if $PATH is -changed and one of the previous search paths is no longer online, -gsh will try and execute the command from the offline -device, resulting in a command failure. - - - - - - - -set [var [value]] [...] - - -set value=value [...] - - -setenv [var value] [...] - - - -Use these command to create or modify environment variables. If -set is invoked with no arguments, a list of the current -environment variables is displayed. If only var -is given as an argument, the value of var -is displayed. To set or reset a variable, use both the -var and value -arguments. There are two ways to set a variable, either by -"var value", or by -"var=value". -To set multiple variables at once, simply -list them all on the command line as shown above. - - -setenv works just like set, -but automatically exports the variable(s) or lists -only exported variables. - - -When using set or setenv to view -a list of variables, exported variable names appear in all capital letters. - - - - - - -unalias name [...] - - - -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. - - - - - - -unhash - - - -To disable the internal hash table created -with the rehash -command, use this command. This is useful if you -wish to use only utilities in the current working directory -(during testing, for example). - - - - - - -unset var [...] - - - -To remove a variable from the environment, use unset. -unset accepts multiple names if more than one variable is -to be deleted. Future attempts to access the variable -var will result -in an error or a NULL string, depending on the circumstances. - - - - - - -
diff --git a/doc/refs/gsh/comply.sgml b/doc/refs/gsh/comply.sgml deleted file mode 100644 index b56ccba..0000000 --- a/doc/refs/gsh/comply.sgml +++ /dev/null @@ -1,60 +0,0 @@ - - - -Non-Compliant Applications - - -GNO/ME wasn't really designed with the -intention of making -every -program you currently run work under -GNO/ME; that task would have been impossible. Our main goal was -to provide a UNIX-based multitasking environment; that we have -done. We made sure as many existing applications as we had time -to track and debug worked with GNO/ME. - - - -However, due to the sheer number of -applications and authors, there are some programs that just plain -don't work; and some that mostly work, except for annoyances such -as two cursors appearing, or keyboard characters getting "lost". -The problem here is that some programs use their own text drivers -(since TextTools output was very slow at one time); since GNO/ME -doesn't know about these custom drivers, it goes on buffering -keyboard characters and displaying the cursor. There is a way, -however, to tell GNO/ME about these programs that break GNO/ME's -rules. - - - -We've defined an auxType for S16 and EXE -files, to allow distinction between programs that are GNO/ME -compliant and those that are not. Setting the auxType of an -application to $DC00 disables the interrupt driven keyboard -buffering and turns off the GNO/ME cursor. Desktop programs use -the GNO/ME keyboard I/O via the Event Manager, and thus should -not -have their auxType changed. - - - -You can change a program's auxType with the -following shell command: - -chtyp -a \$DC00 filename - - - - -where filename is the name of the -application. As more programmers become aware of GNO/ME and work -to make their software compatible with it, this will become less -of a problem, but for older applications that are unlikely to -ever change $DC00 is a -reasonable approach. - - - diff --git a/doc/refs/gsh/errors.sgml b/doc/refs/gsh/errors.sgml deleted file mode 100644 index 7ef32b1..0000000 --- a/doc/refs/gsh/errors.sgml +++ /dev/null @@ -1,401 +0,0 @@ - - - -Gsh Errors - - -gsh tries, when an error occurs, to -output an informative error message that will lead you to the -solution of your problem. This appendix documents all gsh -error messages and what the probable cause of the problem might -be. There are five classes of errors: generic gsh, command-entry, -syntax, execution, and builtin. Each error is discussed -separately. - - - -Generic gsh Errors - - -These errors can typically occur at any -time and may not be directly related to something the user has -done. Some of them are trivial, and some are very serious and -should be reported immediately via the -GNOBugs -web page. - - - - - - -gsh: There are stopped jobs. - - - -All stopped jobs must be killed before exiting the -shell. Use the jobs and kill commands. - - - - - - - - - -Command Editing Errors - - -Command editing errors occur when entering -information on the command-line. If you try to move the cursor -too far to the left or right of your command-line (i.e. before -the first character or after the last character), an error will -occur. At present, gsh indicates a command-entry error by generating -the bell character (^G), which beeps the speaker. -This is to notify you that the action you requested is not possible. - - - - - -Syntax Errors - - -Syntax errors occur while gsh is trying to -understand the command you have entered on the command-line. -Problems arise when you wish to quote an argument (") and -only enter one quote. - - - - - - -gsh: Missing ending ". - - - -A second " wasn't supplied when quoting text. - - - - - - -gsh: Missing ending '. - - - -A second ' wasn't supplied when quoting text. - - - - - - -gsh: Too many arguments, so no dessert tonight. - - - -The command-line contained too many arguments which exceeded the available -memory allocated by gsh. - - - - - - -gsh: Not enough memory for arguments. - - - -No memory was available for allocating command-line arguments. - - - - - - -gsh: Extra '<' encountered. - - -gsh: Extra '>' or '>>' encountered. - - -gsh: Extra '>&' or '>>&' encountered - - - -Text may be redirected to only one file. - - - - - - -gsh: No file specified for '<'. - - -gsh: No file specified for '>' or '>>'. - - -gsh: No file specified for '>&' or '>>&'. - - - -A file must be specified when redirecting I/O. - - - - - - -gsh: '|' conflicts with '>' or '>>'. - - -gsh: '|' conflicts with '<'. - - - -Piping is another form of redirection, thus -pipes and redirections cannot be mixed. - - - - - - - - -Execution Errors - - -After gsh parses the command-line, -it will then execute the command and pass any arguments to the -command. If, however, the command does not exist, gsh will -report an error. The reason the command does not exist could be -either the command name was typed wrong or the command does not -exist. - - - - - - -$0: Command not found. - - - -$0 represents the command to be executed. -Either the command name was entered incorrectly or the command -does not exist. Recheck the spelling of the command and check -$PATH to make sure the command exists in the pathname list. - - - - - - -$0: Not executable. - - - -$0 represents the command to be executed. Check to ensure that the -filetype is correct. - - - - - - -heh heh, next time you'll need to specify a command before redirecting. - - - -Redirection was specified but the command-line had no command. - - - - - - -Cannot fork (too many processes?) - - - -An error was encountered forking a process. -The most likely culprit is there are too many processes running. - - - - - - - - - -Builtin Command Errors - - -These are errors which can be returned by -many of the builtin commands. Every builtin also contains a -usage message on the proper invocation method. - - - - - - -cd: Not a directory - - - -Tried to change the cwd to a file that isn't a directory. - - - - - - - -prefix: could not set prefix, pathname may not exist. - - - -GS/OS Prefix command failed, most likely -the pathname did not exist or the disk is damaged. - - - - - - - -setdebug: Unknown flag - - - -An unknown flag was sent to -setdebug. Run -setdebug with -no arguments for a list of possible flags. - - - - - - - -ps: error in kvm_open() - - - -ps was unable to access the process data -structure. If the kernel data structures are damaged to the point that -this error occurs, it is likely that you will not be able to see this -error. - - - - - - - -set: Variable not specified - - - -A variable was not passed to set, for example, -"set =bar". -Make sure the variable name was specified -without the preceding dollar sign. For example, if foo is not -set, then -"set $foo=bar" -would be expanded to -"set =bar", -resulting in this error. - - - - - - - -kill: Invalid signal number - - -kill: Invalid signal name - - - -See the signal(2) manual page for a list of valid signal names and numbers. - - - - - - - -fg: No job to foreground. - - -bg: No job to background. - - -stop: No job to stop. - - - -There aren't currently any jobs so the attempted command is useless. - - - - - - - -fg: No such job. - - -bg: No such job. - - -stop: No such job. - - -kill: No such job. - - - -The specified job (or process) doesn't exist. - - - - - - - -fg: Gee, this job is already in the foreground. - - -bg: Gee, this job is already in the background. - - -stop: Gee, this job is already stopped. - - - -Well, this should be self-explanatory. -Also, some of these should be impossible to get, unless you're -bound and determined to crash gsh, but then, these errors will -keep you from crashing it, so, what's the point? - - - - - - - diff --git a/doc/refs/gsh/glossary.sgml b/doc/refs/gsh/glossary.sgml deleted file mode 100644 index 1880aaf..0000000 --- a/doc/refs/gsh/glossary.sgml +++ /dev/null @@ -1,472 +0,0 @@ - - - -Glossary - - - - - Alias - - A name used as an - abbreviation for one or more commands. An alias allows - you to replace any command string with a short sequence - of characters. - - - - Applesoft - - An implementation of BASIC for the Apple II. - - - - APW - - Apple Programmer's Workshop. Similar to ORCA. - - - - BASIC - - Beginners All-purpose Symbolic Instruction Code. A simple computer - language. - - - - Built-in Command - - A command processed by gsh. These commands are not - external to the shell, but are included within the - gsh program. - - - - Command - - An action for gsh to perform. Commands can be - either simple or compound. A simple command is an alias assignment, - variable assignment, I/O redirection, or built-in - command. A compound command is a pipeline. - - - - Directory - - A special - type of file that contains a list of other files; usually - used to categorize files related in some way. - - - - Environment - - The state of a process, which includes information such as - its open files, current directory (working directory), - and local and global variables. Three environments exist - under gsh: - - - - Child Environment - - - The environment of the child process. - - - - - - Current Environment - - - The environment of the current process. - - - - - - Parent Environment - - - The environment of the parent process. - - - - - - - - - Environment file - - A file that is interpreted by an application to allow the - user to customize its operation. For gsh, this - file is gshrc. - - - - Export - - A way to pass a variable from a parent process to child process. - - - - File - - An object used - to store data and/or programs. On the IIgs, files - are tagged with types such as EXE, SRC, TXT, and so forth. - - - - Filter - - A command - that reads from its standard input and writes to its - standard output. For example, a filter program could be - written to convert all characters to upper case. Filters - are used mainly in pipelines. - - - - Flag - - A character - used to represent an option to a command. Flags are - either short or long options whose character - representations are "-" and "+". - - - - Glob - - Slang for Pathname Expansion. - - - - GNO/ME - - GNO Multitasking Environment. The complete package including - the GNO kernel and the GNO Shell. - - - - GNO Kernel - - Heart of GNO/ME. Executes processes when asked by the GNO Shell. - - - - GNO Shell - - Provides - an interface between the user and the GNO kernel. - - - - gsh - - GNO Implementation of a UNIX-like shell. - - - - GS/OS - - 16 bit - Operating System for the Apple IIgs. - - - - History - - A variable - number of command-lines saved by gsh for future - reference. The number of command-lines saved is dependent - on the HISTORY environment variable. - - - - History file - - A file - containing command-lines entered while in a gsh - session. The number of command-lines saved is dependent - on the SAVEHIST environment variable. - - - - Interrupt - - A signal - generated by a sequence of keyboard characters or by a - command that terminates the current executing process, - unless the process has set up a trap to handle the - interrupt signal. - - - - I/O Redirection - - The - process of changing the standard input, standard output, - and standard error associated with a process so that it - is redirected to a file instead of the console. - - - - Job - - A set of related - processes. A job can be either: - - - - - Background Job - - - A process - that executes with the current process. Background jobs - are not associated with the terminal. - - - - - - Foreground Job - - - A process - that is currently executing and which is associated with - the terminal. - - - - - - - - - Multiprocessing - - Indicates a machine with more than one CPU. - - - - Multitasking - - The ability to run more than one program at a time, or the - illusion of more than one program running at a time; - usually the latter. - - - - ORCA - - Shell programing - environment for the Apple //gs. Also a type of whale. - - - - Path Search - - The means of searching a pathname list for a command or - script. - - - - Pathname - - A string used to identify a file. - - - - Pathname Completion - - The means of generating all pathnames matching a given pattern. - - - - Pathname Expansion - - The means of replacing a pattern with a list of pathnames - matching that pattern. - - - - Pattern - - A string of - characters used to match literal characters and/or - multiple characters. - - - - Permission - - Each file - has certain permissions associated with it: destroy, - rename, backup, invisible, write, and read. - - - - Pipe - - A conduit - through which a stream of characters can pass from one - process to another. This is accomplished by linking the - standard output of one process to the standard input of a - second process. - - - - Pipeline - - Two or more - processes connected together by pipes. - - - - Process - - A single - thread of execution that consists of a program and an - execution environment. If a process creates another process, - the creator is known as the parent process; - the created process is known as the child process. - - - - Process ID - - Each active process is uniquely identified by a positive - integer called the process id. - - - - ProDOS - - 8-bit Disk - Operating System for Apple II computers. - - - - Prompt - - A message - displayed by gsh when it is ready to receive a - command. - - - - Quoting - - A means of - including special characters as arguments to a command or - as the command name. Certain characters have certain - meanings to gsh and quoting them makes - gsh ignore them. - - - - Reserved Word - - A word - that is treated specially by gsh. This word is - part of the gsh grammar. - - - - Script - - A sequence of - commands contained in a file. - - - - Signal - - An asynchronous message that consists of a number or name - that can be sent from one process to another. - - - - Standard Error - - The file associated with error messages for a process. This - file is usually the terminal. - - - - Standard Input - - The file associated with a processes input. This file is - usually the terminal. - - - - Standard Output - - The file associated with a processes output. This file is - usually the terminal. - - - - Tilde Expansion - - Words beginning with "~" are treated - specially by gsh. The "~" is - expanded to the value of the HOME environment variable. - - - - UNIX - - Popular - operating system which has growing use in education and - business. One of the first operating systems to support - multitasking. - - - - Variable - - A named - location in gsh that contains text. The text of a - variable can be expanded in a command by preceding the - variable name with a dollar sign ($). - - - - Wildcard - - See Pattern and Pathname Expansion. - - - - Working directory - - The current directory. - - - diff --git a/doc/refs/gsh/interact.sgml b/doc/refs/gsh/interact.sgml deleted file mode 100644 index 535ca2a..0000000 --- a/doc/refs/gsh/interact.sgml +++ /dev/null @@ -1,557 +0,0 @@ - - - -Interacting with the GNO Shell - - -Executing Commands - -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 -. -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. - -The command arguments are parameters that -the command takes as data to work with (In Applesoft BASIC, -"HELLO WORLD" would be an argument for the PRINT -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. - -The examples below use the following -commands: - - - -qtime displays time in English text -echo prints arguments to the screen - - - -Examples: - - - -% qtime -It's almost five. -% echo II Infinitum -II Infinitum - - - - -At the simplest level the user enters -commands to the shell by typing them on the keyboard. gsh -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. - - - - -Commandline Editing - -The following sections provide a complete description of the -functions of the command-line editor with short examples -depicting how each editing key works. - -Throughout the examples the underline character, "_", -will be used to represent the current cursor -position. In addition, "OA" is used to represent the -Open Apple key and the term word 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 -bindkey function name which is used to remap -editing functions to new keys. This information is included for -reference purposes only. See for -more information on the bindkey command. - - -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. - - - - -Command Input - - -These command-line editor keys -deal with entering text directly on the command-line. - - - - - -RETURN - - - -Newline. - - -The return key is used to terminate -line input. gsh then interprets the command on the -line and acts accordingly. The position of the cursor on the -command-line does not matter. - - - - - - -CTRL-D - - - -(no bindkey name) - - -Causes gsh to exit if it was the first -character typed on the command-line. If there are still jobs -running in the background or stopped, gsh will display -the message "There are stopped jobs". If you press CTRL-D a -second time without an intervening command, gsh will -terminate all the jobs in the job list and exit. - - - - - - -CTRL-R - - - -redraw - - -Moves to the next line and re-displays -the current command-line. Use this to redraw the current line -if the screen becomes garbled. - - - - - - -CTRL-L - - - -clear-screen - - -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. - - - - - - - - - -Command Editing - - -These command-line editor keys -allow editing of the command-line text. - - - - - -CTRL-B - - -LEFT-ARROW - - - -backward-char - - -Moves the cursor one character to the left. You -cannot move past the first character on the line. If so, gsh -will output an error beep. - - - - - - -CTRL-F - - -RIGHT-ARROW - - - -forward-char - - -Moves the cursor one character to the right. You -cannot move past the last character on the line. If so, gsh -will output an error beep. - - - - - - -DELETE - - - -backward-delete-char - - -Deletes the character to the left of the -cursor. You can delete up to the first character on the -command-line. - - - - - - -CLEAR - - -CTRL-X - - - -kill-whole-line - - -Deletes all characters on the command line and positions the -cursor after the prompt. - - - - - - -CTRL-Y - - - -kill-end-of-line - - -Deletes all characters from the cursor to -the end of the command-line. - - - - - - -CTRL-D - - -OA-D - - - -delete-char - - -Deletes the character under the cursor. - - - - - - -CTRL-A - - -OA-< - - - -beginning-of-line - - -Moves the cursor to the beginning of the line. - - - - - - -CTRL-E - - -OA-> - - - -end-of-line - - -Moves the cursor to the first position past the last character on -the line. - - - - - - -OA-RIGHT-ARROW - - - -forward-word - - -Moves the cursor right to the last -character of the current word. - - - - - - -OA-LEFT-ARROW - - - -backward-word - - -Moves the cursor left to the beginning of -the current word. - - - - - - -OA-E - - - -toggle-cursor - - -Toggles input mode between insert and -overstrike. Overstrike mode is distinguished by a solid inverse -cursor and insert mode by a blinking '_' (underscore) 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. - - - - - - - - - -History Editing - - -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. - - - -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 gshrc file -that the GNO Installer creates. The lines saved to the history -buffer are kept between sessions. That is, when you exit -gsh, $SAVEHIST command-lines are saved to your -$HOME/history file. -When gsh is invoked again, all -command-lines saved in the history buffer will be available using -history editing keys. See -for more information on the HISTORY and SAVEHIST shell variables. - - - - - - -CTRL-P - - -UP-ARROW - - - -up-history - - -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. - - - - - - -CTRL-N - - -DOWN-ARROW - - - -down-history - - -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. - - - - - - - - - -Command, Filename, and Variable Completion - - -These command-line editor keys can -be used to complete filenames, commands and variables. - - - - - - -CTRL-D - - - -list-choices - - -Lists commands and pathnames that match the current word. - - - - - - -TAB - - - -complete-word - - -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, gsh appends a "/" -if the pathname is a directory; otherwise, it appends a space. - - - -Note that if there is more than one -match for the partial command, gsh will sound a -beep on the speaker. You can use the CTRL-D (list-choices) -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. - - - -If the FIGNORE environment variable -is set, gsh ignores filenames (when doing -completion) that end with any of the suffixes in $FIGNORE. -See -for more information regarding the FIGNORE environment variable. - - - - - - - - - - -Other Ways of Entering Commands - - -Terminal Input - - -An example involving the connection of a -terminal will be shown in - -but it is necessary to mention here that when -using gsh 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. - - - -If you will be using terminals seriously -then you should install the Remote Access package. - - - - -Script File - - -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. - - - -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 gshrc file presented in - -is an example of a script file. - - - - - - diff --git a/doc/refs/gsh/main.sgml b/doc/refs/gsh/main.sgml deleted file mode 100644 index be3a0f7..0000000 --- a/doc/refs/gsh/main.sgml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - -]> - - - - - - - -GNO Shell Users' Manual - - - - -Tim -Meekins - - - -Albert -Chin - - - -Jawaid -Bazyar - - - -Andrew -Roughan - - - -Devin -Reade - - - - - - - - -1991-1999 -Procyon Enterprises - - -%%%date%%% - - - - - - - - -&gsh-start; -&gsh-interact; -&gsh-product; -&gsh-commands; -&gsh-vars; -&gsh-prefix; -&gsh-errors; -&gsh-comply; -&gsh-termcap; -&gsh-glossary; - - diff --git a/doc/refs/gsh/prefix.sgml b/doc/refs/gsh/prefix.sgml deleted file mode 100644 index 5a354f6..0000000 --- a/doc/refs/gsh/prefix.sgml +++ /dev/null @@ -1,132 +0,0 @@ - - - -Prefix Conventions - - -When gsh is started, GS/OS assigns -certain values to individual prefixes, and usually the -gshrc -file also sets some prefixes. A total of 32 prefixes are -available to the user. The following list documents each prefix -and the purpose of each. - - - -If version 2.x of the ORCA languages are being used, then prefixes 9 and 13 -through 18 should mirror prefixes 1 through 7. For a discussion on -the differences in these two prefix sets, see your ORCA language reference -manual. - - - - -GS/OS Prefix Conventions - - - - - - - Number - Description - - - - - @ - - AppleShare prefix. If GNO resides on an - AppleShare volume, this prefix is set to the pathname of - the user's directory on the file server; otherwise, this - prefix is set to the same pathname as prefix number 9. - - - - * - - Boot volume prefix. It is not - possible to modify the value of this prefix with the - shell's prefix command. The only other way to - access this prefix is the GS/OS _GetBootVol call. - - - - 0 - - Prefix 0 is the current working - directory. It is the prefix that is changed by the cd - command. - - - - 1, 9 - - This is the directory in which the currently executing program resides. - In the shell, this is usually /bin. - The kernel sets these prefixes appropriately for each - program that is executed. - - - - 2, 13 - - These prefixes should be set to the pathname of the ORCA libraries - directory. - - - - 3, 14 - - These prefixes should be set to the same directory as contains - the ORCA/Shell program, ORCA.SYS16. - - - - 4, 15 - - These prefixes should be set to the pathname of the ORCA "shell" - directory. This is the directory that contains the files, - Editor, - SysTabs, - SysCmnd, - and so forth. - - - - 5, 16 - - These prefixes should be set to the pathname of the ORCA languages - directory. - - - - 6, 17 - - These prefixes should be set to the pathname of the ORCA utilities - directory. - - - - 7, 18 - - This should be set to a temp directory; one that can be used by various - programs for scratch files. Using a RAMDisk for this purpose can speed - up many programs. See also the renram5(8) and - mktmp(8) commands. - - - - -
-
- - -
diff --git a/doc/refs/gsh/product.sgml b/doc/refs/gsh/product.sgml deleted file mode 100644 index dab8939..0000000 --- a/doc/refs/gsh/product.sgml +++ /dev/null @@ -1,1007 +0,0 @@ - - - -Using the GNO Shell More Productively - - -And then one day, hooray! Another way for gnomes to say hooray! - - --- Syd Barret, The Gnome - - - - -What Does This Command Do? - - -If you are unfamiliar with what a -particular command actually does or what arguments it accepts, -you can check quickly by using the electronic manual. GNO/ME -includes a utility called man which displays the manual -pages for a command whose name you supply as an argument. The -man -utility uses another utility called more to actually -display the pages nicely on the screen. - - - - -Option Arguments - - -As mentioned in -, -arguments are passed to a command to extend its -usefulness. The arguments presented in the last chapter were -words, such as foo, bar and -foo.c. Standards exist under UNIX for -programs to accept command-line option arguments. Option -arguments (as the name suggests) are optional. There are two -standards, short options and long options. Short options are -characters that represent commands, whereas long options contain -the entire option name. - - - -Consider the following output of the CATALOG command -from ProDOS: - - - -/DEV -NAME TYPE BLOCKS MODIFIED CREATED ENDFILE - -FINDER.DATA $C9 1 21-OCT-91 22:38 14-APR-90 18:24 260 -FINDER.ROOT $C9 1 22-OCT-91 17:12 6-OCT-91 15:40 82 -GENESYS DIR 1 21-OCT-91 23:37 25-APR-91 15:46 512 -GSBUG DIR 1 21-OCT-91 23:38 19-JUL-90 16:48 512 -MERLIN DIR 2 22-OCT-91 2:50 30-APR-91 20:21 1024 -LIFEGUARD $B3 73 4-SEP-87 4:51 25-DEC-89 20:22 36608 -ORCA DIR 2 22-OCT-91 17:12 14-SEP-89 18:27 1024 -GNO DIR 2 22-OCT-91 17:12 13-AUG-91 16:36 1024 -FAST.ANIM DIR 2 21-OCT-91 23:44 11-MAY-91 10:50 1024 -MICOL DIR 2 22-OCT-91 3:10 14-JAN-90 2:46 1024 -SRC DIR 1 21-OCT-91 23:44 7-AUG-91 20:30 512 -NIFTYLIST DIR 2 21-OCT-91 23:44 29-JUL-91 4:04 1024 -MCSRC DIR 1 21-OCT-91 23:45 7-AUG-91 20:34 512 - -BLOCKS FREE:43923 BLOCKS USED:21185 TOTAL BLOCKS:65108 - - - -It is impossible to get any variation in -the format of this output. While the GNO/ME utility ls -serves the same purpose as the command CATALOG -from Applesoft BASIC, it has a wide number of options which can tailor the -output to specific needs. Here is how ls can be used to -give similar output to the CATALOG command: - - - -gno% ls -l -:dev -total 45k -drw--rd 0000 dir 512 Oct 21 23:45 1991 MCSrc -drw--rd 0000 dir 1024 Oct 21 23:44 1991 NiftyList -drw--rd 0000 dir 1024 Oct 21 23:44 1991 fast.anim -drw--rd 0000 dir 512 Oct 21 23:37 1991 genesys -drw--rd 0000 dir 1024 Oct 22 17:29 1991 gno -drw--rd 0000 dir 512 Oct 21 23:38 1991 gsbug -drw--rd 0000 dir 1024 Oct 22 02:50 1991 merlin -drw--rd 0000 dir 1024 Oct 22 03:10 1991 micol -drw--rd 0100 dir 1024 Oct 22 17:28 1991 orca -drw--rd 0000 dir 512 Oct 21 23:44 1991 src - - - -The -l -short option argument tells ls to format the -output in long format. ls supports only short options. -If ls did support long options, -the above command could be changed to ls +format-long. -This is clearly more descriptive of what function ls -will perform. For users to new to the UNIX environment, -long format options are more user-friendly. However, advanced UNIX users prefer -short options because of their brevity. - - - -As indicated above, ls has a wide -number of options available to format the output. Use the command -"ls -?" to get a short list of these -options. It is left as an exercise for the user to discover how -these options affect the output of ls. For a complete -description of the ls command and its options use the -command man ls. - - - -As an example of the usage and importance -of long options, the following is the result of the +help -option given to the coff utility. -Note the use of both short and long options: - - - -coff [-OPTIONS] filename [segment..] [loadsegment..] - - OPTIONS DESCRIPTION - -v [+version] display coff's version number - -D [+default] disable default options - -d [+asm] dump segment body in 65816-format disassembly - -T [+tool] interpret Toolbox, GS/OS, ProDOS, ROM calls - -x [+hex] dump segment body in hex (can be used with '+asm') - -l [+label] print expressions using labels (default is offsets) - -t [+infix] display expressions in infix form - -p [+postfix] display expressions in postfix form (default) - -m [+merlin] format of '+asm' to use merlin opcodes (default) - -o [+orca] format of '+asm' to use orca/m opcodes - -a [+shorta] assume 8-bit accumulator for disassembly - -i [+shorti] assume 8-bit index registers for disassembly - -s [+header] dump segment headers only - -n [+noheader] do not print segment headers - -f [+nooffset] do not print offset into file - -h [+help] print this information, then quit - filename name of file to dump - [segment] names of segments in file to dump - [loadsegment] names of load segments in file to dump - - - -The long options are much more descriptive, -and provide a very easy way to remember options of programs. If -an option passed to a shell utility program is not understood by -that program, you will generally receive an error message stating -that the option is not understood. If the program is -user-friendly, a brief list of supported options will also be -displayed. - - - - -Entering Multiple Commands - - -It is possible to give multiple commands to -the GNO shell for processing. To execute multiple commands, place -a semi-colon, ";", between them. The commands will be -executed sequentially in the order they are entered on the -command-line. Take care not to exceed the 4096 character -command-line buffer. It is possible to execute multiple commands -at the same time, this feature is discussed in -. - - - -As an example, -to run the echo command and the ls -command in succession, enter the following on the command line: - -% echo Running ls ; ls -l - - - - -The output of the preceeding command will -display the string "Running ls" followed by the output of the -"ls -l" command. - - - - - -Using Aliases - - -gsh provides a built-in command, -alias, which -allows any command you would type on the command-line to be -renamed. You are not limited to renaming a single command name. -Rather, you could rename an entire command-line, which could -allow you to use the name "backup" to execute the command -"backup +source /system +destination /tape.drive". -The alias command is also a very powerful means of -customizing your GNO environment to emulate other computing -environments. - - - -To emulate the ORCA environment, the -following aliases could be entered into your gshrc file, -or a script called orca.alias that -gshrc would run: - - - -alias copy cp -alias cat "ls -l" -alias catalog "ls -l" -alias move mv -alias rename mv -alias delete rm -alias type cat -alias prefix cd -alias create mkdir - - - -If you alias a string containing multiple -words, you must enclose the string in quotes, as done for the -catalog alias. gsh interprets the string as one value. If -you do not include both the opening and closing quotes, the alias -command will notify you of your error. - - - -You can view any alias' that are set by entering the -alias -command without any arguments. The setting of a -particular alias can be viewed by entering one argument -consisting of the name of the alias to view. - - - -If you wish to remove an alias, use the command -unalias -with the aliased name as the argument. To remove -the aliases from the orca.alias -file given above, you could do the following: - -%unalias copy cat catalog move rename delete type prefix create - - - - -Unlike the alias command, the unalias -command can take multiple arguments. See - -for further discussion of the alias and -unalias commands. - - - - - -Redirecting Input and Output - - -Most shell utilities write their output to -the screen. However, under GNO/ME, like ORCA, it is possible to -redirect that output to a file or a GS/OS device. The -output of the ls command above was imported into this -manual by redirecting it to a file. In addition to redirecting -the output of a shell utility, it is also possible to redirect -the input of that utility. Consider the following gsh -session: - - - -[1]% echo this is a test -this is a test -[2]% echo this is a test > file1 -[3]% cat file1 -this is a test -[4]% cat < file1 -this is a test - - - -In the example above, cat takes -input from "standard input". In command 3 above, cat -takes as an argument the filename file1 -and writes the contents -of that file to "standard output". Where no filename -argument is given, cat reads input from standard input and -writes the output to standard output. - - - -In the case of command 4 above, cat -contains no arguments and therefore reads from standard input. -However, gsh interprets the "<" redirection -operator and opens the file file1 -for use as standard input. Therefore, cat -will take its input from file1, -even though it thinks it is reading input from -standard input. This input redirection is transparent to the -utility, making it work with most shell utilities. - - - -Command 2 above created a new file called -file1. If this file had existed prior to the command then it -would have been erased. It is possible to append output to the -end of the file by using the ">>" -redirection operator. Consider the following gsh session: - - - -[5]% echo second line >> file1 -[6]% cat file1 -this is a test -second line - - - -Output that is sent to "standard error", -can also be redirected. The ">&" operator -redirects standard error to a file and ">>&" -appends standard error to the end of the file. Below is a summary -of the redirection operators: - - - - -GSH Redirection Operators - - - - - - stdin - stdout - stderr - - - - - redirect input from file - < - - - - - redirect output to file - - > - >& - - - redirect output to EOF - - >> - >>& - - - -
-
- - -Output can be redirected to a storage -device, printer, modem, or any other valid GNO or GS/OS device. -This provides a very powerful means of communicating directly -with these devices from within gsh. One quick and dirty -example of redirection allows a background version of gsh -to be run on a terminal connected directly through the modem -serial port: - - - -[1]% gsh < ttya > ttya >& ttya & - - -
- - -Pipelines - - -In addition to the redirection operators, -there is one additional operator which gives control over how -input and output are handled. The operator is a -pipeline, "|". -Pipelines allow the standard output of one -command to be used as the standard input to another command. This -is almost equivalent to running the first command with its output -redirected to a temporary file, then running the second command -with its input redirected from the temporary file, then removing -the temporary file. Pipelines make useful "filter" processes -where the output of one command can be sent to another command -which filters the output to whatever parameters you give the -second command. As an example, you could display all the -filenames with the character "a" in their name: - - - -[1]% echo foo > file1 -[2]% echo abc >> file1 -[3]% echo aabc >> file1 -[4]% echo GNO >> file1 -[5]% echo standard >> file1 -[6]% echo oof >> file1 -[7]% cat file1 -foo -abc -aabc -GNO -standard -oof -[8]% cat file1 | grep 'a' -abc -aabc -standard - - - -Pipelines are useful when you wish to view -lines of text in a file that contain a phrase, or if you want to -connect two programs directly, bypassing intermediate files. It -is also possible to connect multiple commands with multiple -pipelines. - - -Pipelines are frequently used for paging -output. The coff program mentioned previously prints the -output of an OMF disassembly to the screen but does not pause when a key -is pressed. In order to pause the display, the output must be -piped through a paging utility. The ORCA shell requires that you -wait for the entire command to complete execution before the -pipeline is processed. However, GNO/ME executes both commands -concurrently which allows the coff utility to execute -while the paging utility displays the program output. GNO/ME -comes with two page utilities, -more and less. -Complete desciptions of -coff, -more, and -less -can be found in the electronic manual using the man command. - - - - -Background Execution of Commands - - -A major benefit of GNO/ME is multitasking. -Multitasking is a means of running multiple applications at once -(not literally but very close). On the Apple IIGS, GNO/ME -accomplishes pre-emptive multitasking by switching among -applications that are running in the background. Any GNO/ME -utility can be run in the background. Applications running in the -background generally run for the same period of time (GNO/ME -switches between applications 20 times a second). - - - -To background a shell utility, place the "&" -character at the end of the command-line. The -GNO shell displays a unique process ID and job number for each -backgrounded command. - - - -It is possible to use the background character "&" -to separate commands as with the ";" character. -Each command with a trailing "&" -is executed in the background. - - - -Up to 32 processes can executed concurrently under the GNO Kernel. - - - -Warning: When you exit the GNO Shell all -processes will be terminated including any you may have running -in the background. - - - -Below is a sample session with background tasks: - - - -[5] script> ps - ID STATE TT MMID UID TIME COMMAND - 1 ready co 1002 0000 0:45 NullProcess - 2 ready co 1007 0000 0:05 gsh - 138 running co 1006 0000 0:00 ps -[6] script> cmpl +p script.c keep=script > outputfile & -[1] + 141 Running cmpl +p script.c keep=script & -[7] script> ps - ID STATE TT MMID UID TIME COMMAND - 1 ready co 1002 0000 0:45 NullProcess - 2 ready co 1007 0000 0:05 gsh - 141 waiting co 1006 0000 0:00 cmpl +p script.c keep=script - 142 ready co 100B 0000 0:00 5/cc - 143 running co 100D 0000 0:00 ps -[8] script> cmpl +p script.asm keep=script1 > output2 & ps ; ls -s -[2] - 145 Running cmpl +p script.asm keep=script1 & - ID STATE TT MMID UID TIME COMMAND - 1 ready co 1002 0000 0:45 NullProcess - 2 ready co 1007 0000 0:05 gsh - 141 waiting co 1006 0000 0:00 cmpl +p script.c keep=script - 144 ready co 100E 0000 0:07 5/linker - 145 ready co 100D 0000 0:00 cmpl +p script.asm keep=script1 - 146 running co 100F 0000 0:00 ps - 147 ready co 1011 0000 0:00 5/asm65816 - 3 barf 1 outputfile 6 script.asm 1 script.root - 1 foobar 19 script 3 script.c 36 script.sym - 1 output2 6 script.a 6 script.mac 1 typescript -[9] script> cp script.asm script2 & -[3] 150 Running cp script.asm script2 & - -[2] - Done cmpl +p script.asm keep=script1 & - -[1] + Done cmpl +p script.c keep=script & - -[3] - Done cp script.asm script2 & - -[10] script> ps - ID STATE TT MMID UID TIME COMMAND - 1 ready co 1002 0000 0:45 NullProcess - 2 ready co 1007 0000 0:05 gsh - 151 running co 1006 0000 0:00 ps - - - -The first command line sends the -ps -command to the shell. -ps -lists the processes currently being executed by the -GNO kernel. The processes named gsh and -NullProcess -are always present. For a complete description of the -ps command, see -. - - - -When a command is executing in the -background, keyboard input is not sent to it. However, output is -still treated in the same way. If the command sends output to the -standard output or standard error, the screen will become -cluttered. Try this example: - - - -[1]% ls -l& -[2]% ls -l - - - -Both the output of commands #1 and #2 will -be sent to the screen. After command #1 is entered and you begin -typing command #2, you will see the output of the first -"ls -l" -command being sent to the screen while you enter command #2. -Utilities which produce output should have their standard output -and standard error redirected to a file when they are executed in -the background. See -. - - - -Executing commands in the background -hinders the performance of the Apple IIGS. This is not too -noticeable when one or two commands are being executed but -performance will degrade more noticably as more commands are -started. The Apple IIGS was not designed as a multitasking -computer so the performance of GNO/ME should be understandable. -If you have an accelerator (such as the Transwarp GS or Zip GS) -installed, performance of multiple tasks will be acceptable. - - - - -Job Control - - -Now that command backgrounding and -multitasking have been discussed, some more definitions can be -mentioned. A process is a command which has been submitted to the -shell for execution. -gsh contains a set of special -commands which make dealing with processes much easier. gsh -treats each command entered at the command-line as a job, -where a single job may contain multiple processes. For example: - - - -% ls one command, one process, one job -% ls ; ps two commands, two processes, two jobs -% ls & ps two commands, two processes, two jobs -% ls | more two processes, one job - - - -When a job is run from the shell, it can be -in several modes of operation. Jobs can be in any of three -states: "running", "stopped", or "done". A job can -be executing in either the foreground or the background. - - - -Commands exist to place a job in any mode -of operation. When a job is run directly from a command-line it -is running and it is in the foreground. Since the command-line -cannot be accessed, two special keys have been defined: -^C kills the job and -^Z will stop the job. When the job is killed, it is -gone forever, but a stopped job can be restarted. When a job is -stopped, the kernel suspends each of the processes in the job. - - - -Jobs that are running in the background or -have been stopped can be accessed using several built-in -commands. The bg command will place a job in the -background, placing it in the running state if necessary. The -fg -command will similarly place a job in the foreground, and the -stop -command will stop a backgrounded job. The kill command -will terminate a job. - - - -Each time job control is accessed, a -special job status line is displayed following the command. The -first item on the left in brackets is the job number. Next is a -single character, either a '+', '-', or a blank. The '+' designates the -currently accessed job, the '-' is the previously accessed job, and all -other jobs are not specified. The -jobs -command will display a list of all jobs. - - - -Have another look at the example in -; -now more of the notation will be understandable. - - - -Each of the special commands, -bg, -fg, -stop, and -kill, -take an argument which specifies the job to perform the -operation on. The argument is either a number specifying the -process id, or a '%' followed by one of the following: -'+' or '-' for the current job, -a '-' for the previous job, -or a number to specify any -specific job. If nothing follows the '%' or the argument is -missing, then the current job is the default. - - - -There is one additional way that a job may -be stopped. If the job is placed in the background and it -attempts to read from the console, the job will be stopped, and -the status line says "(tty input)" as the reason for the job -being stopped. The job should be foregrounded so that the user -may enter input to the program. It can then be placed back in the -background as necessary (with ^Z and -bg). - - - - -Working with Pathnames - - -To move easily to directories descended -from the home directory, gsh provides the "~" -(tilde) character. This character represents the home directory. -Therefore, if your home directory was -:hard:gno:home:root, -you could use the command -"cd ~" to -move to the home directory (note that -"cd" -without any arguments -also defaults to the home directory). To move to subdirectories -of the home directory, you could use the command -The tilde character is recognized by gsh before -the command is interpreted. - - - -Another special sequence, "..", -when used as part of a pathname, will strip the last path between -pathname seperators. For example, the pathname -"/dev/gno/.." would be expanded to -"/dev". -The "/gno" portion of the path -is stripped as it is before the periods. -This provides an excellent way to backup into your directories. -"Backing up" is limited by the volume directory of the -device being used. - - -Additionally, the character "." -can be used to signify the current directory. - - - - -Pathname Expansion - - -Many utilities supplied with gsh -take, as an argument, a filename or filenames. The shell utilities -cat, -ls, -grep, and -cp -can take multiple filenames as arguments. If you wish to invoke any -of these utilities on filenames that have a sequence of -characters in common (ie. -AND, -APPLE, -SHK, -TXT, -FILE2, -FILE3, -etc), gsh provides special characters, -called regular expressions or wildcards, which match multiple -filenames without having to enter all filename arguments -manually. - - - - -GSH Wildcard Operators - - - - - * - Matches any string of characters. - - - ? - Matches a single character. - - - [abc] - Matches any of the characters enclosed in brackets. - - - [^abc] - Matches any of the characters not enclosed in brackets. - - - [a-c] - Matches the ascending sequence of characters enclosed in brackets. - - - -
-
- - -This method of matching filenames is known -as "globbing". gsh performs globbing on the word -prior to executing the command. The following gsh session -illustrates file globbing: - - - -[1]% cd /dev/gno/utilities -[2]% ls -:dev:gno:utilities -CONV Crunch CrunchIIGS DeRez DiskCheck -DumpObj Duplicate EMACS Equal Express -Files LinkIIGS MakeBin MakeDirect OrcaDumpIIGS -Prizm ResEqual Search canon choose -clrff cmdfix coff compact count -detab dir dirff dumpfile eject -emacs.doc emacs.hlp emacs.rc emacs.tut help -init join link macgen makelib -mem online pageeject pause pwd -src -[3]% ls e* -:dev:gno:utilities -EMACS Equal Express eject emacs.doc -emacs.hlp emacs.rc emacs.tut -[4]% echo *r *m -dir Prizm mem -[5]% echo *i* -cmdfix CrunchIIGS Prizm DiskCheck Duplicate Files init -join LinkIIGS makelib MakeBin MakeDirect link dirff -dumpfile online OrcaDumpIIGS dir -[6]% echo NoMatch* -No match. -[7]% echo [a-f]* -coff canon cmdfix compact Crunch CrunchIIGS DeRez DiskCheck -DumpObj Duplicate EMACS emacs.doc emacs.hlp emacs.rc -emacs.tut Equal Express Files choose clrff count detab CONV -dirff dumpfile eject dir -[8]% echo [a-fs-t]* -coff canon cmdfix compact Crunch CrunchIIGS DeRez DiskCheck -DumpObj Duplicate EMACS emacs.doc emacs.hlp emacs.rc -emacs.tut Equal Express Files choose clrff count detab -Search src CONV dirff dumpfile eject dir -[9]% echo emacs?* -EMACS emacs.doc emacs.hlp emacs.rc emacs.tut -[10]% echo [^a-f]* -Prizm help init join LinkIIGS makelib MakeBin MakeDirect -link mem ResEqual Search src online pageeject pause -OrcaDumpIIGS pwd macgen -[11]% echo [^a-fs-t]* -Prizm help init join LinkIIGS makelib MakeBin MakeDirect -link mem ResEqual online pageeject pause OrcaDumpIIGS pwd -macgen -[12]% echo ??? -mem src pwd dir -[13]% echo ? -No match. -[14]% echo "???" -??? -[15]% do you have a light? -No match. - - - -As can be seen by the above example, -character matches are case insensitive. The ProDOS file system -treats the filenames "file" and -"FILE" as the same -file. gsh recognizes this and does not detract from the -underlying file system. - - - -File globbing makes passing arguments to -commands much easier and much more powerful. You could easily use -"*.c" as an argument in a number of ways: - - - -[1]% ls *.C lists all filenames ending in ".C" -[2]% cc *.C compiles all files ending in ".C" -[3]% more *.C displays contents of all files ending in ".C" - - -
- - -Quoting Special Characters - - -Beginning with Apple IIgs System Software 6.0, GS/OS is -able to read files from Macintosh -computers. The Macintosh uses a filesystem known as HFS, which -allows filenames to contain any character except the colon (":"). -Because a filename such as "emacs?*" is valid under HFS, care must be taken or -unexpected results will occur. The word "emacs?*" was -used as a regular expression above to specify a list of filenames -beginning with the word "emacs" and one or more -trailing characters. gsh does provide a way to pass an -argument which contains special shell characters to a command. -This is known as quoting an argument. There are three different -ways to quote an expression: - - - - - - -The single quote will quote everything -between the single quote marks. Thus, to display the contents of -a file on an HFS volume named "emacs?*", use the -command: -more 'emacs?*' - - - - - -The double quote will quote everything -between the double quote marks except variables; -echo "emacs?* $home" -will product "emacs?* /dev/gno". -See -for more on variables. - - - - - -The backslash is used to quote one -character. To pass "emacs?*" as a regular using the backslash, -one could enter the following: -ls emacs\?\* - - - - - - -One additional purpose of the quoting -mechanism built into gsh is to add spaces to command -arguments. Each command and its arguments is separated by a -space. Multiple spaces between arguments are treated as one -space. Thus, consider the following: - - -% echo a b c -a b c -% echo 'a b c' -a b c - - - - -How gsh Finds a Command - - -gsh has a special variable, PATH, which -specifies the directories and order of directories to search for -shell utilities. This variable is often setup in the gshrc -file although it can be changed as often as needed. The purpose -of the PATH environment variable was discussed in -. - - - -When gsh starts up, it searches all -directories specified in the PATH environment -variable and establishes a table of all commands, -called a hash table. Because of this table, gsh -"knows" where a command is and can execute the command -much faster than searching through all directories every time the -command is entered. - - - -The search process begins with alias names. -See . -If an alias is -found that matches the command, the alias is replaced with its -value and the command-line is again parsed. If it was not an -alias, gsh checks to see if it was a special built-in -utility. The search process then searches for the name in the -hash table. If an entry is found in the hash table, the path name -of the command is retrieved and the command is executed. If an -entry is not found, the current path is searched. If the command -name is not found, an error results. - - - -When the PATH environment variable is -changed, gsh does not automatically recreate the command -hash table. You need to issue the command -rehash to -recreate the hash table. The more pathnames specified, the -greater the delay in starting gsh and in invoking the -rehash command. -The following shell script changes PATH -and invokes the -rehash command in one step. - - - -echo Resetting PATH variable $PATH to $1 -set path=$1 -rehash - - - -The $1 variable will be expanded with the first argument -passed to the script. - - - -rehash -should also be used if a new utility is copied to one of the -directories specified in the PATH variable. Of course, it is -possible to specify the absolute pathname of any command, but -this is undesirable if the command is frequently used. - - - - -
diff --git a/doc/refs/gsh/start.sgml b/doc/refs/gsh/start.sgml deleted file mode 100644 index c50353f..0000000 --- a/doc/refs/gsh/start.sgml +++ /dev/null @@ -1,215 +0,0 @@ - - - -Getting Started with the GNO Shell - - -Computer operating systems are among the most complex objects created by -mankind... - - --- Douglas Comer, Operating System Design, the XINU Approach - - - -Introduction - - -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. - - -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. - -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. - -The way this manual is presented allows the -complete beginner to simply work through the chapters in a -chronological prder. - -familiarises the user with -entering basic commands whereas the more powerful GNO/ME features -are introduced in -. - -documents the commands which are built into the GNO Shell and - -explains shell -variables which give the user control over how their installation -functions. - - - -Customizing the Shell Environment - -When gsh, the implementation of the -GNO Shell, is executed, it reads in and processes the gshrc -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. - - - -The following is a sample gshrc file -(line numbers have been added for convenience): - - - - -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 - - - -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. - -The setup file, gshrc, 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 gshrc -file, or if you are already familiar with the editor vi -you can use this utility after launching the GNO kernel. - -Line 9 is the statement that we are -concerned with. Hard represents the name of your -particular hard drive volume where you have installed GNO/ME. - - -9 set path=":hard:gno:bin :hard:gno:usr:bin" - - -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: - - -9 set path=":hard:gno:bin:hard:gno:usr:bin :hard:system" - - -What you have just done allows the GNO -shell to find the Finder 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 -. - - -For now, the remaining lines of the gshrc -file do not need editing. As you gain an understanding of the -system you may wish to make further changes to the gshrc -file. Make sure you save the file before you exit the editor. - -It is possible to modify these instructions -while the GNO shell is active, but any changes will be lost upon -exiting gsh. If you wish the changes to remain effective -for the next session you must add them to the gshrc file. - -By customizing the gshrc file it is -possible to make the GNO environment more like UNIX, the ORCA -environment, or something completly different. Customization of -the GNO environment leads to greater user productivity. - - - - -Invoking gsh - -GNO/ME can be launched from a program -launcher, such as the System 6.0 Finder. Launch the GNO Kernel -program, kern by double clicking on it. The GNO kernel -automatically executes the supplied GNO shell, gsh. - - -The prompt, -gsh# -indicates that gsh is ready to receive input from the -keyboard. - -To start a new gsh from the -command-line simply type gsh. -If multiple copies of the gsh -process are undesirable, use the command source gsh -instead. This is useful for testing changes made to the -gshrc file. -source is a built-in comand which is discussed in -. - - - - diff --git a/doc/refs/gsh/termcap.sgml b/doc/refs/gsh/termcap.sgml deleted file mode 100644 index 2ee7b89..0000000 --- a/doc/refs/gsh/termcap.sgml +++ /dev/null @@ -1,99 +0,0 @@ - - - -Termcaps - - -"Termcap" is short for "terminal capability", -and is the name of a database which applications can -use to do full-screen output on any kind of terminal. The termcap -database contains records for the various supported terminals, -each of which contains fields of the form - -cap=value - -Cap is a two-letter code that -represents a cursor movement, screen mode change (such as inverse -or underline mode), and various other things. -Value is -usually a sequence of control characters that is sent to a -terminal to initiate the desired action. -Value can also be -'boolean', or yes/no, values, for such things as "Does this -terminal support cursor movement?". The termcap file is -documented in termcap(5) manual page. - - - -The termcap library does not specifically require GNO/ME. - - - -The following terminal types are supported in the GNO/ME termcap file: - - - - - - - - - gnocon - GNO Console - - - CONSOLE - GS/OS .console driver - - - ptse - Proterm Special Emulation - - - vt100 - DEC VT-100 terminal - - - ansisys - MS-DOS ANSI.SYS - - - xerox820 - Xerox 820-II CP/M terminal - - - iw1 - Apple ImageWriter I printer - - - iw-alt - Alternate ImageWriter I printer - - - deskjet - Hewlett Packard DeskJet 500 printer - - - - - - - -The printer entries allow a formatted -electronic manual page to be sent to the printer. For example, -the following script would bring up the manual page for ls, -format it for the DeskJet 500, and print it with italics and -boldface: - - - -set temp=$term -set term=deskjet -man $1 > .ttyb -set term=$temp - - - diff --git a/doc/refs/gsh/vars.sgml b/doc/refs/gsh/vars.sgml deleted file mode 100644 index 68a9060..0000000 --- a/doc/refs/gsh/vars.sgml +++ /dev/null @@ -1,475 +0,0 @@ - - - -Shell Variables - - -Using Shell Variables - - -gsh supports variables in the -shell environment. These variables can be used by any shell -utility or script. Many EXE files and shell scripts predefine -certain shell variables that contain formatting options or other -options for a specific utility. As an example, the ls -utility looks for the variable TERM that defines the -terminal type currently being used. When ls is started, it -reads the value of the TERM variable and avoids printing Apple II specific -MouseText characters if the set terminal type does not support them. - - - -gsh has set aside certain variables -for its specific use. Shell utilities should be aware of these -variables and use them appropriately. Use caution when changing -shell variables, because the change could affect more than just -the shell. - - - - - -Scope of Shell Variables - - -There are two types of processes that are -involved in any discussion of a multitasking system. The original -process, gsh for example, is called a parent process. -If gsh -invokes a process, such as -ls, -cp, or -mv, -that process is called a child process. It is possible for any -process to define a variable. These variables will not be made -available to other processes unless the program that defined the -variable specifically makes them available. - - - -The export command makes variables -defined by one process available to its children. See the example -gshrc shell script shown in -. -In the case of the shell, most of its -variables are exported and, therefore, all shell utilities can -read the value of a shell variable. However, programs cannot -change the value of a shell variable. In general, executables -share their environment with that of the shell, so that a utility -can change variables in its parent's environment. This allows -communication between programs and the shell. - - - - - -Description of Predefined Shell Variables - - -The following variables have special meaning to gsh. -Shell variable names are not case sensitive. - - - - - - -$0, $1, $2, ... - - - -String values that contain the arguments to -a shell script. Variable 0 contains the name of the -script. The first argument begins with variable 1 and so -on. - - - - - - -$< - - - -When encountered, the variable is expanded -using a value obtained from standard input. This provides -a means of obtaining user input in script files. Note -that the shell variables are expanded before the -command-line is executed -(See .) -When prompting the user for input, -be sure that the prompt is in a separate command-line -than the $<. Also, if the user wishes to enter a value -with spaces, he must quote what he types with -double-quotes. - - - - - - -$ECHO - - - -A boolean value that, if defined, will -cause commands in a shell script to be echoed to standard -output. - - - - - - -$FIGNORE - - - -This variable, if set, contains a list of -filename suffixes. When doing command or filename -completion, gsh will ignore any filename with a -suffix listed in FIGNORE. For example, you might want to -set fignore=".A .ROOT .SYM" -to ignore object files and other compiler droppings. - - - - - - -$HISTORY - - - -A numeric value that contains the number of -history commands (command-lines) remembered. If the value -is 0 or HISTORY is undefined, all commands will be -remembered. Previous command-lines can be called back -with the UP-ARROW and DOWN-ARROW. -(See .) - - - - - - -$HOME - - - -The HOME directory is the main directory of the -shell; it is the directory gsh defaults to when it -starts. The tilde ("~") character can be used -as a shorthand method of accessing the HOME directory -(as discussed in ). - - - - - - -$IGNOREEOF - - - -A boolean value that, if enabled, will -prevent ^D from exiting the shell. - - - - - - -$NOBEEP - - - -A boolean value that, if set, will prevent gsh -from sounding the speaker when errors occur while editing -a command-line. - - - - - - -$NODIREXEC - - - -A boolean value that, if set, will disable gsh's -feature of treating directory names as commands; i.e. if -a directory is specified as a command, gsh will -move to that directory as though the cd command was being -used. - - - - - - -$NOGLOB - - - -A boolean value that, if set, will -disable filename globbing. Command arguments will be -passed to their commands "as-is", without any -wildcard expansion. - - - - - - -$NONEWLINE - - - -A boolean value that, if set, will disable -extraneous carriage returns being output before and after command -execution. Examples given in this manual have -this option set. - - - - - - -$PATH - - - -A string value that defines the pathnames -where shell scripts, EXE utilities, and SYS16 programs -can be found -(See ). -Because GS/OS uses colons as separators in pathnames, gsh -cannot allow colons to be used as separators in the PATH -variable, as UNIX does. If one of the path entries has a -space within it (which is possible with the HFS FST), -then the space should be quoted with a backslash, "\". - - - - - - -$PRECMD - - - -This is actually a special alias and not an environment -variable. -If PRECMD is defined then its value is taken as a a command to be executed -just before gsh prints the prompt for a command line. For example, -alias precmd qtime will print the time in English -text before every prompt. - - - - - - -$PROMPT - - - -When gsh prompts you to enter a -command, the prompt that appears before the cursor can be -customized for your gsh environment. If PROMPT -is undefined, the default prompt of "% " is -used. The prompt string recognizes certain character -sequences in the PROMPT variable and interprets them accordingly. -The following are the special characters: - - - -Prompt Special Characters - - - - - %h, %!, ! - current history number - - - %t, %@ - current time of day in 12 hour am/pm format - - - %d, %/ - current working directory - - - %~ - current working directory with tilde replacement - - - %c, %C, %. - trailing component of current working directory - - - %S, %s - inverse mode on (%s) and off (%S) - - - %U, %u - - begin and end underline mode (only on terminals that support - underline; gnocon will use inverse mode instead) - - - - %% - the single "%" character - - - %n - user name (as defined by $USER) - - - %W - date in mm/dd/yy format - - - %D - date in yy-mm-dd format - - - \n - newline - - - \r - carriage return - - - \t - horizontal tab - - - \b - bell - - - -
-
-
-
- - - -$PUSHDSILENT - - - -If this variable is defined, gsh -will not print the directory stack after any of the -directory stack commands. -(See pushd and popd in -.) - - - - - - -$SAVEHIST - - - -A numeric value that contains the number of -commands to save to disk when exiting gsh. These -commands are then read back in when gsh is -restarted which allows old commands to be reused. If the -value is 0 or SAVEHIST is undefined, no commands will be saved to disk. - - - - - - -$TERM - - - -This variable contains the name of the -terminal emulation that the shell and other applications -should use. By default, it is "gnocon". When -the shell encounters a set term command, -it automatically calls the the tset to reload the -termcap information. -See also . - - - - - - -$TERMCAP - - - -This variable specifies the location of the termcap -file. The shell and other applications look for termcap -in the /etc directory, but if TERMCAP is set, -the fully specified termcap file is used instead. This -allows users to install custom termcap entries. -See also . - - - - - - -$USER - - - -A string that represents the login name of the -current user. This variable is usually set by login(8). - - - - -
- -
- - -Accessing Shell Variables - - -Shell variables are defined or changed with the -set command. The unset command -is used to delete a variable. -See -for more information on the set and -unset commands. - - - -To access shell variables from the command -line or a shell script, use the character "$" followed -by the variable name. The dollar sign character will expand the -variable to its value. If you wish to use the dollar sign -character in a string from the command line, remember to enclose -it in single quotes or use the "\" escape character. If -you use double quotes, the shell will try to expand the variable. -To differentiate the variable name from characters that may -immediately follow it, the variable name may be optionally -surrounded with braces, "{" and "}".This -provides a very powerful way of user interaction with shell -scripts. - - - - -