tcsh is an enhanced version of the Berkeley UNIX C shell, csh, which was first developed in the late 1970s by Ken Greer at Carnegie-Mellon University. Work on it continued into the 1980s by Paul Placeway at Ohio State and since then many people have worked on the shell. It stands for "TENEX C SHell", although many people claim that it also stands for "Total C SHell". According to the man page, tcsh is a C shell with file name completion and command line editing.

What makes tcsh special is that it's backwards compatible with the C shell, but is more user friendly and has major improvements in command-line editing and history navigation. Like the bash shell, it has tab completion and a command history which is usually stored in the .history file. In addition to storing your command history, you can also manipulate it with the history command and options such as displaying your history, merging history files, and writing it to a new file. It is also similar to bash in its input and output redirection and pipe use.

Key bindings are an important feature of tcsh. The syntax of key bindings is: bindkey [option] <instring or keyname> <outstring or command>

Another feature which other shells seem to lack is a spell checking option. You have to know you made the mistake before you execute the command, but if you remember before you execute and don't feel like going back to fix it you can type "Esc-S" and the shell will try to correct your spelling.

tcsh features three levels of user prompts. First, the > prompt which indicates that the shell is waiting for you to enter in a command. The second level prompt, %R?, is displayed while the shell is in a while or for loop. The third-level prompt is used when the shell is correcting the spelling when you have the spelling correction feature turned on. Special character codes are supported at the prompts, like bash, but the syntax is different.

Examples of tcsh prompt character codes:

%/  This displays the directory you're working in

%h, %!, !  These codes are used to display the current history number

%t, %@  Both of these codes can be used to display what time it is

%d  This is the code for the current day of the week

%y  This code displays the current year
%n  This code displays the username you're logged in as

Common and useful tcsh commands:

alias  For setting and viewing aliases

bg  This comment forces suspended processes to run in the background

bindkey  For setting key bindings

cd  The change directory command

exit  Kills the shell

fg  This comment forces suspended processes to run in the foreground

history  For viewing and manipulating the .history file

kill  Used for killing a process

logout  Ends the login

set  For setting the value of the shell variables

source  This command is for reading and executing a file
unalias  Used to remove aliases


Log in or registerto write something here or to contact authors.