Shell Unix — Wikipédia

Wiki Loves Monuments : photographiez un monument historique, aidez Wikipédia et gagnez !

# Shell Unix

Un article de Wikipédia, l'encyclopédie libre.

| Cet article est une ébauche concernant l’informatique. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Un shell Unix est un interpréteur de commandes destiné aux systèmes d'exploitation Unix et de type Unix qui permet d'accéder aux fonctionnalités internes du système d'exploitation. Il se présente sous la forme d'une interface en ligne de commande accessible depuis la console ou un terminal. L'utilisateur lance des commandes sous forme d'une entrée texte exécutée ensuite par le shell. Dans les différents systèmes d'exploitation Microsoft Windows, le programme analogue est command.com, ou cmd.exe.

Les systèmes d'exploitation de type Unix disposent le plus souvent d'un shell. À l'origine, l'interpréteur de commandes par défaut était sh, qui évolua en de nombreuses versions, dont csh, étendu en tcsh, ou ksh, ou encore rc... Mais aujourd'hui bash, s'inspirant de sh, ksh, et csh, est le shell le plus répandu, bien qu'il existe d'autres interpréteurs de commandes, comme zsh, ou ash.

## Historique des shell Unix[ modifier | modifier le code]

Le premier shell est le Thompson shell (en) apparu en 1971 pour la première version d’Unix. Cette version du shell a été écrite par Ken Thompson l'un des créateurs d'Unix. Il a été remplacé par le Bourne shell, écrit par Stephen Bourne, en 1977 pour la version 7 d'Unix.

En 1978, Bill Joy alors étudiant à l'Université de Californie à Berkeley, crée Csh (C shell) une évolution du shell dont la syntaxe s'inspire de celle du langage C. Il permettait notamment la réutilisation de l'historique des commandes. Une version plus moderne du Csh a été publiée sous le nom tcsh.

Le Korn shell (ksh) a été publié en 1983 par David Korn. Il est compatible avec le Bourne shell, reprend certaines fonctionnalités de Csh et ajoute des fonctions de scripts avancées disponibles dans des langages plus évolués tel que le Perl.

Le Bourne-Again shell (bash) est apparu quant à lui en 1988. Il a été écrit par Brian Fox pour la Free Software Foundation dans le cadre du projet GNU. C'est le shell de nombreuses implémentations libres d'Unix, tel que les systèmes GNU/Linux. Il est compatible avec le Bourne shell dont il se veut une implémentation libre.

Paul Falstad a créé Zsh en 1990 alors qu'il était étudiant à l'université de Princeton. Ce shell reprend les fonctions les plus pratiques de bash, Csh, tcsh.

## Exemples[ modifier | modifier le code]

- Shell de Stephen Bourne
  - Bourne shell (sh)
  - Bourne-Again shell (bash)
- Csh : C shell
  - tcsh (Tenex C shell, version moderne du csh)
- Shell de David Korn : Korn shell (ksh)
- Shell de Kenneth Almquis (en), utilisé lorsqu'il est nécessaire d'avoir un shell prenant peu de place sur le disque, clone de la variante SVR4 du Bourne shell;
  - Ash (Almquist SHell)
  - Dash shell (Debian Almquist SHell)
- Z Shell (zsh), reprenant les fonctions les plus pratiques de bash, ksh et tcsh.

## Comparatif[ modifier | modifier le code]

Cette section est vide, insuffisamment détaillée ou incomplète. Votre aide est la bienvenue !

## Gestion des entrées/sorties et redirection[ modifier | modifier le code]

Les shells permettent de réaliser des redirections. Une redirection consiste à rediriger l'entrée ou la sortie d'une commande vers une autre commande ou un fichier.

### Redirection droite simple[ modifier | modifier le code]

Syntaxe :

     commande > fichier

Le résultat de l'invocation de la commande `commande` sera écrit dans le fichier `fichier`, en écrasant le précédent contenu.

Exemple :

    $: cat file
    Welcome
    $: echo "Hello world" > file
    $: cat file
    Hello world

### Redirection droite double[ modifier | modifier le code]

Syntaxe :

     commande >> fichier

Le résultat de l'invocation de la commande `commande` sera écrit dans le fichier `fichier`, à la suite des données déjà présentes.

Exemple :

    $: cat file
    Welcome
    $: echo "Hello world" >> file
    $: cat file
    Welcome
    Hello world

### Redirection gauche simple[ modifier | modifier le code]

Syntaxe :

     commande < fichier

La commande `commande` va lire le contenu du fichier `fichier` au lieu de lire sur l'entrée standard (clavier).

Exemple :

    $: cat < file
    Welcome

### Redirection gauche double[ modifier | modifier le code]

Syntaxe :

     commande << END

La commande `commande` va lire sur l'entrée standard jusqu'à ce que le mot suivant la double redirection soit rencontré.

Exemple :

    $: cat << TOTO
    ? foo
    ? bar
    ? moomoo
    ? TOTO
    foo
    bar
    moomoo

### Pipe[ modifier | modifier le code]

Syntaxe :

     commande_1 | commande_2

Le résultat de la commande `commande_1` va être redirigé dans l'entrée de la seconde commande `commande_2`.

Exemple :

    $: echo "Hello world" | grep -o "Hello"
    Hello

## Notes et références[ modifier | modifier le code]

Brian Blackmore, « UNIX shell differences » (consulté en 13 février 2012)

## Voir aussi[ modifier | modifier le code]

### Articles connexes[ modifier | modifier le code]

- Interpréteur de commandes
- Shell (informatique)

[afficher] v · m Shell Unix
ash · bash · bsh · csh · dash · tcsh · ksh · zsh · fish

[afficher] v · m Langages de programmation
Orientés objet | ActionScript · AppleScript · C++ · C# · CoffeeScript · D · Delphi · Eiffel · Groovy · Java · JavaScript · Lisaac · Logo · Objective-C · PHP · Python · Ruby · Scala · Simula · Smalltalk · Visual Basic
Impératifs | Algol · APL · ASP · Assembleur · BASIC · BCPL · Shell Unix · C · COBOL · Natural · Forth · Fortran · Go · Limbo · Lua · Modula-2 · NQC · NXC · OPL · Pascal · Perl · PHP · Rust · PL/I · Tcl · Windows PowerShell · WLangage
Fonctionnels | Haskell · Lisp · Common Lisp · ML · OCaml · Gallina · F# · Standard ML · Opa · Scheme · XSLT
Déclaratifs | Clips · Prolog · ASP
Concurrents | Ada · Erlang
Conception · Codage · Tests · Optimisations

- Portail de l’informatique
- Portail de la programmation informatique

Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Shell_Unix&oldid=116953364 ».
Catégorie :

- Shell Unix

| [+]
Catégories cachées :

- Wikipédia:ébauche informatique
- Article contenant un appel à traduction en anglais
- Portail:Informatique/Articles liés
- Portail:Programmation informatique/Articles liés