A partir do momento em que o shell inicia, ele passa a guardar todos os comandos digitados pelo usuário, na seqüência em que são digitados. Estes comandos podem ser recuperados, editados e novamente executados pelo shell, simplificando tarefas repetitivas em arquivos distintos. Este recurso é chamado de história porque grava a seqüência de acontecimentos no âmbito do shell.
O número de comandos gravados pelo shell é determinado pela variável de ambiente history, enquanto que a variável savehist determina quantos comandos serão gravados no arquivo .history quando o usuário termina a sessão, para serem recuperados numa sessão futura.
A primeira maneira de examinar os comandos do shell é através do comando history que mostra em parte algo como
onde vemos o número do comando na história, a hora da chamada e a sintaxe do comando. O caracter de substituição da história é o , logo se quiséssemos executar o comando de ordem 133 (clear) novamente, simplesmente digitamos
$ 133
clear
que limparia a tela do terminal.
Na maioria das implementações do tcsh é possível usar as setas do teclado para percorrer a história de comandos. Existem alguns modificadores da história que simplificam o reutilização dos comandos já digitados. Para repetir o último comando executado digitamos . Como no exemplo acima, o comando de ordem é reexecutado através da sintaxe , onde é seu número. Se quisermos contar do fim para o começo, isto é, para reexecutar o comando a partir do atual, basta fazer . Se o clear devesse ser executado novamente, poderíamos procurá-lo pelo seu nome, através da sintaxe nome. Neste caso
$ clear
clear
fazemos com que o shell procure pelo comando mais recente que comece com o texto clear, podendo abreviá-lo por clea, cle ou mesmo c. O shell lê os comandos na ordem inversa daquela em que foram digitados, até encontrar o texto que coincida com aquele fornecido pelo usuário, quando executa o comando. Veja outros operadores de procura da história na tabela .