[TUHS] Origin year of BSD csh?

Joerg Schilling schily at schily.net
Mon Jun 27 20:03:29 AEST 2016

Aharon Robbins <arnold at skeeve.com> wrote:

> Can anyone give a definitive date for when Bill Joy's csh first got out
> of Berkeley?  I suspect it's in the 1976 - 1977 time frame, but I don't
> know for sure.

In 1977 (published November 23), there was "ashell" with this "READ_ME":

Wed Oct 19, 1977

This directory contains the source for a shell.
It requires floating point to do the time command which is built-in
so you will have to cc it -f on machines without floating point.
It also requires a version 7 C compiler.

Accurate documentation is in the file "sh.6" to be nroffed with
/usr/man/man0/naa and a new "version 7" nroff.

This shell requires the "htmp" data base also used by the editor "ex".
If you do not set it up so that the "sethome" command is done by "login"
then you should use the old "osethome" routine in ../s6 rather than "sethome"
and reenable the execl of this sethome in the file "sh.c" (with the correct

                                Bill Joy
                                CS Division
                                Department of EE and CS
                                UC Berkeley
                                Berkeley, California  94704

                                (415) 524-4510          [HOME]
                                (415) 642-4948          [SCHOOL]

Given that ashell/sh.c contains:

 * Shell
 * Modified by Bill Joy
 * UC Berkeley 1976/1977

it was most likely based on the Thompson shell.

Here is the start of the man page:

SH(VI)                       9/15/77                       SH(VI)

     sh - a shell (command interpreter)

     sh [ -V ] [ -v ] [ -t ] [ -c ] [ -i ] [ name [ arg ...  ] ]

     Sh is a command interpreter.   It  arranges  and  interprets
     command  lines  and  the contents of command files.  It is a
     modification of the standard shell sh (I), and  almost  com-
     pletely upward compatible therewith.  The intent, in working
     on a new shell, is to provide an environment which  is  more
     easily tailored to the wishes of each individual user.  Most
     new features of this shell, especially  the  alias  feature,
     are  toward  this  end.   Later  versions  of this shell may
     include improvements to the command language  of  the  shell
     and allow more easy repetition of commands.  The intent here
     is to make the command language more resemble  a  high-level
     language  - C being the natural choice for UNIX, and to pro-
     vide some  means  of  repeating  modified  commands  without
     retyping,  perhaps  akin to the INTERLISP redo feature.  The
     eventual goal is a C-shell,  csh  (or  ``seashell''  if  you

BTW: csh was an improvement for most shells from that time, but it lacks a
decent history editor.

In 1982, I wrote my first experimental history editor that supports cursor keys 
but called the commands via system() and in 1984, I integrated this concept 
into a shell called "bsh" that we had at H. Berthold AG on an OS called 
"VBERTOS" that was based on "UNOS" - the first UNIX clone.

A csh port for UNOS was available around 1982, but with the availability of 
a shell with integrated history editor, other shells seemed to be of no 
real interest. So around September 1984, people at H.Berthold AG stopped using
csh even though bsh had similar problems in the shell command language as
seen with csh.


 EMail:joerg at schily.net                  (home) Jörg Schilling D-13353 Berlin
       joerg.schilling at fokus.fraunhofer.de (work) Blog: http://schily.blogspot.com/
 URL:  http://cdrecord.org/private/ http://sourceforge.net/projects/schilytools/files/'

More information about the TUHS mailing list