Article de reference

shell Unix

Fenêtres shell tcsh et sh sur un ordinateur Mac OS X Leopard Un shell Unix est un interpréteur de commandes qui fournit une interface utilisateur en ligne de commande pour un sy...

Fenêtres shell tcsh et sh sur un ordinateur Mac OS X Leopard

Un shell Unix est un interpréteur de commandes qui fournit une interface utilisateur en ligne de commande pour un système d'exploitation de type Unix . Il propose un langage de commandes utilisable de manière interactive ou pour écrire des scripts shell . L'utilisateur travaille généralement dans un shell Unix via un émulateur de terminal ; cependant, l'accès direct via des connexions série matérielles ou un protocole SSH (Secure Shell) est courant pour les serveurs. Bien que l'utilisation d'un shell Unix soit populaire auprès de certains utilisateurs, d'autres préfèrent utiliser un interpréteur de commandes graphique dans un système à fenêtrage , comme ceux proposés par les distributions Linux de bureau ou macOS , plutôt qu'une interface en ligne de commande (CLI).

Un utilisateur peut avoir accès à plusieurs interpréteurs de commandes Unix, dont un est configuré pour s'exécuter par défaut lors de sa connexion . Ce choix par défaut est généralement enregistré dans son profil (par exemple, dans le fichier passwd local ou dans un système de configuration distribué comme NIS ou LDAP ). L'utilisateur peut utiliser d'autres interpréteurs de commandes imbriqués dans l'interpréteur par défaut.

Un shell Unix peut fournir de nombreuses fonctionnalités, notamment : la définition et la substitution de variables , la substitution de commandes , l'utilisation de caractères génériques dans les noms de fichiers , le chaînage de flux , les structures de contrôle de flux ( tests de conditions et itération ), le contexte du répertoire de travail et le document here .

shell Thompson , sh , écrit par Ken Thompson aux Bell Labs et distribué avec les versions 1 à 6 d'Unix, de 1971 à 1975. Bien que rudimentaire selon les normes actuelles, il a introduit de nombreuses fonctionnalités de base communes à tous les interpréteurs de commandes Unix ultérieurs, notamment le chaînage de commandes, des structures de contrôle simples utilisant ` if&` et ` goto&`, et la gestion des noms de fichiers (GLOB).bing. Bien qu'il ne soit plus utilisé actuellement, il est toujours disponible dans certains systèmes UNIX anciens , tels que Unix version 6 .

Il a été conçu sur le modèle du shell Multics , développé en 1965 par l'ingénieure logicielle américaine Glenda Schroeder . Le shell Multics de Schroeder était lui-même inspiré du programme RUNCOM que Louis Pouzin avait présenté à l'équipe Multics. Le suffixe « rc » de certains fichiers de configuration Unix (par exemple « .bashrc » ou « .vimrc ») est un vestige de l'héritage RUNCOM des shells Unix.

Le shell PWB, ou shell Mashey, ou sh , était une version compatible avec les versions ultérieures du shell Thompson, enrichie par John Mashey et d'autres contributeurs et distribuée avec Programmer's Workbench UNIX , entre 1975 et 1977 environ. Son objectif principal était de rendre la programmation shell pratique, notamment dans les grands centres de calcul partagés. Il introduisait les variables shell (précurseurs des variables d'environnement , dont le mécanisme de recherche de chemin qui a évolué vers $PATH), les scripts shell exécutables par l'utilisateur et la gestion des interruptions. Les structures de contrôle ont été étendues, passant de if/goto à if/then/else/endif, switch/breaksw/endsw et while/end/break/continue. Avec la généralisation de la programmation shell, ces commandes externes ont été intégrées au shell lui-même pour optimiser ses performances.

Mais les shells Unix les plus répandus et les plus influents des débuts étaient le shell Bourne et le shell C. Ces deux shells ont servi de base de programmation et de modèle pour de nombreux shells dérivés et similaires dotés de fonctionnalités étendues.

Coquille Bourne

Le shell Bourne , sh , était un nouveau shell Unix créé par Stephen Bourne aux Bell Labs. Distribué comme shell pour UNIX version 7 en 1979, il introduisait les fonctionnalités de base communes à tous les shells Unix ultérieurs, notamment les documents here , la substitution de commandes , des variables plus génériques et des structures de contrôle intégrées plus étendues . Le langage, y compris l'utilisation d'un mot-clé inversé pour marquer la fin d'un bloc, était influencé par ALGOL 68. [ , le nom du programme du shell Bourne est sh et son chemin dans l'arborescence du système de fichiers Unix est /bin/sh . Cependant, plusieurs shells compatibles et similaires sont également disponibles, offrant diverses améliorations et fonctionnalités supplémentaires. Sur de nombreux systèmes, sh peut être un lien symbolique ou un lien physique vers l'une de ces alternatives :

  • Le shell Almquist (ash) est un shell sous licence BSD conçu pour remplacer le Bourne Shell ; il est souvent utilisé dans les environnements aux ressources limitées. Les shells sh de FreeBSD , NetBSD (et leurs dérivés) sont basés sur une version améliorée d'ash, conforme à la norme POSIX .
    • Busybox : un ensemble d'utilitaires Unix pour les petits systèmes et les systèmes embarqués, qui comprend 2 shells : ash, un dérivé du shell Almquist ; et hush, une implémentation indépendante d'un shell Bourne.
    • Shell Almquist (dash) pour Debian : un remplacement moderne pour ash sous Debian et Ubuntu.
  • Le shell Bourne-Again (bash) : développé dans le cadre du projet GNU , il offre un ensemble de fonctionnalités plus étendu que le shell Bourne. Ce shell est installé par défaut et constitue l’interpréteur de commandes interactif par défaut pour la plupart des utilisateurs sur les systèmes Linux . Il propose un mode interactif (implémenté par GNU Readline) et un mode script.
  • Korn shell (ksh) : une version améliorée du Bourne shell, écrite par David Korn à partir des sources du Bourne shell alors qu'il travaillait chez Bell Labs.
  • Shell Korn (pdksh) du domaine public
  • Z shell (zsh) : un shell relativement moderne partiellement rétrocompatible avec bash . C’est le shell par défaut de Kali Linux depuis 2020.4 et de macOS depuis la version 10.15 Catalina .

La norme POSIX spécifie son interpréteur de commandes standard comme un sous-ensemble strict de l'interpréteur de commandes Korn. Du point de vue de l'utilisateur, l'interpréteur de commandes Bourne était immédiatement reconnaissable lorsqu'il était actif grâce à son caractère d'invite de commande par défaut caractéristique, le signe dollar ( $ ).interpréteur de commandes C , csh , a été conçu sur le modèle du langage de programmation C , notamment en reprenant les structures de contrôle et la grammaire d’expressions. Il a été écrit par Bill Joy alors qu’il était étudiant diplômé à l’Université de Californie à Berkeley , et a été largement distribué avec BSD Unix . historique et les mécanismes d'édition , les alias , les piles de répertoires , la notation tilde , `cdpath` , le contrôle des tâches et le hachage de chemins . Sur de nombreux systèmes, `csh` peut être un lien symbolique ou physique vers TENEX C shell (tcsh), une version améliorée de la version originale de Joy. Bien que les fonctionnalités interactives de `csh` aient été reprises dans la plupart des autres shells, la structure du langage n'a pas été largement copiée. Le seul équivalent est le shell C Hamilton , écrit par Nicole Hamilton, distribué initialement sur OS/2 en 1988 et sur Windows depuis 1992.

fichiers de configuration

Les interpréteurs de commandes lisent les fichiers de configuration dans diverses circonstances. Ces fichiers contiennent généralement des commandes pour l'interpréteur de commandes et sont exécutés lors de leur chargement ; ils servent généralement à définir des variables importantes pour trouver les exécutables, comme $PATH , et d'autres qui contrôlent le comportement et l'apparence de l'interpréteur de commandes. Le tableau de cette section présente les fichiers de configuration des interpréteurs de commandes les plus courants.

fichier de configurationshkshcshtcshfrapperzsh
  • "n/login" signifie qu'un fichier est lu si le shell n'est pas un shell de connexion.
  • "int." signifie qu'un fichier est lu si l'interpréteur de commandes est interactif.
  • es – Un shell de programmation fonctionnelle compatible rc écrit au milieu des années 1990.
  • Coquillage interactif et convivial (poisson) – Première sortie en 2005.
  • PowerShell – Un interpréteur de commandes orienté objet , développé initialement pour Windows et désormais disponible pour macOS et Linux.
  • Qshell – Un shell pour le système d'exploitation IBM i basé sur les normes POSIX et X/Open .
  • rc – Le shell par défaut de Plan 9 de Bell Labs et de Version 10 Unix, écrit par Tom Duff . Des versions ont été portées sur divers systèmes d'exploitation de type Unix .
  • scsh – Un shell Scheme .
  • souhait – Un shell de fenêtrage pour Tcl/Tk .
  • Plus d articles de Worldlex Wiki

    Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

    Explorer l index