tcsh - tcsh
|
Capture d'écran d'un exemple de session tcsh
| |
| Développeur(s) | Ken Greer, Paul Placeway, Christos Zoulas et al. |
|---|---|
| Version stable | 6.22.03 / 18 novembre 2020
|
| Dépôt | |
| Écrit en | C |
| Système opérateur | Multiplateforme |
| Taper | Shell Unix |
| Licence | 2002 : BSD-3-Clause 1991 : BSD-4-Clause |
| Site Internet | www |
tcsh ( / ˌ t i s i ʃ ɛ l / « tee-see-shell », / t i ʃ ɛ l / « tee-shell », ou « tee voir ess aitch » tcsh) est un interpréteur de commandes UNIX basé activé et rétrocompatible avec le shell C ( csh).
Coquille
Il s'agit essentiellement du shell C avec la complétion de ligne de commande programmable , l' édition de ligne de commande et quelques autres fonctionnalités. Contrairement aux autres shells courants, les fonctions ne peuvent pas être définies dans un script tcsh et l'utilisateur doit utiliser des alias à la place (comme dans csh). C'est le shell racine natif pour les systèmes basés sur BSD tels que FreeBSD .
tcsh a ajouté des concepts de complétion de nom de fichier et de commande et d'édition de ligne de commande empruntés au système d' exploitation TENEX , qui est la source du « t ». Parce qu'il n'a fait qu'ajouter des fonctionnalités et n'a pas changé ce qui était là, tcsh est resté rétrocompatible avec le shell C d'origine. Bien qu'il ait commencé comme une branche secondaire de l'arbre source original de csh que Bill Joy avait créé, tcsh est maintenant la branche principale pour le développement en cours.
tcsh est très stable mais de nouvelles versions continuent d'apparaître environ une fois par an, consistant principalement en des corrections de bugs mineurs.
Sur de nombreux systèmes, tels que macOS et Red Hat Linux , cshest en fait tcsh. Souvent, l'un des deux fichiers est soit un lien physique, soit un lien symbolique vers l'autre, de sorte que l'un ou l'autre nom fait référence à la même version améliorée du shell C.
Sur Debian et certains dérivés (dont Ubuntu ), il existe deux packages différents : cshet tcsh. Le premier est basé sur la version BSD originale de csh et le second est le tcsh amélioré.
Histoire
Le « t » dedans tcshvient du « T » de TENEX , un système d'exploitation qui a inspiré Ken Greer de l'Université Carnegie Mellon , l'auteur de tcsh, avec sa fonction de complétion de commandes. Greer a commencé à travailler sur son code pour implémenter l'achèvement de nom de fichier de style Tenex en septembre 1975, le fusionnant finalement dans le shell C en décembre 1981. Mike Ellis de Fairchild AI Labs a ajouté l'achèvement de commande en septembre 1983. Le 3 octobre 1983, Greer a posté source au groupe de discussion net.sources.
Caractéristiques importantes
- Historique des commandes
- La
historycommande intégrée affiche les commandes saisies précédemment - Utilisation de ↑/ ↓sur la ligne de commande pour permettre à l'utilisateur de sélectionner une commande dans l'historique à éditer/exécuter
- Appel des commandes précédentes à l'aide de l' historique des commandes
-
!!exécute la commande précédente -
!nexécute la nième commande qui a été précédemment exécutée -
!-nexécute la commande qui a été exécutée il y a n commandes -
!stringexécute la dernière commande exécutée qui commence par une chaîne -
!?stringexécute la dernière commande exécutée qui contient la chaîne
-
- Utilisation de l'historique dans les nouvelles commandes
-
!*- fait référence à tous les arguments de la commande précédente -
!$- fait référence au dernier argument de la commande précédente -
!^- fait référence au premier argument de la commande précédente -
!:n- fait référence au n ème argument de la commande précédente -
!:m-n- fait référence aux m ème à n ème arguments de la commande précédente -
!:n-$- fait référence au n ième jusqu'au dernier argument de la commande précédente
-
- La
- Édition de la ligne de commande
- Auto-complétion des noms de fichiers et des variables ainsi que la complétion programmable sur la ligne de commande
- Sélecteurs d'arguments d'alias ; la possibilité de définir un alias pour prendre les arguments qui lui sont fournis et les appliquer aux commandes auxquelles il se réfère. Tcsh est le seul shell à proposer cette fonctionnalité.
-
\!#- sélecteur d'arguments pour tous les arguments, y compris l'alias/la commande elle-même ; les arguments n'ont pas besoin d'être fournis. -
\!*- sélecteur d'arguments pour tous les arguments, à l'exception de l'alias/de la commande ; les arguments n'ont pas besoin d'être fournis. -
\!$- sélecteur d'argument pour le dernier argument ; l'argument n'a pas besoin d'être fourni, mais si aucun n'est fourni, le nom d'alias est considéré comme le dernier argument. -
\!^- sélecteur d'argument pour le premier argument ; l'argument DOIT être fourni. -
\!:n- sélecteur d'argument pour le n ème argument ; l'argument DOIT être fourni ; n=0 fait référence à l'alias/nom de commande. -
\!:m-n- sélecteur d'arguments pour les arguments du m ième au n ième ; les arguments DOIVENT être fournis. -
\!:n-$- sélecteur d'arguments pour les arguments du n ième au dernier ; au moins l'argument n DOIT être fourni. -
\!:n*- sélecteur d'arguments pour les arguments du n ième au dernier ; il n'est pas nécessaire de fournir suffisamment d'arguments.#Alias the cd command so that when you change directories, the contents are immediately displayed. alias cd 'cd \!* && ls'
-
- Correspondance avec caractères génériques
if ( "$input" =~ [0-9]* ) then echo "the input starts with an integer" else echo "the input does NOT start with an integer" endif
- Contrôle des tâches
- La
wherecommande intégrée . Fonctionne comme lawhichcommande mais affiche tous les emplacements de la commande cible dans les répertoires spécifiés$PATHplutôt que celui qui sera utilisé.
Déploiement
Les premières versions de Mac OS X étaient livrées avec tcsh comme shell par défaut, mais la valeur par défaut pour les nouveaux comptes est devenue bash à partir de 10.3 puis zsh à partir de 10.15 . (tcsh est toujours fourni, et la mise à niveau du système d'exploitation ne modifie pas le shell des comptes existants). tcsh est le shell racine par défaut de FreeBSD (le shell utilisateur par défaut est basé sur POSIX ) et ses descendants comme DragonFly BSD et DesktopBSD .