home *** CD-ROM | disk | FTP | other *** search
- The Elfshell
- Christopher Alexander North-Keys
- Spring 1988 through Summer 1990, etc.
-
- To enable the elfshell:
-
- Copy this directory, .elven, into your home directory
- Move the file ~/.elven/.cshrc to ~/.cshrc
- Make any needed alterations.
-
- Warning: this set of scripts is not officially supported,
- and is of a level of complexity far higher than
- most other sets of initialization scripts.
-
- Abstract
- --------
- This set of shell configuartion scripts was developed with the following goals:
-
- o title-bar control in windowing environments.
- o achieve effect of ".login-first" execution.
- o optimize startup time for subshells, and non-interactive shells.
- o protect against mistakes made in non-interactive shells.
- o optimize access to common values via `setenv'
- o avoid overlaying standard commands and builtins.
- o tracking of shell depth.
- o simplification of shell re-sourcing.
- o economy of standard alias set.
- o exportation of aliases into ~/bin shell scripts.
- o portability.
- o use of features like arch, mach, and less in environment iff extant.
-
- The basic problem had to do with an inconsistancy: all shells could generally
- depend on ~/.login having been run, EXCEPT the login shell. This reveals the
- purpose of ~/.login to be one of checking mail, etc., rather than setting a
- consistant environment. Hence a file ~/.cshlc was created for setenv commands,
- and handled so as to only run once per login. This functionality is now within
- the ~/.elven/environment file.
-
- (Initially sourcing ~/.login from inside ~/.cshrc was tried, but one then
- needed to prevent it from being sourced a *second* time. Less than
- elegant.)
-
- Ideally one would like to configure a shell, core dump it, and `undump' the
- image into a new, pre-initialized program. So far attempts have failed. A
- completely new shell would likely be required to fix this kind of thing
- elegantly.
-
- In the meanwhile, we have the following:
-
- Module Edit-safe Description
- ------------------ --------- ----------------------------------
- cshrc no Install this as ~/.cshrc
- aliases no Basic aliases.
- aliases.local yes Sourced by `aliases'.
- environment no Basic environment.
- environment.local yes Sourced by `environment'.
- interface no Sets TTY and INTERFACE in the environment.
- session yes Per-shell session-oriented settings.
- setheaders no Set title-bar aliases from INTERFACE.
- sunview no Exhaustive sunview window aliases list.
- inpath no Executable C-shell script.
-
- Recommended bin scripts (see ~/bin or equiv)
- -----------------------
- l, li, lf, L, L., search
-
- Modularity, or where to put what
- --------------------------------
- aliases: `aliases.local' (addition to `aliases')
- setenv: `environment.local' (addition to `environment')
- umask: `environment.local' (addition to `environment')
- set, stty: `session'
- tset: `interface` (with extreme caution)
-
- Timings on rev 29, Sun 3/150 server, SunOS 4.0.3:
- Self: 5.58 seconds
- self: 1.88 to 2.64 (norm 2.0) seconds
-
- Timings on rev 30, Sun SPARC server, SunOS 4.0.3:
- Self: avg 6 seconds (6 to 11 seconds observable)
- self: avg 1 second (1 to 2 seconds observable)
-
- History:
-
- .cshrc.v3: rev 3.1 (Maerz.1988) .cshrc sourcing .login.
- .cshrc.v4: rev 4 (Jun.1988) begin .cshrc_mine, remove hist'cal aliases.
- : rev 7
- : rev 15
- : rev 21 (Juli.1989 - Januar.1989).
- : rev 25 (Mai.1990)
- : rev 27 (Juni.1990)
- : rev 28 (Juli.1990)
- : rev 29 (August.1990) Added shell-variant prompt support
- : rev 30 (Maerz.1991) Added ~/.elven/inpath, prog' exist' chks.
-
- Good Luck.
-
- -Christoph. Alex. North-Keys
- Donnerstag.d.4.Januar.1989
-