These two shells are the parents of the two main 'families' of Unix-based shells. Notable features include a syntax based on C and enhanced interactivity features.
Specifically, its interactive innovations include features such as aliases, command history, file name completion, and job control. Certain versions of csh, such as the one included in NeXTSTEP and OPENSTEP added intuitive command line editing with keybindings based on vi or emacs.
These interactivity features have been far more influential and useful than the scripting features - csh has come under criticism by some who claim that the scripting features are inadequate or not useful enough for standard scripting uses. Accordingly, most recommend using the sh shell or a derivative for scripting purposes, as it is the standard shell, which is guaranteed on nearly all systems. In particular, bash is derived from sh, has a compatibility mode, and has become ubiquitous on Linux systems. It is also the default user shell (and thus used interactively) on many if not most Linux distributions, but those distributions that support csh provide means to make it the default interactive shell for individual users or system-wide.
An updated version of csh, with some changes such as command line editing, was released as tcsh.
- FAQ on Why CSH programming is considered harmful (www.faqs.org)