home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / mint / ksh_v04a / readme.st < prev    next >
Encoding:
Text File  |  1991-02-23  |  6.3 KB  |  205 lines

  1.                         MiNT Public Domain KornShell
  2.  
  3.  
  4. This archive should contain the following files;
  5.  
  6.  
  7.     ksh.tos         The ksh executable itself.
  8.  
  9.     ksh.1           an nroff style manual page,
  10.  
  11.     profile.ksh     my standard login script as an example
  12.     kshrc.ksh       likewise, my shell startup script,
  13.     logout.ksh      and logout script.
  14.     pushd.ksh       An implementation of pushd, popd and dirs for ksh.
  15.  
  16.     examples.lzh    Some other example ksh shell scripts.
  17.     bugs            The current known bugs list.
  18.     change.log      For those of you with a previous version, this is
  19.                     the log of the changes I have made.
  20.  
  21.     readme          Eric Gisin's original readme.
  22.     readme.st       This file.
  23.  
  24.  
  25. Installation.
  26.  
  27.  
  28. This is how I have my software set up, there will be other way's of
  29. doing this, but this will do as an example.
  30.  
  31. 1)  Copy ksh.tos profile.ksh kshrc.ksh logout.ksh and pushd.ksh into
  32. the directory with the mint.prg.
  33.  
  34. 2)  Edit profile.ksh and kshrc.ksh so that the paths mentioned match
  35. your environment. Remember that ksh uses / instead of \ in all of it's
  36. path related variables.
  37.  
  38. 3)  Either;
  39.  
  40.     i)  copy ksh.tos to init.prg.
  41.     ii) edit init.rc to include the line
  42.             ksh -L
  43.         where -L tell ksh to go through it's login routine.
  44.  
  45. and execute a new mint. If all is well you should be in ksh.
  46.  
  47.  
  48. Changes from the original Unix version.
  49.  
  50.  
  51. 1) I've changed the seperator character within the PATH variable from
  52. ':' to ';' to avoid clashes with drive labels.
  53.  
  54. eg. use
  55.     export PATH="/bin;/etc"
  56. instead of
  57.     export PATH="/bin:/etc"
  58.  
  59.  
  60. 2) On startup ksh will only look for profile.ksh ( in the Current
  61. directory ) if passed the -L flag, for login, otherwise only the file
  62. pointed to by $ENV will be executed.
  63.  
  64. if the parent process id == 0 ( ie. if ksh has been run as init.prg ),
  65. ksh runs as though it was a login shell, executing ./profile.ksh.
  66.  
  67.  
  68. 3) You don't have to type the file name extension of a program for ksh
  69. to find it, ksh now hunts through all the possible executable file
  70. name extensions ( .prg, .ttp, .tos, .app, .ksh ) to find the  program.
  71. Shell scripts are denoted by the extension .ksh.
  72.  
  73.  
  74. 4) ksh only accepts unix style pathnames, but it automatically converts
  75. every / in a programs command line to a \. Now this is just right for
  76. most progs, however there had to be an exception. Zoo sometimes wants /
  77. or // on it's parameter line, as does sed. To get around this, I've
  78. added an extra set option. set -o unixpath will pass the unix style
  79. commandline through to the sub program. set +o unixpath reset this.
  80.  
  81. An easier alternative is;
  82.  
  83. unixpath can now be used as a prefix to a command. This command will be
  84. executed without the normal unix_to_dos command line conversions. this is
  85. useful for programms such as zoo or sed that like to see /'s on their
  86. command line rather than \'s.
  87.  
  88. ( PATH is also affected by this translation, since most Atari programs
  89. don't quite know what to do with a / in the path. This is also disabled
  90. by unixpath ).
  91.  
  92.  
  93. 5) The ulimit command now works as expected, ulimit can be used to set
  94. up the child process limit's in a similar way to limit.ttp.
  95.  
  96. options are
  97.     ulimit [-dmt] [limit]
  98. where
  99.     -d : set the limit on the maximum Malloc'd memory for a process
  100.     -m : set the total maximum memory allowed for a process
  101.     -t : set the mamximum amount of CPU time allowed for a process
  102.  
  103.  
  104. 6) The cursor key's now scroll through the history list, and along the
  105. current line. Insert runs a complete command, and clr/home runs a list
  106. command, rather like gulam ( but not quite as smart yet ). Undo does a
  107. kill-line.
  108.  
  109.  
  110. 7) Ksh is now aware of a few more variables.
  111.  
  112. CDPATH
  113.  
  114.     CDPATH is now implemented. This gives a search path for the cd
  115.     command, first the current directory is searched for the
  116.     subdirectory, if this fails, then every directory in the CDPATH
  117.     environment variable is also searched for this subdirectory. CDPATH
  118.     is a semi-colon separated list.
  119.  
  120.     to use just type;
  121.         CDPATH="d:/usr;e:/mint"
  122.     etc.
  123.  
  124. LOGOUT
  125.  
  126.     On exit, the login shell will look for the LOGOUT variable, and
  127.     if set will try to execute the the file named. This means that,
  128.  
  129.         LOGOUT='~/logout.ksh'
  130.     has the same effect as
  131.         trap ". ~/logout.ksh; exit" EXIT
  132.  
  133. HISTFILE
  134.  
  135.     The history file mechanism is begining to take shape. $HISTFILE
  136.     now specifies the history save file. This file is opened and
  137.     closed at every command, now on my system using the ICD disk
  138.     cache I get such a negligable performance degradation that this
  139.     seems quite reasonable. Let me know if it causes too many
  140.     problems. The impetus for this level of file security is mgr,
  141.     with multiple shells running I needed to close the file between
  142.     writes, otherwise only the last shell run could access the
  143.     history file. I couldn't get MiNT's file locking to do the job.
  144.  
  145.     Be warned, the history file will keep growing, it's up to you to
  146.     trim it.
  147.  
  148.     HISTSIZE is not implemnted, yet. 
  149.  
  150. MINT_VERSION
  151.  
  152.     MINT_VERSION equals the version number of the currently running
  153.     mint. Set to be readonly.
  154.  
  155. UNIXPATH
  156.  
  157.     This variable is used internally to comunicate between levels
  158.     of the shell, don't change it! thing's may break.
  159.  
  160. TEMP
  161.  
  162.     All of ksh's temporary files ( mainly used for here
  163.     document's ) use this directory. Otherwise the CWD is used.
  164.  
  165. PPID
  166.  
  167.     Like in the real ksh PPID is now set to equal the process id
  168.     of the parent process.
  169.  
  170.  
  171. 8) I've added some of the extra ksh variable formatting commands to
  172. typeset, ie.
  173.  
  174.     -l    Lowercase variable
  175.     -u    Uppercase variable
  176. eg.
  177.     81 $ typeset -u name
  178.     82 $ name="Guy Gascoigne"
  179.     83 $ echo $name
  180.     GUY GASCOIGNE
  181.  
  182.     -L    Left justify var.
  183.     -R    right justify var.
  184.     -Z    right justify and pad with leading zeros.
  185.  
  186.     if one of these options is followed by a number, the number is
  187. interpreted as a field width. The next example left-justifies the value
  188. of the variable last in a field of 10 characters:
  189.  
  190.     84 $ typeset -L10 last
  191.     85 $ last="Gascoigne-Piggford"
  192.     86 $ echo $last
  193.     Gascoigne-
  194.  
  195.  
  196. 9) Ksh is now very MiNT specific, it exit's if MiNT isn't running.
  197.  
  198.  
  199.  
  200. Please report any bugs to ggascoigne@cix.compulink.co.uk
  201. or if that bounces, to ggascoigne@compulink.co.uk
  202.  
  203. Guy Gascoigne - Piggford
  204.  
  205.