« Shell Unix » : différence entre les versions
Contenu supprimé Contenu ajouté
Ajout d'un lien |
m →Articles connexes : commandes unix |
||
(10 versions intermédiaires par 8 utilisateurs non affichées) | |||
Ligne 1 :
[[Fichier:Linux command-line. Bash. GNOME Terminal. screenshot.png|
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 système|console]] ou un [[terminal informatique|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]] [[Valeur par défaut|par défaut]] était [[Bourne shell|sh]], qui donna naissance à de nombreuses variantes, dont [[csh]], étendu en [[tcsh]], ou [[Korn shell|ksh]], ou encore [[rc (shell)|rc]]...
== Historique des shells Unix ==
Le premier shell est le {{lien|fr=Thompson shell|lang=en}} apparu en 1971 avec la première version d’[[Unix]] et écrit par [[Ken Thompson]], l'un des créateurs d'[[Unix]]. Il est 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 permet notamment la réutilisation de l'historique des commandes. Une version plus moderne du
Le [[Korn shell]] (ksh) est 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 tels que le [[Perl (langage)|Perl]].
Le [[Bourne-Again shell]] (bash) apparait quant à lui en 1988. Il est écrit par
[[Paul Falstad]] crée [[
== Shells ==
Ligne 22 :
** [[tcsh]] (Tenex C shell, version moderne du csh)
* Shell de [[David Korn]] : [[Korn shell]] (ksh)
* Shell de
** [[Ash shell|Ash]] (Almquist SHell)
** [[Debian Almquist shell|Dash shell]] ([[Debian]] Almquist Shell)
* [[
* [[Friendly Interactive Shell|fish]]
Ligne 31 :
{{...}}
== Gestion des entrées/sorties et redirection ==
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 ===
Syntaxe :
<
Le résultat de l'invocation de la commande <code>commande</code> sera écrit dans le fichier <code>fichier</code>, en écrasant le précédent contenu.
Exemple :
<
$: cat file
Welcome
Ligne 46 :
$: cat file
Hello world
</syntaxhighlight>
=== Redirection droite double ===
Syntaxe :
<
Le résultat de l'invocation de la commande <code>commande</code> sera écrit dans le fichier <code>fichier</code>, à la suite des données déjà présentes.
Exemple :
<
$: cat file
Welcome
Ligne 61 :
Welcome
Hello world
</syntaxhighlight>
=== Redirection gauche simple ===
Syntaxe :
<
La commande <code>commande</code> va lire le contenu du fichier <code>fichier</code> au lieu de lire sur l'entrée standard (clavier).
Exemple :
<
$: cat < file
Welcome
</syntaxhighlight>
=== Redirection gauche double ===
Syntaxe :
<
La commande <code>commande</code> va lire sur l'entrée standard jusqu'à ce que le mot suivant la double redirection soit rencontré.
Exemple :
<
$: cat << TOTO
? foo
Ligne 89 :
bar
moomoo
</syntaxhighlight>
=== Pipe ===
Syntaxe :
<
Le résultat de la commande <code>commande_1</code> va être redirigé dans l'entrée de la seconde commande <code>commande_2</code>.
Exemple :
<
$: echo "Hello world" | grep -o "Hello"
Hello
</syntaxhighlight>
== Fichier de configuration ==
Ligne 316 :
== Notes et références ==
=== Notes ===
=== Références ===
{{Références}}
* {{Lien web |url=http://www.softlab.ntua.gr/facilities/documentation/unix/shelldiff.html
|titre=UNIX shell differences
|auteur=Brian Blackmore
Ligne 328 :
=== Articles connexes ===
* [[Interpréteur de commandes]]
* [[Commandes Unix]]
* [[Shell (informatique)]]
* [[Reverse shell]]
|