C shell

related topics
{math, number, function}
{system, computer, user}
{ship, engine, design}
{work, book, publish}
{style, bgcolor, rowspan}
{mi², represent, 1st}

The C shell (csh or the improved version, tcsh, on most machines) is a Unix shell that was created by Bill Joy while a graduate student at University of California, Berkeley in the late 1970s. It has been distributed widely, beginning with the 2BSD release of the BSD Unix system that Joy began distributing in 1978.[1][2] Other early contributors to the ideas or the code were Michael Ubell, Eric Allman, Mike O'Brien and Jim Kulp.[3]

The C shell is a command processor that's typically run in a text window, allowing the user to type commands which cause actions. The C shell can also read commands from a file, called a script. Like all Unix shells, it supports filename wildcarding, piping, here documents, command substitution, variables and control structures for condition-testing and iteration. What differentiated the C shell, especially in the 1980s, were its interactive features and overall style. Its new features made it easier and faster to use. The overall style of the language looked more like C and was seen as more readable.

Today, csh on most machines is actually tcsh, an improved version of csh. As a practical matter, tcsh is csh: One file containing the tcsh executable has links to it as both "csh" and "tcsh" so that either name refers to the same improved version of the C shell.

tcsh added filename and command completion and command line editing concepts borrowed from the Tenex system, which is where the "t" came from.[4] Because it only added functionality and didn't change what was there, tcsh remained backward compatible[5] with the original C shell. And though it started as a side branch from the original source tree Joy had created, tcsh is now the main branch for ongoing development. tcsh is very stable but new releases continue to appear roughly once a year, consisting mostly of minor bug fixes.[6]

Contents

Full article ▸

related documents
Data structure
Non-deterministic Turing machine
Bytecode
Java API for XML Processing
Dekker's algorithm
Rich Text Format
NC (complexity)
Merge algorithm
Dynamic HTML
Data type
Data integrity
Blowfish (cipher)
Meta-Object Facility
Single precision
Lex programming tool
Interchange File Format
AIML
Tiny BASIC
Directed set
Removable singularity
Axiom of extensionality
Symbolic logic
Addition of natural numbers
Hilbert's basis theorem
Bucket sort
Interpreted language
Recursively enumerable language
Finitely generated abelian group
Haar wavelet
Generating set of a group