C shell
# C shell

Le C shell ou csh est un interpréteur de commandes informatique pour le système Unix. Abrégé csh, c'est une évolution du shell sh utilisant une syntaxe plus proche du langage C. Un de ses avantages est la possibilité de ré-utilisation de l'historique des commandes. Le C shell a eu également son extension avec tcsh, permettant l'édition directe de la ligne de commande.

Le C shell (csh ou sa version améliorée, tcsh, sur la plupart des machines) est un shell Unix qui a été créé par Bill Joy alors qu'il était étudiant à l'université de Californie à Berkeley dans les années 1970. Il a été largement diffusé, à commencer par la version 2BSD du système Unix BSD que Joy a commencé à distribuer en 1978. Les premiers contributeurs des idées ou du code comptaient aussi Michael Ubell, Eric Allman, Mike O'Brien et Jim Kulp.

Le C shell est un interpréteur de commandes qui s'exécute généralement dans une fenêtre en mode texte, ce qui permet à l'utilisateur de taper des commandes. Le C shell peut également lire les commandes depuis un fichier, appelé alors script. Comme tous les shells Unix, il prend en charge les caractères spéciaux de remplacement de nom de fichier, les pipes, le mode multi-ligne, la substitution de commande, des variables et des structures de contrôle pour les tests de conditions et d'itérations. Ce qui différenciait le C shell des autres, surtout dans les années 1980, c'était ses fonctions interactives et de style globales. Ses nouvelles fonctionnalités l'ont rendu plus facile et plus rapide à utiliser. Le style général du langage ressemblait plus à du code C et a été considéré comme plus lisible.

Sur de nombreux systèmes, tels que OS X et Red Hat Linux, csh est en fait tcsh, une version améliorée de csh. Un fichier contenant l'exécutable tcsh offre des liens vers à la fois nommés « csh » et « tcsh » afin que ces noms fassent référence à la même version améliorée du C shell.

Sur Debian, Ubuntu, et leurs dérivés, il existe deux paquets différents : csh et tcsh. Le premier est basé sur la version BSD d'origine de csh et le dernier est le tcsh amélioré.

tcsh a rajouté la complétion de nom de fichier et de commande, ainsi que l'édition en ligne de commande, des concepts empruntés au système Tenex, qui est la source du « t » de tcsh. tcsh est resté compatible avec le C shell d'origine car c'est un ajout de fonctionnalités sans autres changements. Bien qu'il ait commencé comme une branche latérale des sources d'origine de Joy, tcsh est maintenant la branche principale de développement continu. tcsh est très stable, mais les nouvelles versions continuent à apparaître à peu près une fois par an, composées principalement de corrections de bugs mineurs.

